photonic_circuit_solver.circuit

Contains the functions needed to implement the emission circuit solving procedure

Functions

circuit_solver(state)

Given a stabilizer state, finds a circuit to generate it from a minimal set of emitters (details in doi.org/10.1038/s41534-022-00522-6)

emitter_cnot(state)

Given a stabilizer state, finds the number of emitters and the number of emitter-emitter CNOT gates needed to implement the circuit

heightfunction(state)

Given a stabilizer state, finds the height function (bipartite entanglement entropy) of the state (formula in doi.org/10.1038/s41534-022-00522-6, equation 1)

num_cnots(state)

Given a graph state with a certain fixed ordering, finds the number of emitters-emitter CNOT gates required to emit that state using this implementation of the solving algorithm

num_emitters(state)

Given a graph state with a certain fixed ordering, finds the minimal number of emitters required to emit that state

partial_height(state, index)

Given a stabilizer state, finds the height function (bipartite entanglement entropy) of the state (formula in doi.org/10.1038/s41534-022-00522-6, equation 1) at a specified index

plot_height(state)

Given a stabilizer state, finds the height function (bipartite entanglement entropy) of the state (formula in doi.org/10.1038/s41534-022-00522-6, equation 1) and plots it (need matplotlib installed)

qiskit_circuit_solver(state[, simple])

Given a stabilizer state, creates a qiskit circuit to generate it from a minimal set of emitters.

qiskit_circuit_solver_alternate(state[, simple])

Given a stabilizer state, creates a qiskit circuit to generate it from a minimal set of emitters.

rref(state)

Given a stabilizer state, implements the RREF gauge procedure (details in doi.org/10.1088/1367-2630/7/1/170)