qat.lang.vendors.ionq_gate_set

qat.lang.vendors.ionq_gate_set(target='forte')

Generate a GateSet object corresponding to the gate set of IonQ.

The IonQ Aria gate set is composed of:

Gate name

Notation

Arity

Definition

GPi gate

\(GPi(\theta)\)

1

\(\forall \phi \in\rm I\!R: \begin{vmatrix} 0 & e^{-i\phi} \\ e^{i\phi} & 0 \\ \end{vmatrix}\)

GPi2 gate

\(GPi2(\theta)\)

1

\(\forall \phi \in\rm I\!R: \frac{1}{\sqrt{2}} \begin{vmatrix} 1 & -i \cdot e^{-i\phi} \\ -i \cdot e^{i\phi} & 1 \\ \end{vmatrix}\)

PMS gate

\(PMS(\phi_0, \phi_1, \theta)\)

2

\(\forall \phi_0, \phi_1, \theta \in\rm I\!R^3: \begin{vmatrix} cos(\theta/2) & 0 & 0 & -i \cdot e^{-i(\phi_0 + \phi_1)} \cdot sin(\theta/2) \\ 0 & cos(\theta/2) & -i \cdot e^{-i(\phi_0 - \phi_1)} \cdot sin(\theta/2) & 0 \\ 0 & -i \cdot e^{i(\phi_0 - \phi_1)} \cdot sin(\theta/2) & cos(\theta/2) & 0 \\ -i \cdot e^{i(\phi_0 + \phi_1)} \cdot sin(\theta/2) & 0 & 0 & cos(\theta/2) \\ \end{vmatrix}\)

from qat.lang.vendors import ionq_gate_set

for gate_name in ionq_gate_set(target="aria"):
    print(gate_name)
GPi
GPi2
PMS

The IonQ Forte gate set is composed of:

Gate name

Notation

Arity

Definition

GPi gate

\(GPi(\theta)\)

1

\(\forall \phi \in\rm I\!R: \begin{vmatrix} 0 & e^{-i\phi} \\ e^{i\phi} & 0 \\ \end{vmatrix}\)

GPi2 gate

\(GPi2(\theta)\)

1

\(\forall \phi \in\rm I\!R: \frac{1}{\sqrt{2}} \begin{vmatrix} 1 & -i \cdot e^{-i\phi} \\ -i \cdot e^{i\phi} & 1 \\ \end{vmatrix}\)

ZZ gate

\(ZZ(\pi/2)\)

2

\(\begin{vmatrix} 1 & 0 & 0 & 0 \\ 0 & i & 0 & 0 \\ 0 & 0 & i & 0 \\ 0 & 0 & 0 & 1 \\ \end{vmatrix}`\)

from qat.lang.vendors import ionq_gate_set

for gate_name in ionq_gate_set(target="forte"):
    print(gate_name)
GPi
GPi2
ZZ
Parameters:

target (str) – The target IonQ processor family (aria/forte). Defaults to forte.

Returns:

Gate set of the selected IonQ processor family

Return type:

GateSet