# qml¶

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

## Functions¶

 Interferometer(theta, phi, varphi, wires[, …]) General linear interferometer, an array of beamsplitters and phase shifters. Prints the information for pennylane installation. Create a function that applies the adjoint (inverse) of the provided operation or template. 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_params(tape[, all_operations]) Transform a QNode to support an initial batch dimension for operation parameters. broadcast(unitary, wires, pattern[, …]) Applies a unitary multiple times to a specific pattern of wires. compile Compile a circuit by applying a series of transforms to a quantum function. ctrl(fn, control) Create a method that applies a controlled version of the provided method. density_matrix(wires) Quantum density matrix in the computational basis. device(name[, wires]) Load a Device and return the instance. dot(x, y) Lazily perform the dot product between arrays, tensors, and QNodeCollection. draw(qnode[, charset, wire_order, …]) Create a function that draws the given qnode. execute(tapes, device, gradient_fn[, …]) Execute a batch of tapes on a device in an autodifferentiable-compatible manner. expval(op) Expectation value of the supplied observable. finite_diff(f[, N, argnum, idx, delta]) Returns a function that can be evaluated to compute the gradient or the second-order derivative of the callable function f using a centered finite difference approximation. from_pyquil(pyquil_program) Loads pyQuil Program objects by using the converter in the PennyLane-Forest plugin. from_qasm(quantum_circuit) Loads quantum circuits from a QASM string using the converter in the PennyLane-Qiskit plugin. from_qasm_file(qasm_filename) Loads quantum circuits from a QASM file using the converter in the PennyLane-Qiskit plugin. from_qiskit(quantum_circuit) Loads Qiskit QuantumCircuit objects by using the converter in the PennyLane-Qiskit plugin. from_quil(quil) Loads quantum circuits from a Quil string using the converter in the PennyLane-Forest plugin. from_quil_file(quil_filename) Loads quantum circuits from a Quil file using the converter in the PennyLane-Forest plugin. jacobian(func[, argnum]) Returns the Jacobian as a callable function of vector-valued (functions of) QNodes. 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(template, observables, device[, …]) Map a quantum template over a list of observables to create a QNodeCollection. measurement_grouping(tape, obs_list, coeffs_list) Returns a list of measurement optimized tapes, and a classical processing function, for evaluating the expectation value of a provided Hamiltonian. metric_tensor(tape[, approx, diag_approx, …]) Returns a function that computes the block-diagonal approximation of the metric tensor of a given QNode or quantum tape. probs([wires, op]) Probability of each computational basis state. qfunc_transform(tape_transform) Given a function which defines a tape transform, convert the function into one that applies the tape transform to quantum functions (qfuncs). qnode(device[, interface, diff_method, …]) Decorator for creating QNodes. 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. sample([op, wires]) Sample from the supplied observable, with the number of shots determined from the dev.shots attribute of the corresponding device. specs(qnode[, max_expansion]) Resource information about a quantum circuit. Quantum state in the computational basis. Lazily sum the constituent QNodes of a QNodeCollection. template(func) Register a quantum template with PennyLane. var(op) Variance of the supplied observable. Returns the PennyLane version number.

