This is the top level module from which all basic functions and classes of PennyLane can be directly imported.



Prints the information for pennylane installation.


Function that checks if the new return types system is activated.

adjoint(fn[, lazy])

Create the adjoint of an Operator or a function that applies the adjoint of the provided function.

adjoint_metric_tensor(circuit[, device, hybrid])

Implements the adjoint method outlined in Jones to compute the metric tensor.

apply(op[, context])

Apply an instantiated operator or measurement to a queuing context.

apply_controlled_Q(fn, wires, target_wire, …)

Provides the circuit to apply a controlled version of the \(\mathcal{Q}\) unitary defined in this paper.

batch_input(tape, argnum)

Transform a QNode to support an initial batch dimension for gate inputs.

batch_params(tape[, all_operations])

Transform a QNode to support an initial batch dimension for operation parameters.

batch_partial(qnode[, all_operations, …])

Create a batched partial callable object from the QNode specified.

broadcast(unitary, wires, pattern[, …])

Applies a unitary multiple times to a specific pattern of wires.

classical_shadow(wires[, seed])

The classical shadow measurement protocol.


Construct the pairwise-commutation DAG (directed acyclic graph) representation of a quantum circuit.

compile(tape[, pipeline, basis_set, …])

Compile a circuit by applying a series of transforms to a quantum function.

cond(condition, true_fn[, false_fn])

Condition a quantum operation on the results of mid-circuit qubit measurements.

counts([op, wires, all_outcomes])

Sample from the supplied observable, with the number of shots determined from the dev.shots attribute of the corresponding device, returning the number of counts for each sample.

ctrl(op, control[, control_values, work_wires])

Create a method that applies a controlled version of the provided op.

cut_circuit(tape[, auto_cutter, …])

Cut up a quantum circuit into smaller circuit fragments.

cut_circuit_mc(tape[, …])

Cut up a circuit containing sample measurements into smaller fragments using a Monte Carlo method.


Quantum function transform that substitutes operations conditioned on measurement outcomes to controlled operations.


Quantum density matrix in the computational basis.

device(name[, wires])

Load a Device and return the instance.


Function that turns off the new return type system.

dot(coeffs, ops[, pauli])

Returns the dot product between the coeffs vector and the ops list of operators.

draw(qnode[, wire_order, show_all_wires, …])

Create a function that draws the given qnode or quantum function.

draw_mpl(qnode[, wire_order, …])

Draw a qnode with matplotlib

eigvals(op[, k, which])

The eigenvalues of one or more operations.


Function that turns on the experimental return type system that prefers the use of sequences over arrays.

equal(op1, op2[, check_interface, …])

Function for determining operator or measurement equality.


This method is dispatched and its functionality depends on the type of the input op.

execute(tapes, device[, gradient_fn, …])

New function to execute a batch of tapes on a device in an autodifferentiable-compatible manner.

exp(op[, coeff, num_steps, id])

Take the exponential of an Operator times a coefficient.


Expectation value of the supplied observable.


Loads pyQuil Program objects by using the converter in the PennyLane-Forest plugin.


Loads quantum circuits from a QASM string using the converter in the PennyLane-Qiskit plugin.


Loads quantum circuits from a QASM file using the converter in the PennyLane-Qiskit plugin.


Loads Qiskit QuantumCircuit objects by using the converter in the PennyLane-Qiskit plugin.


Loads quantum circuits from a Quil string using the converter in the PennyLane-Forest plugin.


Loads quantum circuits from a Quil file using the converter in the PennyLane-Forest plugin.

generator(op[, format])

Returns the generator of an operation.

import_operator(qubit_observable[, format, …])

Convert an external operator to a PennyLane operator.

is_commuting(operation1, operation2[, wire_map])

Check if two operations are commuting using a lookup table.


Check if the operation is hermitian.


Check if the operation is unitary.

jacobian(func[, argnum])

Returns the Jacobian as a callable function of vector-valued (functions of) QNodes.

jordan_wigner(fermi_operator, **kwargs)

Convert a fermionic operator to a qubit operator using the Jordan-Wigner mapping.

layer(template, depth, *args, **kwargs)

Repeatedly applies a unitary a given number of times.

load(quantum_circuit_object, format)

Load external quantum assembly and quantum circuits from supported frameworks into PennyLane templates.

map_wires(input, wire_map[, queue, replace])

Changes the wires of an operator, tape, qnode or quantum function according to the given wire map.

matrix(op, *[, wire_order])

