qat.qiskit.converters.QaptivaToQiskit
- class qat.qiskit.converters.QaptivaToQiskit(gates_dict: dict | None = None)
A class that converts a Qaptiva circuit to a Qiskit one.
This translator can translate a circuit composed of known gates, but additional gate translation can be passed in argument.
The known translatable gates are
H,X,Y,Z,SWAP,I,S,S.dag(),T,T.dag(),RX,RY,RZ,H.ctrl(),CNOT,Y.ctrl(),CSIGN,RZ.ctrl(),CCNOT,SWAP.ctrl(),U,RXX,RZZ,R,MSfrom qat.qiskit.converters import QaptivaToQiskit from qiskit.circuit import Gate as QiskitGate class FooGate(QiskitGate): " Custm foo gate " def __init__(self,): super().__init__("Foo", 1, []) def to_matrix(self): " Get matrix " ... # If a Foo gate is present in the circuit (e.g., AbstractGate), # it will be translated into a Qiskit FooGate translator = QaptivaToQiskit({"FOO": FooGate})
- Parameters:
gates_dict (dict, optional) – custom gate translation
- job_to_circ(qaptiva_job)
Converts the circuit composing a Qaptiva job into a Qiskit circuit. This is only a helper function, parameters such as nbshots should be extracted from qaptiva_job alongside this function’s call.
- Parameters:
qaptiva_job (
Job) – The Qaptiva job containing the circuit to convert- Returns:
A QuantumCircuit Qiskit object resulting from the conversion
- to_circ(circuit: Circuit, include_measures: bool = False) qiskit.circuit.QuantumCircuit
Converts a Qaptiva circuit to a Qiskit circuit.
- Parameters:
circuit (
Circuit) – Qaptiva circuit to translateinclude_measures (bool, optional) –
A Qiskit circuit can include the final measurements (not mandatory). The final measurement is not included in the Qaptiva circuit structure (only intermediate measurements). This parameter specifies if the final measurement should be added to the Qiskit circuit:
if set to
True, automatically adds measures (all qubits are measured)if set to
False, measures are not included (default)
- Returns:
An equivalent Qiskit QuantumCircuit object