Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK. Go to the latest version.

Circuit Library


Circuit Library

qiskit.circuit.library

Standard Gates

Barrier(num_qubits)Barrier instruction.
C3XGate([angle, label, ctrl_state])The 4-qubit controlled X gate.
C3SXGate([label, ctrl_state, angle])The 3-qubit controlled sqrt-X gate.
C4XGate([label, ctrl_state])The 4-qubit controlled X gate.
CCXGate([label, ctrl_state])CCX gate, also known as Toffoli gate.
DCXGate()Double-CNOT gate.
CHGate([label, ctrl_state])Controlled-Hadamard gate.
CPhaseGate(theta[, label, ctrl_state])Controlled-Phase gate.
CRXGate(theta[, label, ctrl_state])Controlled-RX gate.
CRYGate(theta[, label, ctrl_state])Controlled-RY gate.
CRZGate(theta[, label, ctrl_state])Controlled-RZ gate.
CSwapGate([label, ctrl_state])Controlled-X gate.
CSXGate([label, ctrl_state])Controlled-√X gate.
CUGate(theta, phi, lam, gamma[, label, …])Controlled-U gate (4-parameter two-qubit gate).
CU1Gate(theta[, label, ctrl_state])Controlled-U1 gate.
CU3Gate(theta, phi, lam[, label, ctrl_state])Controlled-U3 gate (3-parameter two-qubit gate).
CXGate([label, ctrl_state])Controlled-X gate.
CYGate([label, ctrl_state])Controlled-Y gate.
CZGate([label, ctrl_state])Controlled-Z gate.
HGate([label])Single-qubit Hadamard gate.
IGate([label])Identity gate.
MCPhaseGate(lam, num_ctrl_qubits[, label])Multi-controlled-Phase gate.
MCXGate([num_ctrl_qubits, label, ctrl_state])The general, multi-controlled X gate.
MCXGrayCode([num_ctrl_qubits, label, ctrl_state])Implement the multi-controlled X gate using the Gray code.
MCXRecursive([num_ctrl_qubits, label, …])Implement the multi-controlled X gate using recursion.
MCXVChain([num_ctrl_qubits, dirty_ancillas, …])Implement the multi-controlled X gate using a V-chain of CX gates.
Measure()Quantum measurement in the computational basis.
MSGate(num_qubits, theta[, label])MSGate has been deprecated.
PhaseGate(theta[, label])Single-qubit rotation about the Z axis.
RCCXGate([label])The simplified Toffoli gate, also referred to as Margolus gate.
RC3XGate([label])The simplified 3-controlled Toffoli gate.
Reset()Qubit reset.
RXGate(theta[, label])Single-qubit rotation about the X axis.
RXXGate(theta)A parameteric 2-qubit XXX \otimes X interaction (rotation about XX).
RYGate(theta[, label])Single-qubit rotation about the Y axis.
RYYGate(theta)A parameteric 2-qubit YYY \otimes Y interaction (rotation about YY).
RZGate(phi[, label])Single-qubit rotation about the Z axis.
RZZGate(theta)A parameteric 2-qubit ZZZ \otimes Z interaction (rotation about ZZ).
RZXGate(theta)A parameteric 2-qubit ZXZ \otimes X interaction (rotation about ZX).
SGate([label])Single qubit S gate (Z**0.5).
SdgGate([label])Single qubit S-adjoint gate (~Z**0.5).
SwapGate([label])The SWAP gate.
iSwapGate()iSWAP gate.
SXGate([label])The single-qubit Sqrt(X) gate (X\sqrt{X}).
SXdgGate([label])The inverse single-qubit Sqrt(X) gate.
TGate([label])Single qubit T gate (Z**0.25).
TdgGate([label])Single qubit T-adjoint gate (~Z**0.25).
UGate(theta, phi, lam[, label])Generic single-qubit rotation gate with 3 Euler angles.
U1Gate(theta[, label])Single-qubit rotation about the Z axis.
U2Gate(phi, lam[, label])Single-qubit rotation about the X+Z axis.
U3Gate(theta, phi, lam[, label])Generic single-qubit rotation gate with 3 Euler angles.
XGate([label])The single-qubit Pauli-X gate (σx\sigma_x).
YGate([label])The single-qubit Pauli-Y gate (σy\sigma_y).
ZGate([label])The single-qubit Pauli-Z gate (σz\sigma_z).

Generalized Gates

Diagonal(diag)Diagonal circuit.
MCMT(gate, num_ctrl_qubits, num_target_qubits)The multi-controlled multi-target gate, for an arbitrary singly controlled target gate.
MCMTVChain(gate, num_ctrl_qubits, …[, label])The MCMT implementation using the CCX V-chain.
Permutation(num_qubits[, pattern, seed])An n_qubit circuit that permutes qubits.
GMS(num_qubits, theta)Global Mølmer–Sørensen gate.
GR(num_qubits, theta, phi)Global R gate.
GRX(num_qubits, theta)Global RX gate.
GRY(num_qubits, theta)Global RY gate.
GRZ(num_qubits, phi)Global RZ gate.

Boolean Logic Circuits

AND(num_variable_qubits[, flags, mcx_mode])A circuit implementing the logical AND operation on a number of qubits.
OR(num_variable_qubits[, flags, mcx_mode])A circuit implementing the logical OR operation on a number of qubits.
XOR(num_qubits[, amount, seed])An n_qubit circuit for bitwise xor-ing the input with some integer amount.
InnerProduct(num_qubits)An n_qubit circuit that computes the inner product of two registers.

Basis Change Circuits

QFT([num_qubits, approximation_degree, …])Quantum Fourier Transform Circuit.