## Classes¶

 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. 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) Single-qubit amplitude damping error channel. AmplitudeEmbedding(features, wires[, …]) Encodes $$2^n$$ features into the amplitude vector of $$n$$ qubits. AngleEmbedding(features, wires[, rotation, …]) Encodes $$N$$ features into the rotation angles of $$n$$ qubits, where $$N \leq n$$. ApproxTimeEvolution(hamiltonian, time, n[, …]) Applies the Trotterized time-evolution operator for an arbitrary Hamiltonian, expressed in terms of Pauli gates. ArbitraryStatePreparation(weights, wires[, …]) Implements an arbitrary state preparation on the specified wires. ArbitraryUnitary(weights, wires[, do_queue, id]) Implements an arbitrary unitary on the specified wires. 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[, do_queue, id]) Encodes $$n$$ binary features into a basis state of $$n$$ qubits. BasisState(n, wires) Prepares a single computational basis state. BasisStatePreparation(basis_state, wires[, …]) Prepares a basis state on the given wires using a sequence of Pauli-X gates. Beamsplitter(theta, phi, wires) Beamsplitter interaction. BitFlip(p, wires) Single-qubit bit flip (Pauli $$X$$) error channel. Wrapper for simple callables with boolean output that can be manipulated and combined with bit-wise operators. CNOT(wires) The controlled-NOT operator CPhase alias of pennylane.ops.qubit.parametric_ops.ControlledPhaseShift CRX(phi, wires) The controlled-RX operator CRY(phi, wires) The controlled-RY operator CRZ(phi, wires) The controlled-RZ operator CRot(phi, theta, omega, wires) The controlled-Rot operator CSWAP(wires) 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 arXiv:1806.06871. CY(wires) The controlled-Y operator CZ(wires) The controlled-Z operator CatState(a, phi, p, wires) Prepares a cat state. CircuitGraph(ops, obs, wires[, par_info, …]) Represents a quantum circuit as a directed acyclic graph. CoherentState(a, phi, wires) Prepares a coherent state. Configuration(name) Configuration class. ControlledAddition(s, wires) Controlled addition operation. ControlledOperation(tape, control_wires[, …]) A Controlled Operation. ControlledPhase(s, wires) Controlled phase operation. ControlledPhaseShift(phi, wires) A qubit controlled phase shift. ControlledQubitUnitary(U, control_wires, …) Apply an arbitrary fixed unitary to wires with control from the control_wires. CrossKerr(kappa, wires) Cross-Kerr interaction. CubicPhase(gamma, wires) Cubic phase shift. DepolarizingChannel(p, wires) Single-qubit symmetrically depolarizing error channel. Device([wires, shots, analytic]) Abstract base class for PennyLane devices. DeviceError Exception raised by a Device when it encounters an illegal operation in the quantum circuit. DiagonalQubitUnitary(D, wires) Apply an arbitrary fixed diagonal unitary matrix. DisplacedSqueezedState(a, phi_a, r, phi_r, wires) Prepares a displaced squeezed vacuum state. Displacement(a, phi, wires) 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) Double excitation rotation. DoubleExcitationMinus(phi, wires) Double excitation rotation with negative phase-shift outside the rotation subspace. DoubleExcitationPlus(phi, wires) Double excitation rotation with positive phase-shift outside the rotation subspace. ExpvalCost(ansatz, hamiltonian, device[, …]) Create a cost function that gives the expectation value of an input Hamiltonian. 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. FermionicSingleExcitation(weight[, wires, …]) Circuit to exponentiate the tensor product of Pauli matrices representing the single-excitation operator entering the Unitary Coupled-Cluster Singles and Doubles (UCCSD) ansatz. FockDensityMatrix(state, wires) Prepare subsystems using the given density matrix in the Fock basis. FockState(n, wires) Prepares a single Fock state. FockStateProjector(n, wires) The number state observable $$\ket{n}\bra{n}$$. FockStateVector(state, wires) 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. in arXiv:2104.05692. GaussianState(V, r, wires) Prepare subsystems in a given Gaussian state. GeneralizedAmplitudeDamping(gamma, p, wires) Single-qubit generalized amplitude damping error channel. GradientDescentOptimizer([stepsize]) Basic gradient-descent optimizer. GroverOperator([wires, work_wires, do_queue, id]) Performs the Grover Diffusion Operator. Hadamard(wires) The Hadamard operator Hamiltonian(coeffs, observables[, simplify, …]) Operator representing a Hamiltonian. Hermitian(A, wires) An arbitrary Hermitian observable. IQPEmbedding(features, wires[, n_repeats, …]) Encodes $$n$$ features into $$n$$ qubits using diagonal gates of an IQP circuit. ISWAP(wires) The i-swap operator Identity(wires) The identity observable $$\I$$. InterferometerUnitary(U, wires) A linear interferometer transforming the bosonic operators according to the unitary matrix $$U$$. IsingXX(phi, wires) Ising XX coupling gate IsingYY(phi, wires) Ising YY coupling gate IsingZZ(phi, wires) Ising ZZ coupling gate Kerr(kappa, wires) Kerr interaction. 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) Arbitrary multi Z rotation. This class mocks out the qchem module in case it is not installed. NesterovMomentumOptimizer([stepsize, momentum]) Gradient-descent optimizer with Nesterov momentum. NumberOperator(wires) The photon number observable $$\langle \hat{n}\rangle$$. OrbitalRotation(phi, wires) Spin-adapted spatial orbital rotation. P(wires) The momentum quadrature observable $$\hat{p}$$. 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. PauliRot(theta, pauli_word, wires) Arbitrary Pauli word rotation. PauliX(wires) The Pauli X operator PauliY(wires) The Pauli Y operator PauliZ(wires) The Pauli Z operator Permute(permutation, wires[, do_queue, id]) Applies a permutation to a set of wires. PhaseDamping(gamma, wires) Single-qubit phase damping error channel. PhaseFlip(p, wires) Single-qubit bit flip (Pauli $$Z$$) error channel. PhaseShift(phi, wires) Arbitrary single qubit local phase shift PolyXP(q, wires) An arbitrary second-order polynomial observable. Projector(basis_state, wires) Observable corresponding to the computational basis state projector $$P=\ket{i}\bra{i}$$. QAOAEmbedding(features, weights, wires[, …]) Encodes $$N$$ features into $$n>N$$ qubits, using a layered, trainable quantum circuit that is inspired by the QAOA ansatz. QFT(wires) Apply a quantum Fourier transform (QFT). QNGOptimizer([stepsize, approx, …]) Optimizer with adaptive learning rate, via calculation of the diagonal or block-diagonal approximation to the Fubini-Study metric tensor. QNode(func, device[, interface, …]) Represents a quantum node in the hybrid computational graph. QNodeCollection([qnodes]) Represents a sequence of independent QNodes that all share the same signature. QuadOperator(phi, wires) The generalized quadrature observable $$\x_\phi = \x cos\phi+\p\sin\phi$$. QuadraticPhase(s, wires) Quadratic phase shift. QuantumFunctionError 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. QubitCarry(wires) Apply the QubitCarry operation to four input wires. QubitChannel(K_list, wires) Apply an arbitrary fixed quantum channel. QubitDevice([wires, shots, cache, analytic]) Abstract base class for PennyLane qubit devices. QubitStateVector(state, wires) Prepare subsystems using the given ket vector in the computational basis. QubitSum(wires) Apply a QubitSum operation on three input wires. QubitUnitary(U, wires) Apply an arbitrary fixed unitary matrix. Abstract base class for classes that exposes a queue for objects. RMSPropOptimizer([stepsize, decay, eps]) Root mean squared propagation optimizer. RX(phi, wires) The single qubit X rotation RY(phi, wires) The single qubit Y rotation RZ(phi, wires) 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(p_0, p_1, wires) Single-qubit Reset error channel. Rot(phi, theta, omega, wires) Arbitrary single qubit rotation Rotation(phi, wires) Phase space rotation. RotoselectOptimizer([possible_generators]) Rotoselect gradient-free optimizer. Rotosolve gradient-free optimizer. S(wires) The single-qubit phase gate SISWAP(wires) The square root of i-swap operator. SQISW alias of pennylane.ops.qubit.non_parametric_ops.SISWAP SWAP(wires) The swap operator SX(wires) The single-qubit Square-Root X operator. 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. (2020). SingleExcitation(phi, wires) Single excitation rotation. SingleExcitationMinus(phi, wires) Single excitation rotation with negative phase-shift outside the rotation subspace. SingleExcitationPlus(phi, wires) Single excitation rotation with positive phase-shift outside the rotation subspace. A Hamiltonian represented directly as a sparse matrix in coordinate list (COO) format. SqueezedState(r, phi, wires) Prepares a squeezed vacuum state. Squeezing(r, phi, wires) 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$$. StronglyEntanglingLayers(weights, wires[, …]) Layers consisting of single qubit rotations and entanglers, inspired by the circuit-centric classifier design arXiv:1804.00633. T(wires) The single-qubit T gate TensorN(wires) The tensor product of the NumberOperator acting on different wires. ThermalState(nbar, wires) Prepares a thermal state. Toffoli(wires) 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. TwoModeSqueezing(r, phi, wires) Phase space two-mode squeezing. U1(phi) U1 gate. U2(phi, lambda, wires) U2 gate. U3(theta, phi, lambda, wires) Arbitrary single qubit unitary. UCCSD(weights, wires[, s_wires, d_wires, …]) Implements the Unitary Coupled-Cluster Singles and Doubles (UCCSD) ansatz. VQECost(*args, **kwargs) Create a cost function that gives the expectation value of an input Hamiltonian. X(wires) 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. single_tape_transform(transform_fn) For registering a tape transform that takes a tape and outputs a single new tape.

## Variables¶

 entry Object representing an advertised importable object