The matrix representation of an operation or quantum circuit.

measure(wires[, reset])

Perform a mid-circuit measurement in the computational basis on the supplied qubit.

metric_tensor(tape[, argnum, approx, …])

Returns a function that computes the metric tensor of a given QNode or quantum tape.

mutual_info(wires0, wires1[, log_base])

Mutual information between the subsystems prior to measurement:

pattern_matching(circuit_dag, pattern_dag)

Function that applies the pattern matching algorithm and returns the list of maximal matches.

pattern_matching_optimization(tape, …[, …])

Quantum function transform to optimize a circuit given a list of patterns (templates).

pauli_decompose(H[, hide_identity, …])

Decomposes a Hermitian matrix into a linear combination of Pauli operators.

paulix_ops(generators, num_qubits)

Generate the single qubit Pauli-X operators \(\sigma^{x}_{i}\) for each symmetry \(\tau_j\), such that it anti-commutes with \(\tau_j\) and commutes with all others symmetries \(\tau_{k\neq j}\).

pow(base[, z, lazy, id])

Raise an Operator to a power.

probs([wires, op])

Probability of each computational basis state.

prod(*ops[, id, lazy])

Construct an operator which represents the generalized product of the operators provided.


The purity of the system prior to measurement.


Given a function which defines a tape transform, convert the function into one that applies the tape transform to quantum functions (qfuncs).

qnode(func, device[, interface, …])

Represents a quantum node in the hybrid computational graph.

qsvt(A, angles, wires[, convention])

Implements the quantum singular value transformation (QSVT) circuit.

quantum_monte_carlo(fn, wires, target_wire, …)

Provides the circuit to perform the quantum Monte Carlo estimation algorithm.


Scan installed PennyLane plugins to refresh the device list.

s_prod(scalar, operator[, lazy, id])

Construct an operator which is the scalar product of the given scalar and operator provided.

sample([op, wires])

Sample from the supplied observable, with the number of shots determined from the dev.shots attribute of the corresponding device, returning raw samples.

shadow_expval(H[, k, seed])

Compute expectation values using classical shadows in a differentiable manner.


Simplifies an operator, tape, qnode or quantum function by reducing its arithmetic depth or number of rotation parameters.


Create a function that retrieves snapshot results from a QNode.

specs(qnode[, max_expansion, expansion_strategy])

Resource information about a quantum circuit.


Quantum state in the computational basis.

sum(*summands[, id, lazy])

Construct an operator which is the sum of the given operators.


Compute the generators \(\{\tau_1, \ldots, \tau_k\}\) for a Hamiltonian over the binary field \(\mathbb{Z}_2\).

taper(h, generators, paulixops, paulix_sector)

Transform a Hamiltonian with a Clifford operator and then taper qubits.

taper_operation(operation, generators, …)

Transform a gate operation with a Clifford operator and then taper qubits.


Variance of the supplied observable.


Returns the PennyLane version number.

vn_entropy(wires[, log_base])

Von Neumann entropy of the system prior to measurement.


AdagradOptimizer([stepsize, eps])

Gradient-descent optimizer with past-gradient-dependent learning rate in each dimension.

AdamOptimizer([stepsize, beta1, beta2, eps])

Gradient-descent optimizer with adaptive learning rate, first and second moment.

AdaptiveOptimizer([param_steps, stepsize])

Optimizer for building fully trained quantum circuits by adding gates adaptively.

AllSinglesDoubles(weights, wires, hf_state)

Builds a quantum circuit to prepare correlated states of molecules by applying all SingleExcitation and DoubleExcitation operations to the initial Hartree-Fock state.

AmplitudeDamping(gamma, wires[, id])

Single-qubit amplitude damping error channel.

AmplitudeEmbedding(features, wires[, …])

Encodes \(2^n\) features into the amplitude vector of \(n\) qubits.

AngleEmbedding(features, wires[, rotation, id])

Encodes \(N\) features into the rotation angles of \(n\) qubits, where \(N \leq n\).

ApproxTimeEvolution(hamiltonian, time, n[, id])

Applies the Trotterized time-evolution operator for an arbitrary Hamiltonian, expressed in terms of Pauli gates.

ArbitraryStatePreparation(weights, wires[, id])

Implements an arbitrary state preparation on the specified wires.

ArbitraryUnitary(weights, wires[, id])

Implements an arbitrary unitary on the specified wires.


The Barrier operator, used to separate the compilation process into blocks or as a visual tool.

