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, MS

from 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 translate

  • include_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