Quantum operations

PennyLane supports a wide variety of quantum operations—such as gates, state preparations and measurements. These operations can be used exclusively in quantum functions, like shown in the following example:

import pennylane as qml

def my_quantum_function(x, y):
    qml.RZ(x, wires=0)
    qml.RY(y, wires=1)
    return qml.expval(qml.PauliZ(1))

This quantum function uses the RZ, CNOT, RY gates as well as the PauliZ observable.

Below is a list of all quantum operations supported by PennyLane.

Qubit operations

Qubit gates

CNOT The controlled-NOT operator
CRot The controlled-Rot operator
CRX The controlled-RX operator
CRY The controlled-RY operator
CRZ The controlled-RZ operator
CSWAP The controlled-swap operator
CZ The controlled-Z operator
Hadamard The Hadamard operator
PauliX The Pauli X operator
PauliY The Pauli Y operator
PauliZ The Pauli Z operator
PhaseShift Arbitrary single qubit local phase shift
QubitUnitary Apply an arbitrary fixed unitary matrix.
Rot Arbitrary single qubit rotation
RX The single qubit X rotation
RY The single qubit Y rotation
RZ The single qubit Z rotation
S The single-qubit phase gate
SWAP The swap operator
T The single-qubit T gate

Qubit state preparation

BasisState Prepares a single computational basis state.
QubitStateVector Prepare subsystems using the given ket vector in the computational basis.

Qubit observables

Hadamard The Hadamard operator
Hermitian An arbitrary Hermitian observable.
PauliX The Pauli X operator
PauliY The Pauli Y operator
PauliZ The Pauli Z operator

Continuous-variable (CV) operations

CV Gates

Beamsplitter Beamsplitter interaction.
ControlledAddition Controlled addition operation.
ControlledPhase Controlled phase operation.
CrossKerr Cross-Kerr interaction.
CubicPhase Cubic phase shift.
Displacement Phase space displacement.
Interferometer A linear interferometer transforming the bosonic operators according to the unitary matrix \(U\).
Kerr Kerr interaction.
QuadraticPhase Quadratic phase shift.
Rotation Phase space rotation.
Squeezing Phase space squeezing.
TwoModeSqueezing Phase space two-mode squeezing.

CV state preparation

CatState Prepares a cat state.
CoherentState Prepares a coherent state.
DisplacedSqueezedState Prepares a displaced squeezed vacuum state.
FockDensityMatrix Prepare subsystems using the given density matrix in the Fock basis.
FockState Prepares a single Fock state.
FockStateVector Prepare subsystems using the given ket vector in the Fock basis.
GaussianState Prepare subsystems in a given Gaussian state.
SqueezedState Prepares a squeezed vacuum state.
ThermalState Prepares a thermal state.

CV observables

FockStateProjector The number state observable \(\ket{n}\bra{n}\).
NumberOperator The photon number observable \(\langle \hat{n}\rangle\).
P The momentum quadrature observable \(\hat{p}\).
PolyXP An arbitrary second-order polynomial observable.
QuadOperator The generalized quadrature observable \(\x_\phi = \x cos\phi+\p\sin\phi\).
X The position quadrature observable \(\hat{x}\).

Shared operations

The only operation shared by both qubit and continouous-variable architectures is the Identity.

Identity The identity observable \(\I\).