BasicEntanglerLayers(weights[, wires, …])

Layers consisting of one-parameter single-qubit rotations on each qubit, followed by a closed chain or ring of CNOT gates.

BasisEmbedding(features, wires[, id])

Encodes \(n\) binary features into a basis state of \(n\) qubits.

BasisRotation(wires, unitary_matrix[, check, id])

Implement a circuit that provides a unitary that can be used to do an exact single-body basis rotation.

BasisState(n, wires)

Prepares a single computational basis state.

BasisStatePreparation(basis_state, wires[, id])

Prepares a basis state on the given wires using a sequence of Pauli-X gates.

Beamsplitter(theta, phi, wires[, id])

Beamsplitter interaction.

BitFlip(p, wires[, id])

Single-qubit bit flip (Pauli \(X\)) error channel.

BlockEncode(A, wires)

Construct a unitary \(U(A)\) such that an arbitrary matrix \(A\) is encoded in the top-left block.


Wrapper for simple callables with boolean output that can be manipulated and combined with bit-wise operators.


CCZ (controlled-controlled-Z) gate.


The controlled-Hadamard operator


The controlled-NOT operator


alias of pennylane.ops.qubit.parametric_ops_controlled.ControlledPhaseShift

CPhaseShift00(phi, wires[, id])

A qubit controlled phase shift.

CPhaseShift01(phi, wires[, id])

A qubit controlled phase shift.

CPhaseShift10(phi, wires[, id])

A qubit controlled phase shift.

CRX(phi, wires[, id])

The controlled-RX operator

CRY(phi, wires[, id])

The controlled-RY operator

CRZ(phi, wires[, id])

The controlled-RZ operator

CRot(phi, theta, omega, wires[, id])

The controlled-Rot operator


The controlled-swap operator

CVNeuralNetLayers(theta_1, phi_1, varphi_1, …)

A sequence of layers of a continuous-variable quantum neural network, as specified in Killoran et al. (2019).


The controlled-Y operator


The controlled-Z operator

CatState(a, phi, p, wires[, id])

Prepares a cat state.

CircuitGraph(ops, obs, wires[, par_info, …])

Represents a quantum circuit as a directed acyclic graph.

ClassicalShadow(bits, recipes[, wire_map])

Class for classical shadow post-processing expectation values, approximate states, and entropies.

CoherentState(a, phi, wires[, id])

Prepares a coherent state.

CommutingEvolution(hamiltonian, time[, …])

Applies the time-evolution operator for a Hamiltonian expressed as a linear combination of mutually commuting Pauli words.


Configuration class.

ControlledAddition(s, wires[, id])

Controlled addition operation.

ControlledPhase(s, wires[, id])

Controlled phase operation.

ControlledPhaseShift(phi, wires[, id])

A qubit controlled phase shift.

ControlledQubitUnitary(U, control_wires, …)

Apply an arbitrary fixed unitary to wires with control from the control_wires.

ControlledQutritUnitary(U, control_wires, …)

Apply an arbitrary fixed unitary to wires with control from the control_wires.

CrossKerr(kappa, wires[, id])

Cross-Kerr interaction.

CubicPhase(gamma, wires[, id])

Cubic phase shift.

DepolarizingChannel(p, wires[, id])

Single-qubit symmetrically depolarizing error channel.

Device([wires, shots, analytic])

Abstract base class for PennyLane devices.


Exception raised by a Device when it encounters an illegal operation in the quantum circuit.

DiagonalQubitUnitary(D, wires)

Apply an arbitrary diagonal unitary matrix with a dimension that is a power of two.

DisplacedSqueezedState(a, phi_a, r, phi_r, wires)

Prepares a displaced squeezed vacuum state.

Displacement(a, phi, wires[, id])

Phase space displacement.

DisplacementEmbedding(features, wires[, …])

Encodes \(N\) features into the displacement amplitudes \(r\) or phases \(\phi\) of \(M\) modes, where \(N\leq M\).

DoubleExcitation(phi, wires[, id])

Double excitation rotation.

DoubleExcitationMinus(*params[, wires, id])

Double excitation rotation with negative phase-shift outside the rotation subspace.

DoubleExcitationPlus(phi, wires[, id])

Double excitation rotation with positive phase-shift outside the rotation subspace.


An echoed RZX(pi/2) gate.

ExpvalCost(ansatz, hamiltonian, device[, …])

Create a cost function that gives the expectation value of an input Hamiltonian.


The fermionic annihilation operator \(a\)


