Supported Quantum Logic Gates¶
Below is a list of quantum logic gates supported in the Intel® Quantum SDK and their signatures. To see the matrix definitions for these gates, refer to the file:
<path to Intel Quantum SDK>/iqc/include/clang/Quantum/quintrinsics.h
Hadamard (H)
void H(qbit& q);
Pauli X (X)
void X(qbit& q);
This is equivalent to a rotation around the X-axis by \(\pi\).
Pauli Y (Y)
void Y(qbit& q);
This is equivalent to a rotation around the Y-axis by \(\pi\).
Pauli Z (Z)
void Z(qbit& q);
This is equivalent to a rotation around the Z-axis by \(\pi\).
Phase (S)
void S(qbit& q);
Phase shift with half the rotation of Z (i.e. a \(\pi/2\) rotation). Equivalent to \(RZ(\pi/2)\).
Phase Inverse (Sdag)
void Sdag(qbit& q);
Conjugate transpose of S.
Note
Dag here is an abbreviation for “dagger”, which denotes the conjugate transpose of a Hermitian matrix.
T
void T(qbit& q);
Phase shift, with one quarter the rotation of Z (i.e. a \(\pi/4\) rotation). Equivalent to \(RZ(\pi/4)\).
T Inverse (Tdag)
void Tdag(qbit& q);
Conjugate transpose of T.
X axis Rotation (RX)
void RX(qbit& q, double angle);
Y axis Rotation (RY)
void RY(qbit& q, double angle);
Z axis rotation (RZ)
void RZ(qbit& q, double angle);
Controlled Z (CZ)
void CZ(qbit& ctrl, qbit& target);
CNOT
void CNOT(qbit& ctrl, qbit& target);
SWAP
void SWAP(qbit& ctrl, qbit& target);
Toffoli
void Toffoli(qbit& ctrl0, qbit& ctrl1, qbit& tgt);
Toffoli gate with two controls.
PrepZ
void PrepZ(qbit& q);
Initialize/reset qubit to the \(\ket{0}\) computational state.
PrepX
void PrepX(qbit& q);
Initialize/reset qubit to the \(\ket{+}\) computational state.
PrepY
void PrepY(qbit& q);
Initialize/reset qubit to the \(\ket{R}\) computational state.
MeasZ
void MeasZ(qbit& q, bool& c);
void MeasZ(qbit& q, cbit& c);
Measure the qubit
q
in the \(\ket{0}\) or \(\ket{1}\) computational states and store the result inc
.MeasX
void MeasX(qbit& q, bool& c);
void MeasX(qbit& q, cbit& c);
Measure the qubit
q
in the \(\ket{+}\) or \(\ket{-}\) computational states and store the result inc
.MeasY
void MeasY(qbit& q, bool& c);
void MeasY(qbit& q, cbit& c);
Measure the qubit
q
in the \(\ket{R}\) or \(\ket{L}\) computational states and store the result inc
.CPhase
void CPhase(qbit& ctrl, qbit& target, double angle);
Controlled Phase gate.
XY-plane Rotation
void RXY(qbit& q, double theta, double phi);
Define a rotation in the XY-plane of the Bloch sphere (RXY Matrix Representation).
Swap Alpha
void SwapA(qbit& q1, qbit& q2, double angle);
Rotation in the \(\text{Span}\{ \ket{01} \ket{10} \}\) subspace.
Quantum Dot Qubit Gates¶
Some physical systems will find it easier to implement certain quantum gates
because of differences in the underlying quantum systems used to create hardware qubits.
If two sets of quantum gates are each universal for quantum computing, then a quantum
algorithm can be implemented in either set of quantum gates. Below is the
list of the quantum gates that the Intel® Quantum SDK targets during compilation.
The gates written in the quantum_kernel
functions are decomposed by the
compiler into the gates below, and the results can be found in the human-readable
.qs
file. This list is for reference.
quprepz(qbit q)
An incoherent reset to computational \(\ket{0}\) state.
qumeasz(qbit q)
Measurement in the \(Z\) basis. This collapses the qubit to the measured state, either \(\ket{0}\) or \(\ket{1}\).
qurotxy (qbit q, double theta, double phi)
A rotation of
theta
around arbitrary axis in X-Y plane of the Bloch sphere as characterized by anglephi
, i.e. the operator \(\exp \left\{ -i \, \theta/2 \left( \cos(\phi) \hat{\textrm{X}} + \sin(\phi) \hat{\textrm{Y}} \right) \right\}\).qucphase(qbit q1, qbit q2, double theta)
An arbitrary phase of \(\exp \left(-i \, \theta \right)\) on the \(\ket{11}\) state of the given qubits.
quswapalp(qbit q1, qbit q2, double theta)
An arbitrary rotation of
theta
in the \(\left\{ \ket{01}, \ket{10} \right\}\) state subspace.qurotz(qbit q, double theta)
An arbitrary rotation of
theta
about the \(Z\)-axis of the Bloch sphere. Optimizers should minimize occurrences.