Processing math: 100%

qml.labs.dla

Experimental dynamical Lie algebra (DLA) functionality

lie_closure_dense(generators[, n, ...])

Compute the dynamical Lie algebra g from a set of generators using their dense matrix representation.

structure_constants_dense(g[, is_orthonormal])

Compute the structure constants that make up the adjoint representation of a Lie algebra.

cartan_decomp(g, involution)

Cartan Decomposition g=km.

recursive_cartan_decomp(g, chain[, ...])

Apply a recursive Cartan decomposition specified by a chain of decomposition types.

cartan_subalgebra(g, k, m, ad[, start_idx, ...])

Compute a Cartan subalgebra (CSA) am.

variational_kak_adj(H, g, dims, adj[, ...])

Variational KaK decomposition of Hermitian H using the adjoint representation.

Utility functions

adjvec_to_op(adj_vecs, basis[, is_orthogonal])

Transform adjoint vector representations back into operator format.

op_to_adjvec(ops, basis[, is_orthogonal])

Decompose a batch of operators onto a given operator basis.

trace_inner_product(A, B)

Implementation of the trace inner product A,B=tr(AB)/dim(A) between two Hermitian operators A and B.

orthonormalize(basis)

Orthonormalize a list of basis vectors.

pauli_coefficients(H)

Computes the coefficients of one or multiple Hermitian matrices in the Pauli basis.

batched_pauli_decompose(H[, tol, pauli])

Decomposes a Hermitian matrix or a batch of matrices into a linear combination of Pauli operators.

check_orthonormal(g, inner_product)

Utility function to check if operators in g are orthonormal with respect to the provided inner_product.

check_commutation(ops1, ops2, vspace)

Helper function to check [ops1,ops2]vspace.

check_all_commuting(ops)

Helper function to check if all operators in ops commute.

check_cartan_decomp(k, m[, verbose])

Helper function to check the validity of a Cartan decomposition g=km.

change_basis_ad_rep(adj, basis_change)

Apply a basis_change between bases of operators to the adjoint representation adj.

validate_kak(H, g, k, kak_res, n, error_tol)

Helper function to validate a khk decomposition

run_opt(value_and_grad, theta[, n_epochs, ...])

Boilerplate jax optimization

Involutions

A map θ:gg from the Lie algebra g to itself is called an involution when it fulfills θ(θ(g))=g gg and is compatible with commutators, [θ(g),θ(g)]=θ([g,g]). Involutions are used to construct a cartan_decomp(). There are seven canonical Cartan involutions of real simple Lie algebras (AI, AII, AIII, BDI, CI, CII, DIII), see Wikipedia. In addition, there is a canonical Cartan involution for real semisimple algebras that consist of two isomorphic simple components (ClassB), see here.

even_odd_involution(op)

The Even-Odd involution.

concurrence_involution(op)

The Concurrence Canonical Decomposition Θ(g)=gT as a Cartan involution function.

khaneja_glaser_involution(op[, wire])

Khaneja-Glaser involution, which is a type-AIII() Cartan involution with p=q.

AI(op)

Canonical Cartan decomposition of type AI, given by θ:xx.

AII(op[, wire])

Canonical Cartan decomposition of type AII, given by θ:xY0xY0.

AIII(op[, p, q, wire])

Canonical Cartan decomposition of type AIII, given by θ:xIp,qxIp,q.

BDI(op[, p, q, wire])

Canonical Cartan decomposition of type BDI, given by θ:xIp,qxIp,q.

CI(op)

Canonical Cartan decomposition of type CI, given by θ:xx.

CII(op[, p, q, wire])

Canonical Cartan decomposition of type CII, given by θ:xKp,qxKp,q.

DIII(op[, wire])

Canonical Cartan decomposition of type DIII, given by θ:xY0xY0.

ClassB(op[, wire])

Canonical Cartan decomposition of class B, given by θ:xY0xY0.