The fermionic creation operator \(a^{\dagger}\)

FermionicDoubleExcitation(weight[, wires1, …])

Circuit to exponentiate the tensor product of Pauli matrices representing the double-excitation operator entering the Unitary Coupled-Cluster Singles and Doubles (UCCSD) ansatz.

FermionicSWAP(phi, wires[, id])

Fermionic SWAP rotation.

FermionicSingleExcitation(weight[, wires, id])

Circuit to exponentiate the tensor product of Pauli matrices representing the single-excitation operator entering the Unitary Coupled-Cluster Singles and Doubles (UCCSD) ansatz.

FlipSign(n, wires[, id])

Flips the sign of a given basis state.

FockDensityMatrix(state, wires[, id])

Prepare subsystems using the given density matrix in the Fock basis.

FockState(n, wires[, id])

Prepares a single Fock state.

FockStateProjector(n, wires[, id])

The number state observable \(\ket{n}\bra{n}\).

FockStateVector(state, wires[, id])

Prepare subsystems using the given ket vector in the Fock basis.

GateFabric(weights, wires, init_state[, …])

Implements a local, expressive, and quantum-number-preserving ansatz proposed by Anselmetti et al. (2021).

GaussianState(V, r, wires[, id])

Prepare subsystems in a given Gaussian state.

GellMann(wires[, index, id])

The Gell-Mann observables for qutrits

GeneralizedAmplitudeDamping(gamma, p, wires)

Single-qubit generalized amplitude damping error channel.


Basic gradient-descent optimizer.

GroverOperator([wires, work_wires, id])

Performs the Grover Diffusion Operator.


The Hadamard operator

Hamiltonian(coeffs, observables[, simplify, …])

Operator representing a Hamiltonian.

Hermitian(A, wires[, id])

An arbitrary Hermitian observable.

HilbertSchmidt(*params, v_function, v_wires, …)

Create a Hilbert-Schmidt template that can be used to compute the Hilbert-Schmidt Test (HST).

IQPEmbedding(features, wires[, n_repeats, …])

Encodes \(n\) features into \(n\) qubits using diagonal gates of an IQP circuit.


The i-swap operator


The identity observable \(\I\).

IntegerComparator(value, geq, wires)

Apply a controlled Pauli X gate using integer comparison as the condition.

Interferometer(theta, phi, varphi, wires[, …])

General linear interferometer, an array of beamsplitters and phase shifters.

InterferometerUnitary(U, wires[, id])

A linear interferometer transforming the bosonic operators according to the unitary matrix \(U\).

IsingXX(phi, wires[, id])

Ising XX coupling gate

IsingXY(phi, wires[, id])

Ising (XX + YY) coupling gate

IsingYY(phi, wires[, id])

Ising YY coupling gate

IsingZZ(phi, wires[, id])

Ising ZZ coupling gate

Kerr(kappa, wires[, id])

Kerr interaction.

LocalHilbertSchmidt(*params, v_function, …)

Create a Local Hilbert-Schmidt template that can be used to compute the Local Hilbert-Schmidt Test (LHST).

MERA(wires, n_block_wires, block, n_params_block)

The MERA template broadcasts an input circuit across many wires following the architecture of a multi-scale entanglement renormalization ansatz tensor network.

MPS(wires, n_block_wires, block, n_params_block)

The MPS template broadcasts an input circuit across many wires following the architecture of a Matrix Product State tensor network.

MomentumOptimizer([stepsize, momentum])

Gradient-descent optimizer with momentum.

MottonenStatePreparation(state_vector, wires)

Prepares an arbitrary state on the given wires using a decomposition into gates developed by Möttönen et al. (2004).

MultiControlledX(control_wires, wires, …)

Apply a Pauli X gate controlled on an arbitrary computational basis state.

MultiRZ(theta[, wires, id])

Arbitrary multi Z rotation.

NesterovMomentumOptimizer([stepsize, momentum])

Gradient-descent optimizer with Nesterov momentum.


The photon number observable \(\langle \hat{n}\rangle\).

OrbitalRotation(phi, wires[, id])

Spin-adapted spatial orbital rotation.


The momentum quadrature observable \(\hat{p}\).

PCPhase(phi, dim, wires)

A projector-controlled phase gate.

PSWAP(phi, wires[, id])

Phase SWAP gate

ParticleConservingU1(weights, wires[, …])

Implements the heuristic VQE ansatz for quantum chemistry simulations using the particle-conserving gate \(U_{1,\mathrm{ex}}\) proposed by Barkoutsos et al. in arXiv:1805.04340.

