This module contains classes and functions for Operator arithmetic.

Constructor Functions

adjoint(fn[, lazy])

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

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

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

exp(op[, coeff, id])

Take the exponential of an Operator times a coefficient.

op_sum(*summands[, do_queue, id, lazy])

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

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

Raise an Operator to a power.

prod(*ops[, do_queue, id, lazy])

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

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

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

Symbolic Classes

Adjoint([base, do_queue, id])

The Adjoint of an operator.

CompositeOp(*operands[, do_queue, id])

A base class for operators that are composed of other operators.

Controlled(base, control_wires[, …])

Symbolic operator denoting a controlled operator.

ControlledOp(base, control_wires[, …])

Operation-specific methods and properties for the Controlled class.

Evolution(generator, param[, do_queue, id])

Create an exponential operator that defines a generator, of the form \(e^{ix\hat{G}}\)

Exp([base, coeff, do_queue, id])

A symbolic operator representating the exponential of a operator.

Pow([base, z, do_queue, id])

Symbolic operator denoting an operator raised to a power.

Prod(*operands[, do_queue, id])

Symbolic operator representing the product of operators.

Sum(*operands[, do_queue, id])

Symbolic operator representing the sum of operators.

SProd(scalar, float, complex], base[, …])

Arithmetic operator representing the scalar product of an operator with the given scalar.

SymbolicOp([base, do_queue, id])

Developer-facing base class for single-operator symbolic operators.