supermarq.converters.qiskit
Attributes
Functions
Converts cirq classical control to qiskit classical control. Cirq uses sympy for its |
|
|
Convert a single cirq.Gate to a qiskit Gate. |
|
Converts cirq qubits to qiskit qubits. |
|
Converts cirq.Circuit into a qiskit.QuantumCircuit with a single qubit register. |
|
Decompose inverted measurements by replacing their invert_mask with explicit X gates. |
|
Convert a single qiskit instruction to a single cirq.Gate, or return None. |
|
Converts a qiskit.QuantumCircuit to a cirq.Circuit, preserving global phase. |
|
Change matrix from cirq-endian and qiskit-endian (and vice versa). |
Module Contents
- supermarq.converters.qiskit.cirq_classical_control_to_qiskit(op: cirq.Operation, measurement_key_to_indices: dict[str, list[int]], cr: qiskit.ClassicalRegister) qiskit.circuit.classical.expr.Expr | tuple[qiskit.circuit.Clbit, int]
Converts cirq classical control to qiskit classical control. Cirq uses sympy for its classical logic, qiskit uses its own classical expressions.
- Parameters:
op – The cirq operation that is being classically controlled
measurement_key_to_indices – Dictionary that maps cirq measurement keys to qiskit
indices. (Clbit)
cr – The qiskit classical register that controls the operations
- Returns:
A qiskit condition for classical control.
- supermarq.converters.qiskit.cirq_gate_to_qiskit_gate(cirq_gate: cirq.Gate) qiskit.circuit.Gate
Convert a single cirq.Gate to a qiskit Gate.
- supermarq.converters.qiskit.cirq_qubits_to_qiskit(qubits: collections.abc.Sequence[cirq.Qid]) qiskit.QuantumCircuit
Converts cirq qubits to qiskit qubits.
- Parameters:
qubits – A sequence of cirq.Qid s.
- Returns:
A qiskit.QuantumCircuit object with the appropriate qubits.
- supermarq.converters.qiskit.cirq_to_qiskit(cirq_circuit: cirq.Circuit, qubits: collections.abc.Sequence[cirq.Qid]) qiskit.QuantumCircuit
Converts cirq.Circuit into a qiskit.QuantumCircuit with a single qubit register.
Note: Qubits in the qiskit circuit are ordered according to the given qubits sequence (i.e. n-th qubit in qiskit_circuit.qubits = n-th qubit in sequence).
- Parameters:
cirq_circuit – The circuit to convert into qiskit.
qubits – The qubits belonging to cirq_circuit.
- Returns:
The qiskit equivalent of cirq_circuit.
- supermarq.converters.qiskit.decompose_measurement_inversions(circuit: CIRCUIT_TYPE, context: cirq.TransformerContext | None = None) CIRCUIT_TYPE
Decompose inverted measurements by replacing their invert_mask with explicit X gates.
This is useful after running some cirq transformers (namely cirq.eject_phased_paulis), which will absorb Pauli gates into measurements by changing their invert_mask.
- Parameters:
circuit – The circuit to be transformed.
context – An optional cirq.TransformerContext containing configuration and logging information.
- Returns:
An equivalent circuit with X gates in place of inversion masks.
- supermarq.converters.qiskit.qiskit_gate_to_cirq_gate(inst: qiskit.circuit.Instruction) cirq.Gate | None
Convert a single qiskit instruction to a single cirq.Gate, or return None.
- supermarq.converters.qiskit.qiskit_to_cirq(qiskit_circuit: qiskit.QuantumCircuit, keep_global_phase: bool = False) cirq.Circuit
Converts a qiskit.QuantumCircuit to a cirq.Circuit, preserving global phase.
- Parameters:
qiskit_circuit – The circuit to convert into cirq.
keep_global_phase – Boolean flag to preserve the global phase of the circuit. Defaults to False.
- Returns:
The cirq equivalent circuit of qiskit_circuit.
- supermarq.converters.qiskit.swap_endianness(matrix: numpy.typing.NDArray[numpy.complex128]) numpy.typing.NDArray[numpy.complex128]
Change matrix from cirq-endian and qiskit-endian (and vice versa).
- supermarq.converters.qiskit.CIRCUIT_TYPE