ParticleConservingU2(weights, wires[, …])

Implements the heuristic VQE ansatz for Quantum Chemistry simulations using the particle-conserving entangler \(U_\mathrm{ent}(\vec{\theta}, \vec{\phi})\) proposed in arXiv:1805.04340.

PauliError(operators, p[, wires, id])

Pauli operator error channel for an arbitrary number of qubits.

PauliRot(theta, pauli_word[, wires, id])

Arbitrary Pauli word rotation.


The Pauli X operator


The Pauli Y operator


The Pauli Z operator

Permute(permutation, wires[, id])

Applies a permutation to a set of wires.

PhaseDamping(gamma, wires[, id])

Single-qubit phase damping error channel.

PhaseFlip(p, wires[, id])

Single-qubit bit flip (Pauli \(Z\)) error channel.

PhaseShift(phi, wires[, id])

Arbitrary single qubit local phase shift

PolyXP(q, wires[, id])

An arbitrary second-order polynomial observable.

Projector(state, wires[, id])

Observable corresponding to the state projector \(P=\ket{\phi}\bra{\phi}\).

QAOAEmbedding(features, weights, wires[, …])

Encodes \(N\) features into \(n>N\) qubits, using a layered, trainable quantum circuit that is inspired by the QAOA ansatz.


Apply a quantum Fourier transform (QFT).

QNGOptimizer([stepsize, approx, lam])

Optimizer with adaptive learning rate, via calculation of the diagonal or block-diagonal approximation to the Fubini-Study metric tensor.

QNSPSAOptimizer([stepsize, regularization, …])

Quantum natural SPSA (QNSPSA) optimizer.

QNode(func, device[, interface, …])

Represents a quantum node in the hybrid computational graph.


Implements the quantum singular value transformation (QSVT) circuit.

QuadOperator(phi, wires[, id])

The generalized quadrature observable \(\x_\phi = \x cos\phi+\p\sin\phi\).


The momentum quadrature observable \(\hat{p}\).


The position quadrature observable \(\hat{x}\).

QuadraticPhase(s, wires[, id])

Quadratic phase shift.


Exception raised when an illegal operation is defined in a quantum function.

QuantumMonteCarlo(probs, func, target_wires, …)

Performs the quantum Monte Carlo estimation algorithm.

QuantumPhaseEstimation(unitary[, …])

Performs the quantum phase estimation circuit.


Apply the QubitCarry operation to four input wires.

QubitChannel(K_list[, wires, id])

Apply an arbitrary fixed quantum channel.

QubitDensityMatrix(state, wires)

Prepare subsystems using the given density matrix.

QubitDevice([wires, shots, r_dtype, …])

Abstract base class for PennyLane qubit devices.

QubitStateVector(state, wires[, id])


Apply a QubitSum operation on three input wires.

QubitUnitary(U, wires)

Apply an arbitrary unitary matrix with a dimension that is a power of two.


Singleton global entry point for managing active recording contexts.

QutritBasisState(n, wires)

Prepares a single computational basis state for a qutrit system.

QutritBasisStatePreparation(basis_state, wires)

Prepares a basis state on the given wires using a sequence of TShift gates.

QutritDevice([wires, shots, r_dtype, …])

Abstract base class for PennyLane qutrit devices.

QutritUnitary(*params, wires)

Apply an arbitrary, fixed unitary matrix.

RMSPropOptimizer([stepsize, decay, eps])

Root mean squared propagation optimizer.

RX(phi, wires[, id])

The single qubit X rotation

RY(phi, wires[, id])

The single qubit Y rotation

RZ(phi, wires[, id])

The single qubit Z rotation

RandomLayers(weights, wires[, ratio_imprim, …])

Layers of randomly chosen single qubit rotations and 2-qubit entangling gates, acting on randomly chosen qubits.

ResetError(p0, p1, wires[, id])

Single-qubit Reset error channel.

RiemannianGradientOptimizer(circuit[, …])

Riemannian gradient optimizer.

Rot(phi, theta, omega, wires[, id])

Arbitrary single qubit rotation

Rotation(phi, wires[, id])

Phase space rotation.


Rotoselect gradient-free optimizer.

RotosolveOptimizer([substep_optimizer, …])

Rotosolve gradient-free optimizer.


The single-qubit phase gate


The square root of i-swap operator.

SPSAOptimizer([maxiter, alpha, gamma, c, A, a])

