unitariaΒΆ

Description

Modules

Classes

Node(dimension_in, dimension_out)

Abstract class for all nodes in the computational graph

Subspace([tensor_factors])

Subspace of the statespace of a number of qubits.

Circuit([tq_circuit])

Representation of a quantum circuit.

AbstractNode(dimension_in, dimension_out, ...)

Abstract node without circuit implemention.

Add(A, B)

Node for computing the sum of two vectors or matrices.

Adjoint(A)

Node representing the adjoint of another node

BlockDiagonal(A, B)

Node for block matrices of the form diag(A, B)

BlockEncoding(circuit, subspace_in, ...)

this class provides a block encoding of a given matrix using a quantum circuit the encoding has the form: subspace_in * circuit * subspace_out the user has to specify only incomping and outgoing subspaces, a circuit, and a normalization factor

BlockHorizontal(A, B)

Node for block matrices of the form [A B]

BlockVertical(A, B)

Node for block matrices of the form [A B]^T

Classical(input_bits, output_bits)

Abstract superclass for nodes performing classical computation.

ComponentwiseMul(subspace_or_first[, second])

Node implementing the (bilinear) componentwise multiplication operator

ConstantIntegerAddition(bits, constant)

Node implementing the (wrapping) addition of a constant to an integer.

ConstantIntegerMultiplication(bits, constant)

Node implementing the (wrapping) multiplication of an odd constant with an integer.

ConstantMatrix(matrix)

Node representing the given matrix

ConstantUnitary(unitary)

Node representing the given unitary

ConstantVector(vec)

Node representing the given vector

FixedPointAmplification(A, min_norm, accuracy)

A node that applies fixed point amplification to a vector node, i.e. it can amplify the norm of that vector node close to 1 without knowing the exact value, given only a lower bound.

FourierTransform(bits)

Node representing a discrete Fourier transform F(x)_k = sum_(n = 0)^(2^bits - 1) x_n exp(-i 2 pi k n / 2^bits) Note that this uses the DFT convention with the minus sign in the exponent, which differs from the usual convention for the QFT.

GroverAmplification(A, iterations)

Identity([subspace, dim])

Node representing the identity matrix on a given vectorspace

Increment(*[, bits])

Node implementing the (wrapping) increment of an integer.

Index(A, index_in, index_out)

Used in the implementation of indexing of nodes.

IntegerAddition(*[, source_bits, target_bits])

Node implementing the (wrapping) addition of two integers.

LinearAmplification(A, amplification, delta, ...)

A node that uniformly amplifies a node using the QSVT to improve the normalization of a block-encoding without changing anything else (up to approximation errors).

Mul(A, B[, skip_projection])

Node for computing the product of two nodes

MultilinearNode(dimensions_in, ...)

Class for simplified syntax of multilinear node.

PermuteFactors(subspace, permutation_map)

Operation permuting the factors of a state.

Projection(subspace_from, subspace_to)

Node representing a projection matrix

ProxyNode(dimension_in, dimension_out)

Abstract class for nodes that are defined in terms of other nodes

Pseudoinverse(A, condition, tolerance[, ...])

This node implements the Moore-Penrose pseudoinverse of A with the given tolerance, if condition is the ratio between A.normalization and A s smallest singular value.

QSVT(A, polynomial)

Quantum Singular Value Transformation

QSVTCoefficients(data, format)

Class for computing between different formats of polynomials and QSVT angles

Scale(A[, scale, remove_efficiency, absolute])

Node representing the product of a scalar and another node

Tensor(A, B)

Node representing the tensor product of two other nodes

SubspaceFactor()

ControlledSubspace(case_zero, case_one)

SubspaceFactor where the most significant qubit determines the subspace corresponding to lower qubits

ZeroQubitSubspace()

Functions

verify(node[, reference, atol])

Verify a node using the default Verifier.