Arithmetic Circuits

Functional Pauli Rotations

FunctionalPauliRotations([num_state_qubits, …])Base class for functional Pauli rotations.
LinearPauliRotations([num_state_qubits, …])Linearly-controlled X, Y or Z rotation.
PolynomialPauliRotations([num_state_qubits, …])A circuit implementing polynomial Pauli rotations.
PiecewiseLinearPauliRotations([…])Piecewise-linearly-controlled Pauli rotations.

Adders

WeightedAdder([num_state_qubits, weights, name])A circuit to compute the weighted sum of qubit registers.

Comparators

IntegerComparator([num_state_qubits, value, …])Integer Comparator.

Functions on binary variables

QuadraticForm([num_result_qubits, …])Implements a quadratic form on binary variables encoded in qubit registers.

Amplitude Functions

LinearAmplitudeFunction(num_state_qubits, …)A circuit implementing a (piecewise) linear function on qubit amplitudes.

Particular Quantum Circuits

FourierChecking(f, g)Fourier checking circuit.
GraphState(adjacency_matrix)Circuit to prepare a graph state.
HiddenLinearFunction(adjacency_matrix)Circuit to solve the hidden linear function problem.
IQP(interactions)Instantaneous quantum polynomial (IQP) circuit.
QuantumVolume(num_qubits[, depth, seed, …])A quantum volume model circuit.
PhaseEstimation(num_evaluation_qubits, unitary)Phase Estimation circuit.
GroverOperator(oracle[, state_preparation, …])The Grover operator.

Probability distributions

UniformDistribution(num_qubits[, name])A circuit to encode a discretized uniform distribution in qubit amplitudes.
NormalDistribution(num_qubits[, mu, sigma, …])A circuit to encode a discretized normal distribution in qubit amplitudes.
LogNormalDistribution(num_qubits[, mu, …])A circuit to encode a discretized log-normal distribution in qubit amplitudes.

N-local circuits

NLocal([num_qubits, rotation_blocks, …])The n-local circuit class.
TwoLocal([num_qubits, rotation_blocks, …])The two-local circuit.
RealAmplitudes([num_qubits, entanglement, …])The real-amplitudes 2-local circuit.
EfficientSU2([num_qubits, su2_gates, …])The hardware efficient SU(2) 2-local circuit.
ExcitationPreserving([num_qubits, mode, …])The heurisitic excitation-preserving wave function ansatz.

Data encoding circuits

PauliFeatureMap([feature_dimension, reps, …])The Pauli Expansion circuit.
ZFeatureMap(feature_dimension[, reps, …])The first order Pauli Z-evolution circuit.
ZZFeatureMap(feature_dimension[, reps, …])Second-order Pauli-Z evolution circuit.

NCT (Not-CNOT-Toffoli) template circuits

templates.nct.template_nct_2a_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_2a_2()returnstemplate as a quantum circuit.
templates.nct.template_nct_2a_3()returnstemplate as a quantum circuit.
templates.nct.template_nct_4a_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_4a_2()returnstemplate as a quantum circuit.
templates.nct.template_nct_4a_3()returnstemplate as a quantum circuit.
templates.nct.template_nct_4b_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_4b_2()returnstemplate as a quantum circuit.
templates.nct.template_nct_5a_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_5a_2()returnstemplate as a quantum circuit.
templates.nct.template_nct_5a_3()returnstemplate as a quantum circuit.
templates.nct.template_nct_5a_4()returnstemplate as a quantum circuit.
templates.nct.template_nct_6a_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_6a_2()returnstemplate as a quantum circuit.
templates.nct.template_nct_6a_3()returnstemplate as a quantum circuit.
templates.nct.template_nct_6a_4()returnstemplate as a quantum circuit.
templates.nct.template_nct_6b_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_6b_2()returnstemplate as a quantum circuit.
templates.nct.template_nct_6c_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_7a_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_7b_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_7c_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_7d_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_7e_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_2a_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_9a_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_9c_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_9c_2()returnstemplate as a quantum circuit.
templates.nct.template_nct_9c_3()returnstemplate as a quantum circuit.
templates.nct.template_nct_9c_4()returnstemplate as a quantum circuit.
templates.nct.template_nct_9c_5()returnstemplate as a quantum circuit.
templates.nct.template_nct_9c_6()returnstemplate as a quantum circuit.
templates.nct.template_nct_9c_7()returnstemplate as a quantum circuit.
templates.nct.template_nct_9c_8()returnstemplate as a quantum circuit.
templates.nct.template_nct_9c_9()returnstemplate as a quantum circuit.
templates.nct.template_nct_9c_10()returnstemplate as a quantum circuit.
templates.nct.template_nct_9c_11()returnstemplate as a quantum circuit.
templates.nct.template_nct_9c_12()returnstemplate as a quantum circuit.
templates.nct.template_nct_9d_1()returnstemplate as a quantum circuit.
templates.nct.template_nct_9d_2()returnstemplate as a quantum circuit.
templates.nct.template_nct_9d_3()returnstemplate as a quantum circuit.
templates.nct.template_nct_9d_4()returnstemplate as a quantum circuit.
templates.nct.template_nct_9d_5()returnstemplate as a quantum circuit.
templates.nct.template_nct_9d_6()returnstemplate as a quantum circuit.
templates.nct.template_nct_9d_7()returnstemplate as a quantum circuit.
templates.nct.template_nct_9d_8()returnstemplate as a quantum circuit.
templates.nct.template_nct_9d_9()returnstemplate as a quantum circuit.
templates.nct.template_nct_9d_10()returnstemplate as a quantum circuit.
Was this page helpful?
Report a bug or request content on GitHub.