The Simultaneous Perturbation Stochastic Approximation method (SPSA) is a stochastic approximation algorithm for optimizing cost functions whose evaluation may involve noise.


alias of pennylane.ops.qubit.non_parametric_ops.SISWAP


The swap operator


The single-qubit Square-Root X operator.

Select(ops, control[, id])

Applies specific input operations depending on the state of the designated control qubits.

ShotAdaptiveOptimizer(min_shots[, …])

Optimizer where the shot rate is adaptively calculated using the variances of the parameter-shift gradient.

SimplifiedTwoDesign(initial_layer_weights, …)

Layers consisting of a simplified 2-design architecture of Pauli-Y rotations and controlled-Z entanglers proposed in Cerezo et al. (2021).

SingleExcitation(phi, wires[, id])

Single excitation rotation.

SingleExcitationMinus(phi, wires[, id])

Single excitation rotation with negative phase-shift outside the rotation subspace.

SingleExcitationPlus(phi, wires[, id])

Single excitation rotation with positive phase-shift outside the rotation subspace.


The Snapshot operation saves the internal simulator state at specific execution steps of a quantum function.

SparseHamiltonian(H[, wires, id])

A Hamiltonian represented directly as a sparse matrix in Compressed Sparse Row (CSR) format.

SpecialUnitary(theta, wires[, id])

Gate from the group \(SU(N)\) with \(N=2^n\) for \(n\) qubits.

SqueezedState(r, phi, wires[, id])

Prepares a squeezed vacuum state.

Squeezing(r, phi, wires[, id])

Phase space squeezing.

SqueezingEmbedding(features, wires[, …])

Encodes \(N\) features into the squeezing amplitudes \(r \geq 0\) or phases \(\phi \in [0, 2\pi)\) of \(M\) modes, where \(N\leq M\).

StatePrep(state, wires)

Prepare subsystems using the given ket vector in the computational basis.

StronglyEntanglingLayers(weights, wires[, …])

Layers consisting of single qubit rotations and entanglers, inspired by the circuit-centric classifier design arXiv:1804.00633.


The single-qubit T gate


The 2-qutrit controlled add gate


Ternary Clock gate

THadamard(wires, subspace)

The ternary Hadamard operator

THermitian(A, wires[, id])

An arbitrary Hermitian observable for qutrits.

TRX(phi, wires[, subspace, id])

The single qutrit X rotation

TRY(phi, wires[, subspace, id])

The single qutrit Y rotation

TRZ(phi, wires[, subspace, id])

The single qutrit Z rotation


The ternary swap operator.


The qutrit shift operator

TTN(wires, n_block_wires, block, n_params_block)

The TTN template broadcasts an input circuit across many wires following the architecture of a tree tensor network.


The tensor product of the NumberOperator acting on different wires.

ThermalRelaxationError(pe, t1, t2, tq, wires)

Thermal relaxation error channel.

ThermalState(nbar, wires[, id])

Prepares a thermal state.


Toffoli (controlled-controlled-X) gate.

Tracker([dev, callback, persistent])

This class stores information about device executions and allows users to interact with that data upon individual executions and batches, even within parameter-shift gradients and optimization steps.

TwoLocalSwapNetwork(wires[, acquaintances, …])

Apply two-local gate operations using a canonical 2-complete linear (2-CCL) swap network.

TwoModeSqueezing(r, phi, wires[, id])

Phase space two-mode squeezing.

U1(phi, wires[, id])

U1 gate.

U2(phi, delta, wires[, id])

U2 gate.

U3(theta, phi, delta, wires[, id])

Arbitrary single qubit unitary.

UCCSD(weights, wires[, s_wires, d_wires, …])

Implements the Unitary Coupled-Cluster Singles and Doubles (UCCSD) ansatz.


The wire cut operation, used to manually mark locations for wire cuts.


The position quadrature observable \(\hat{x}\).

batch_transform(*args, **kwargs)

Class for registering a tape transform that takes a tape, and outputs a batch of tapes to be independently executed on a quantum device.

grad(fun[, argnum])

Returns the gradient as a callable function of (functions of) QNodes.

kUpCCGSD(weights, wires[, k, delta_sz, …])

Implements the k-Unitary Pair Coupled-Cluster Generalized Singles and Doubles (k-UpCCGSD) ansatz.

op_transform(*args, **kwargs)

Convert a function that applies to operators into a functional transform.


For registering a tape transform that takes a tape and outputs a single new tape.