Gate reference

The standard gates a Qollab circuit is built from: the symbol the Circuit panel draws, the Qiskit call in Python and JS, qubits and parameters, with a page per gate.

Qollab circuits use Qiskit's gate methods, called the same way in Python and JS: qc.h(0) in one, circuit.h(0) in the other. Angles are in radians. The standard gates run on every backend, with two cases that need transpile() first: the built-in simulator for the multi-controlled gates (mcx, mcp) and for Pauli evolution, and the IBM noise models for Pauli evolution. The native gates need a native-gateset backend. The local simulators also take some of Qiskit's rarer gates (iswap, ecr, cswap, rzx), which have no page here.

On an IonQ run the Circuit panel on the Run tab draws the circuit as it was submitted, one box per gate, with a dot on each control wire. Local and IBM noise-model runs show no circuit panel.

Single-qubit gates

PanelGateDoesCallControlled form
HH gate (Hadamard)Equal superposition of 0 and 1h(q)ch(control, target)
XX gate (NOT)Flips 0 and 1x(q)cx(control, target)
YY gateFlips 0 and 1, with a phasey(q)cy(control, target)
ZZ gateFlips the sign of 1z(q)cz(control, target)
SS gateQuarter-turn phase on 1s(q)
SdgS† gateUndoes Ssdg(q)
TT gateEighth-turn phase on 1t(q)
TdgT† gateUndoes Ttdg(q)
√X√X gateHalf of an Xsx(q)csx(control, target)
√X†√X† gateUndoes √Xsxdg(q)
P(λ)P gate (phase)Phase λ on 1p(λ, q)cp(λ, control, target)
Rx(θ)RX gateRotation about X by θrx(θ, q)crx(θ, control, target)
Ry(θ)RY gateRotation about Y by θry(θ, q)cry(θ, control, target)
Rz(θ)RZ gateRotation about Z by θrz(θ, q)crz(θ, control, target)

A controlled form applies the gate to the target only when the control is 1\vert 1 \rangle. The panel draws it as the base gate's box with a dot on the control wire.

Two-qubit gates

PanelGateDoesCall
● XCX gate (CNOT)Flips the target when the control is 1cx(control, target)
● YCY gateY on the target when the control is 1cy(control, target)
● ZCZ gateFlips the sign of 11cz(control, target)
● P(λ)CP gatePhase λ on 11cp(λ, control, target)
SwapSwap gateExchanges two qubitsswap(a, b)
Xx(θ)RXX gateRotates the pair about X⊗X by θrxx(θ, a, b)
Yy(θ)RYY gateRotates the pair about Y⊗Y by θryy(θ, a, b)
Zz(θ)RZZ gatePhase that depends on whether the pair agreesrzz(θ, a, b)

Three or more qubits

PanelGateDoesCall
● ● XCCX gate (Toffoli)Flips the target when both controls are 1ccx(control1, control2, target)
● … XMulti-controlled XFlips the target when every control is 1mcx([controls], target)
● … P(λ)Multi-controlled phasePhase λ when every control and the target are 1mcp(λ, [controls], target)

A multi-controlled gate can carry up to 7 control qubits on IonQ backends; more than that fails at submission with the entry in the Error reference.

Pauli evolution

PanelGateDoesCall
exp(…)(t)Pauli evolutionEvolves the qubits under a Hamiltonian for time tqc.append(PauliEvolutionGate(op, time=t), qubits)

PauliEvolutionGate is in qiskit.circuit.library. The panel prints the weighted Pauli terms inside exp(…) and the time after them. IonQ backends take the gate as submitted when its terms commute with each other (the gate page covers the option for terms that do not); the built-in simulator and the IBM noise models reject it untranspiled, so run transpile() first there (see Transpilation).

IonQ native gates

Native gates are what IonQ hardware physically executes. They appear in your circuit only when you write a native-gate circuit yourself, which turns IonQ's compiler off; see How your circuit is compiled. They come from qiskit_ionq rather than qiskit, and their angles are in turns (a fraction of a full rotation), not radians.

GateDoesCallSystems
GPiHalf-turn about an axis at phase φqc.append(GPIGate(φ), [q])Aria and Forte
GPi2Quarter-turn about an axis at phase φqc.append(GPI2Gate(φ), [q])Aria and Forte
MSEntangles the pair by θ, from 0 (identity) to 0.25 (fully, the default)qc.append(MSGate(φ0, φ1, θ), [a, b])Aria
ZZPhase that depends on whether the pair agreesqc.append(ZZGate(θ), [a, b])Forte

Stay in the loop.

Get the latest tutorials, demos, and project showcases straight to your inbox. No noise, just the good stuff.