quri_parts.ionq.circuit.transpile.ionq_native_transpiler module#

class quri_parts.ionq.circuit.transpile.ionq_native_transpiler.IonQNativeTranspiler(epsilon: float = 1e-06)#

Bases: CircuitTranspilerProtocol

CircuitTranspiler, which converts RX, RY, RZ, XX gates into GPi, GPi2, MS gates.

The conversion process to the native gates is a direct porting of the process of the code in IonQ’s introductory article. Due to the nature of the conversion process, each qubit may acquire an arbitrary extra phase. Therefore, only the measurement in the computational basis is guaranteed to match between before and after conversion.


[1]: https://ionq.com/docs/getting-started-with-native-gates

property epsilon: float#
class quri_parts.ionq.circuit.transpile.ionq_native_transpiler.CNOT2RXRYXXTranspiler(*args, **kwargs)#

Bases: GateKindDecomposer

CircuitTranspiler, which decomposes CNOT gates into sequences of RX, RY, and XX gates.

[1]: Dmitri Maslov,

Basic circuit compilation techniques for an ion-trap quantum machine, New J. Phys. 19, 023035 (2017).

[2]: https://ionq.com/docs/getting-started-with-native-gates

property target_gate_names: Sequence[str]#

Returns the set of gate names to be decomposed.”.

decompose(gate: QuantumGate) Sequence[QuantumGate]#

Describe the specific decomposition process. Only the target gates satisfying is_target_gate() method are passed.


gate – The gates to be decomposed.