Difference between revisions of "List of functions"
Jump to navigation
Jump to search
(→Miscellaneous: Added link to CompoundMatrix) |
|||
| (97 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
| − | This is a '''list of functions''' provided by | + | This is a '''list of functions''' provided by QETLAB, arranged by category. If you would prefer an alphabetical list of all functions please see [[:Category:Functions|this page]]. Brief descriptions of these functions are provided here, as well as links to their documentation pages, where full details and numerous examples can be found. |
| − | ==Basic | + | ==Basic operations== |
| − | * <tt>[[IsPSD]]</tt>: Determines whether or not a matrix is | + | * <tt>[[IsPSD]]</tt>: Determines whether or not a matrix is positive semidefinite |
| − | * <tt>[[Tensor]]</tt>: | + | * <tt>[[Tensor]]</tt>: Kronecker tensor product of two or more matrices |
* <tt>[[TensorSum]]</tt>: Computes a vector or operator from its tensor decomposition | * <tt>[[TensorSum]]</tt>: Computes a vector or operator from its tensor decomposition | ||
| − | == | + | ==Coherence and incoherence== |
| − | * <tt>[[ | + | * <tt>[[IskIncoherent]]</tt>: Determines whether or not a quantum state is k-incoherent |
| − | + | * <tt>[[L1NormCoherence]]</tt>: Computes the ℓ<sub>1</sub>-norm of coherence of a quantum state | |
| − | * <tt>[[ | + | * <tt>[[RelEntCoherence]]</tt>: Computes the relative entropy of coherence of a quantum state |
| − | + | * <tt>[[RobustnessCoherence]]</tt>: Computes the robustness of coherence of a quantum state | |
| − | * <tt>[[ | + | * <tt>[[TraceDistanceCoherence]]</tt>: Computes the trace distance of coherence of a quantum state |
| − | * <tt>[[ | ||
| − | * <tt>[[ | ||
| − | |||
| − | |||
| − | |||
| − | == | + | ==Distinguishing objects== |
| − | * <tt>[[ | + | * <tt>[[ChannelDistinguishability]]</tt>: Computes the maximum probability of distinguishing two quantum channels |
| − | * <tt>[[ | + | * <tt>[[Distinguishability]]</tt>: Computes the maximum probability of distinguishing quantum states |
| − | * <tt>[[ | + | * <tt>[[LocalDistinguishability]]</tt>: Computes the maximum probability of distinguishing quantum states by symmetric-extendible and/or PPT measurements |
| − | * <tt>[[kpNormDual]]</tt>: Computes the dual of the (k,p)-norm of | + | * <tt>[[UPBSepDistinguishable]]</tt>: Determines whether or not an unextendible product basis is distinguishable by separable measurements |
| − | * <tt>[[KyFanNorm]]</tt>: Computes the | + | |
| + | ==Entanglement and separability== | ||
| + | ===Pure states=== | ||
| + | * <tt>[[EntangledSubspace]]</tt>: Creates a basis of an r-entangled subspace of any requested dimension | ||
| + | * <tt>[[IsProductVector]]</tt>: Determines if a pure state is a product vector | ||
| + | * <tt>[[SchmidtDecomposition]]</tt>: Computes the Schmidt decomposition of a bipartite vector | ||
| + | * <tt>[[SchmidtRank]]</tt>: Computes the Schmidt rank of a bipartite vector | ||
| + | |||
| + | ===Mixed states=== | ||
| + | * <tt>[[FilterNormalForm]]</tt>: Computes the filter normal form of an operator | ||
| + | * <tt>[[IsBlockPositive]]</tt>: Determines whether or not an operator is block positive | ||
| + | * <tt>[[IsEntanglingGate]]</tt>: Determines if a unitary is an entangling gate | ||
| + | * <tt>[[IsPPT]]</tt>: Determines whether or not a matrix has positive partial transpose | ||
| + | * <tt>[[IsProductOperator]]</tt>: Determines if an operator is an elementary tensor | ||
| + | * <tt>[[IsSeparable]]</tt>: Determines whether or not a bipartite operator is separable | ||
| + | * <tt>[[OperatorSchmidtDecomposition]]</tt>: Computes the operator Schmidt decomposition of a bipartite operator | ||
| + | * <tt>[[OperatorSchmidtRank]]</tt>: Computes the operator Schmidt rank of a bipartite operator | ||
| + | * <tt>[[SymmetricExtension]]</tt>: Determines whether or not an operator has a symmetric extension | ||
| + | * <tt>[[SymmetricInnerExtension]]</tt>: Determines whether or not an operator has a symmetric inner extension | ||
| + | |||
| + | ===Ball of separability=== | ||
| + | * <tt>[[AbsPPTConstraints]]</tt>: Builds the eigenvalue matrices that determine whether or not a state is absolutely PPT | ||
| + | * <tt>[[InSeparableBall]]</tt>: Checks whether or not an operator is in the ball of separability centered at the maximally-mixed state | ||
| + | * <tt>[[IsAbsPPT]]</tt>: Determines whether or not a density matrix is absolutely PPT | ||
| + | |||
| + | ===Entanglement measures=== | ||
| + | * <tt>[[Concurrence]]</tt>: Computes the concurrence of a 2-qubit state | ||
| + | * <tt>[[EntFormation]]</tt>: Computes the entanglement of formation of a bipartite quantum state | ||
| + | * <tt>[[Negativity]]</tt>: Computes the negativity of a bipartite density matrix | ||
| + | * <tt>[[RandomRobustnessEntanglement]]</tt>: Computes the random robustness of entanglement of a bipartite quantum state | ||
| + | |||
| + | ==Graph theory== | ||
| + | * <tt>[[CliqueNumber]]</tt>: Bounds the clique number (i.e., maximum size of a clique) of a graph | ||
| + | * <tt>[[RandomGraph]]</tt>: Generates the adjacency matrix of a random graph | ||
| + | |||
| + | ==Information theory== | ||
| + | * <tt>[[Entropy]]</tt>: Computes the von Neumann or Rényi entropy of a density matrix | ||
| + | |||
| + | ==Nonlocality and Bell inequalities== | ||
| + | * <tt>[[BCSGameLB]]</tt>: Computes a lower bound on the quantum value of a binary contraint system (BCS) game | ||
| + | * <tt>[[BCSGameValue]]</tt>: Computes the maximum value of a binary constraint system (BCS) game | ||
| + | * <tt>[[BellInequalityMax]]</tt>: Computes the maximum value of a Bell inequality or nonlocal game | ||
| + | * <tt>[[BellInequalityMaxQubits]]</tt>: Approximates the optimal value of a Bell inequality in qubit (i.e., 2-dimensional quantum) settings | ||
| + | * <tt>[[NonlocalGameLB]]</tt>: Computes a lower bound on the quantum value of a non-local game | ||
| + | * <tt>[[NPAHierarchy]]</tt>: Determines whether or not a set of probabilities satisfy the conditions of the NPA hierarchy | ||
| + | * <tt>[[ParallelRepetition]]</tt>: Produces the coefficients of parallel repetitions of a nonlocal game | ||
| + | * <tt>[[XORGameValue]]</tt>: Computes the classical or quantum value of a non-local binary XOR game | ||
| + | |||
| + | ==Norms and distance measures== | ||
| + | ===Vectors and pure states=== | ||
| + | * <tt>[[SkVectorNorm]]</tt>: Computes the s(k)-norm of a vector | ||
| + | |||
| + | ===Operators and mixed states=== | ||
| + | * <tt>[[Fidelity]]</tt>: Computes the (Uhlmann) fidelity of two density matrices | ||
| + | * <tt>[[InducedMatrixNorm]]</tt>: Computes a lower bound of the induced p→q norm of a matrix | ||
| + | * <tt>[[kpNorm]]</tt>: Computes the (k,p)-norm of a vector or matrix | ||
| + | * <tt>[[kpNormDual]]</tt>: Computes the dual of the (k,p)-norm of a vector or matrix | ||
| + | * <tt>[[KyFanNorm]]</tt>: Computes the Ky Fan k-norm of an operator | ||
| + | * <tt>[[MatsumotoFidelity]]</tt>: Computes the Matsumoto fidelity of two density matrices | ||
* <tt>[[SkOperatorNorm]]</tt>: Bounds the S(k)-norm of an operator | * <tt>[[SkOperatorNorm]]</tt>: Bounds the S(k)-norm of an operator | ||
| − | * <tt>[[ | + | * <tt>[[SchattenNorm]]</tt>: Computes the Schatten p-norm of an operator |
| − | * <tt>[[ | + | * <tt>[[TraceNorm]]</tt>: Computes the trace norm of an operator |
| − | * <tt>[[ | + | |
| + | ===Superoperators and channels=== | ||
| + | * <tt>[[CBNorm]]</tt>: Computes the completely bounded norm of a superoperator | ||
| + | * <tt>[[DiamondNorm]]</tt>: Computes the diamond norm of a superoperator | ||
| + | * <tt>[[InducedSchattenNorm]]</tt>: Computes a lower bound of the induced Schatten p→q norm of a superoperator | ||
| + | * <tt>[[MaximumOutputFidelity]]</tt>: Computes the maximum output fidelity of two quantum channels | ||
| − | ==Permutations and | + | ==Permutations and symmetry of subsystems== |
| − | * <tt>[[AntisymmetricProjection]]</tt>: Produces the | + | * <tt>[[AntisymmetricProjection]]</tt>: Produces the projection onto the antisymmetric subspace |
| − | * <tt>[[PermutationOperator]]</tt>: Produces a | + | * <tt>[[PermutationOperator]]</tt>: Produces a unitary operator that permutes subsystems |
| − | * <tt>[[PermuteSystems]]</tt>: Permutes subsystems within a | + | * <tt>[[PermuteSystems]]</tt>: Permutes subsystems within a state or operator |
* <tt>[[Swap]]</tt>: Swaps two subsystems within a state or operator | * <tt>[[Swap]]</tt>: Swaps two subsystems within a state or operator | ||
* <tt>[[SwapOperator]]</tt>: Produces a unitary operator that swaps two subsystems | * <tt>[[SwapOperator]]</tt>: Produces a unitary operator that swaps two subsystems | ||
* <tt>[[SymmetricProjection]]</tt>: Produces the projection onto the symmetric subspace | * <tt>[[SymmetricProjection]]</tt>: Produces the projection onto the symmetric subspace | ||
| − | ==Random | + | ==Polynomial optimization== |
| − | * <tt>[[RandomDensityMatrix]]</tt>: Generates a random [[density matrix]] | + | * <tt>[[CopositivePolynomial]]</tt>: Creates a homogenous polynomial whose non-negativity is equivalent to copositivity of a given matrix |
| + | * <tt>[[PolynomialAsMatrix]]</tt>: Creates a compact fully symmetric matrix representation of a polynomial | ||
| + | * <tt>[[PolynomialOptimize]]</tt>: Bounds the optimal value of a homogeneous polynomial on the unit sphere | ||
| + | * <tt>[[PolynomialSOS]]</tt>: Bounds the optimal value of a homogeneous polynomial on the unit sphere via the Sum-Of-Squares hierarchy | ||
| + | |||
| + | ==Random things== | ||
| + | * <tt>[[RandomDensityMatrix]]</tt>: Generates a random density matrix | ||
| + | * <tt>[[RandomPOVM]]</tt>: Generates a random POVM (positive-operator valued measure) | ||
| + | * <tt>[[RandomPPTState]]</tt>: Generates a random density matrix with positive partial transpose, and optionally low rank | ||
| + | * <tt>[[RandomProbabilities]]</tt>: Computes a random probability vector, distributed uniformly on the unit simplex | ||
* <tt>[[RandomStateVector]]</tt>: Generates a random pure state vector | * <tt>[[RandomStateVector]]</tt>: Generates a random pure state vector | ||
| − | * <tt>[[RandomSuperoperator]]</tt>: ( | + | * <tt>[[RandomSuperoperator]]</tt>: Generates a random superoperator (completely positive map) |
| − | * <tt>[[RandomUnitary]]</tt>: Generates a random [[ | + | * <tt>[[RandomUnitary]]</tt>: Generates a random unitary or orthogonal matrix |
| + | |||
| + | ==Special states, vectors, and operators== | ||
| + | ===Pure states=== | ||
| + | * <tt>[[Bell]]</tt>: Produces a Bell state | ||
| + | * <tt>[[BrauerStates]]</tt>: Produces all Brauer states | ||
| + | * <tt>[[DickeState]]</tt>: Generates a Dicke state | ||
| + | * <tt>[[GHZState]]</tt>: Generates a (generalized) GHZ state | ||
| + | * <tt>[[MaxEntangled]]</tt>: Produces a maximally entangled bipartite pure state | ||
| + | * <tt>[[WState]]</tt>: Generates a (generalized) W-state | ||
| + | |||
| + | ===Mixed states=== | ||
| + | * <tt>[[BreuerState]]</tt>: Generates a Breuer state, which is a specific family of bound entangled states on even local dimensions | ||
| + | * <tt>[[ChessboardState]]</tt>: Produces a chessboard state | ||
| + | * <tt>[[GisinState]]</tt>: Generates a 2-qubit Gisin state | ||
| + | * <tt>[[HorodeckiState]]</tt>: Generates a bound entangled "Horodecki" state | ||
| + | * <tt>[[IsotropicState]]</tt>: Produces an isotropic state | ||
| + | * <tt>[[WernerState]]</tt>: Produces a Werner state | ||
| − | == | + | ===Other operators=== |
| − | * <tt>[[FourierMatrix]]</tt>: Generates the | + | * <tt>[[FourierMatrix]]</tt>: Generates the unitary matrix that implements the quantum Fourier transform |
| − | * <tt>[[ | + | * <tt>[[GellMann]]</tt>: Produces a Gell-Mann operator |
| − | * <tt>[[ | + | * <tt>[[GenGellMann]]</tt>: Produces a generalized Gell-Mann operator or the identity matrix |
| − | * <tt>[[ | + | * <tt>[[GenPauli]]</tt>: Produces a generalized Pauli operator (sometimes called a Weyl operator) |
| + | * <tt>[[Pauli]]</tt>: Produces a Pauli operator | ||
==Superoperators== | ==Superoperators== | ||
| − | * <tt>[[ApplyMap]]</tt>: Applies a | + | * <tt>[[ApplyMap]]</tt>: Applies a superoperator to an operator |
| − | * <tt>[[ChoiMatrix]]</tt>: Computes the [[Choi | + | * <tt>[[ChoiMatrix]]</tt>: Computes the Choi matrix of a superoperator |
| − | * <tt>[[ | + | * <tt>[[ChoiMap]]</tt>: Produces the Choi map or one of its generalizations |
| − | * <tt>[[DualMap]]</tt>: Computes the | + | * <tt>[[ComplementaryMap]]</tt>: Computes the complementary map of a superoperator |
| − | * <tt>[[IsCP]]</tt>: Determines whether or not a superoperator is | + | * <tt>[[DephasingChannel]]</tt>: Produces a dephasing channel |
| − | * <tt>[[IsHermPreserving]]</tt>: Determines whether or not a superoperator is | + | * <tt>[[DepolarizingChannel]]</tt>: Produces a depolarizing channel |
| − | * <tt>[[KrausOperators]]</tt>: Computes a set of | + | * <tt>[[DualMap]]</tt>: Computes the dual of a superoperator in the Hilbert-Schmidt inner product |
| + | * <tt>[[IsCP]]</tt>: Determines whether or not a superoperator is completely positive | ||
| + | * <tt>[[IsHermPreserving]]</tt>: Determines whether or not a superoperator is Hermiticity preserving | ||
| + | * <tt>[[KrausOperators]]</tt>: Computes a set of Kraus operators for a superoperator | ||
* <tt>[[PartialMap]]</tt>: Applies a superoperator to a subsystem of an operator | * <tt>[[PartialMap]]</tt>: Applies a superoperator to a subsystem of an operator | ||
| − | * <tt>[[PartialTrace]]</tt>: Computes the | + | * <tt>[[PartialTrace]]</tt>: Computes the partial trace of a vector or a matrix |
| − | * <tt>[[PartialTranspose]]</tt>: Computes the [[ | + | * <tt>[[PartialTranspose]]</tt>: Computes the partial transpose of a matrix |
| − | * <tt>[[Realignment]]</tt>: Computes the [[ | + | * <tt>[[PauliChannel]]</tt>: Generates a Pauli channel (i.e., a quantum channel with Pauli Kraus operators) |
| + | * <tt>[[Realignment]]</tt>: Computes the realignment of a bipartite operator | ||
| + | * <tt>[[ReductionMap]]</tt>: Produces the reduction map | ||
| + | * <tt>[[Twirl]]</tt>: Twirls a bipartite or multipartite operator | ||
| + | |||
| + | ==Unextendible product bases== | ||
| + | * <tt>[[IsUPB]]</tt>: Determines whether or not a set of product vectors form a UPB | ||
| + | * <tt>[[MinUPBSize]]</tt>: Gives the minimum cardinality of an unextendible product basis in given dimensions | ||
| + | * <tt>[[UPB]]</tt>: Generates an unextendible product basis | ||
==Miscellaneous== | ==Miscellaneous== | ||
* <tt>[[Commutant]]</tt>: Computes the commutant of a set of matrices | * <tt>[[Commutant]]</tt>: Computes the commutant of a set of matrices | ||
| − | * <tt>[[IsTotallyNonsingular]]</tt>: Determines whether or not a matrix is [[ | + | * <tt>[[CompoundMatrix]]</tt>: Computes the <tt>r</tt>th compound matrix of a given matrix |
| − | * <tt>[[ | + | * <tt>[[IsTotallyNonsingular]]</tt>: Determines whether or not a matrix is totally nonsingular |
| + | * <tt>[[IsTotallyPositive]]</tt>: Determines whether or not a matrix is totally positive | ||
| + | * <tt>[[Majorizes]]</tt>: Determines whether or not a vector or matrix majorizes another | ||
| + | * <tt>[[OperatorSinkhorn]]</tt>: Performs the operator Sinkhorn iteration, making all single-party reduced states proportional to the identity | ||
| + | * <tt>[[Purity]]</tt>: Computes the purity of a quantum state | ||
| − | ==Helper | + | ==Helper functions== |
| + | These are functions that only serve auxiliary roles within other functions of QETLAB. As an end-user of QETLAB, you likely won't have any use for these functions, but they are listed here anyway just in case. | ||
| + | * <tt>[[bcs_to_nonlocal]]</tt>: Converts a constraint description of a binary constraint system (BCS) game to a general non-local game description | ||
| + | * <tt>[[dec_to_bin]]</tt>: Converts a decimal number to a binary number in a similar way to `de2bi' in MATLAB | ||
| + | * <tt>[[exp2ind]]</tt>: Looks up a monomial's lexicographical index based on a list of exponents | ||
| + | * <tt>[[has_band_k_ordering]]</tt>: Determines whether a matrix has bandwidth ≤ k up to symmetric permutation | ||
* <tt>[[iden]]</tt>: Computes a sparse or full identity matrix | * <tt>[[iden]]</tt>: Computes a sparse or full identity matrix | ||
| − | * <tt>[[ | + | * <tt>[[jacobi_poly]]</tt>: Computes the coefficients of Jacobi polynomials |
* <tt>[[normalize_cols]]</tt>: Scales the columns of a matrix to have norm 1 | * <tt>[[normalize_cols]]</tt>: Scales the columns of a matrix to have norm 1 | ||
| + | * <tt>[[one_factorization]]</tt>: Computes a 1-factorization of a list of objects | ||
* <tt>[[opt_args]]</tt>: Handles optional input arguments for functions | * <tt>[[opt_args]]</tt>: Handles optional input arguments for functions | ||
* <tt>[[opt_disp]]</tt>: Display a message to the user (sometimes) | * <tt>[[opt_disp]]</tt>: Display a message to the user (sometimes) | ||
| + | * <tt>[[pad_array]]</tt>: Pads an array with zeroes in a similar way to `padarray' in MATLAB | ||
| + | * <tt>[[perfect_matchings]]</tt>: Gives all perfect matchings of N objects | ||
* <tt>[[perm_inv]]</tt>: Computes the inverse of a permutation | * <tt>[[perm_inv]]</tt>: Computes the inverse of a permutation | ||
* <tt>[[perm_sign]]</tt>: Computes the sign of a permutation | * <tt>[[perm_sign]]</tt>: Computes the sign of a permutation | ||
| + | * <tt>[[pure_to_mixed]]</tt>: Converts a state vector or density matrix representation of a state to a density matrix | ||
| + | * <tt>[[sk_iterate]]</tt>: Computes a lower bound of the S(k)-norm of an operator | ||
* <tt>[[spnull]]</tt>: Returns a sparse orthonormal basis for the null space | * <tt>[[spnull]]</tt>: Returns a sparse orthonormal basis for the null space | ||
* <tt>[[sporth]]</tt>: Returns a sparse orthonormal basis for the range | * <tt>[[sporth]]</tt>: Returns a sparse orthonormal basis for the range | ||
| + | * <tt>[[superoperator_dims]]</tt>: Computes the input, output, and environment dimensions of a superoperator | ||
| + | * <tt>[[update_odometer]]</tt>: Increases the entries of a vector subject to constraints on how large the entries of that vector can be | ||
| + | * <tt>[[vec_partitions]]</tt>: Produces all possible partitions of a vector | ||
Latest revision as of 19:38, 18 November 2025
This is a list of functions provided by QETLAB, arranged by category. If you would prefer an alphabetical list of all functions please see this page. Brief descriptions of these functions are provided here, as well as links to their documentation pages, where full details and numerous examples can be found.
Basic operations
- IsPSD: Determines whether or not a matrix is positive semidefinite
- Tensor: Kronecker tensor product of two or more matrices
- TensorSum: Computes a vector or operator from its tensor decomposition
Coherence and incoherence
- IskIncoherent: Determines whether or not a quantum state is k-incoherent
- L1NormCoherence: Computes the ℓ1-norm of coherence of a quantum state
- RelEntCoherence: Computes the relative entropy of coherence of a quantum state
- RobustnessCoherence: Computes the robustness of coherence of a quantum state
- TraceDistanceCoherence: Computes the trace distance of coherence of a quantum state
Distinguishing objects
- ChannelDistinguishability: Computes the maximum probability of distinguishing two quantum channels
- Distinguishability: Computes the maximum probability of distinguishing quantum states
- LocalDistinguishability: Computes the maximum probability of distinguishing quantum states by symmetric-extendible and/or PPT measurements
- UPBSepDistinguishable: Determines whether or not an unextendible product basis is distinguishable by separable measurements
Entanglement and separability
Pure states
- EntangledSubspace: Creates a basis of an r-entangled subspace of any requested dimension
- IsProductVector: Determines if a pure state is a product vector
- SchmidtDecomposition: Computes the Schmidt decomposition of a bipartite vector
- SchmidtRank: Computes the Schmidt rank of a bipartite vector
Mixed states
- FilterNormalForm: Computes the filter normal form of an operator
- IsBlockPositive: Determines whether or not an operator is block positive
- IsEntanglingGate: Determines if a unitary is an entangling gate
- IsPPT: Determines whether or not a matrix has positive partial transpose
- IsProductOperator: Determines if an operator is an elementary tensor
- IsSeparable: Determines whether or not a bipartite operator is separable
- OperatorSchmidtDecomposition: Computes the operator Schmidt decomposition of a bipartite operator
- OperatorSchmidtRank: Computes the operator Schmidt rank of a bipartite operator
- SymmetricExtension: Determines whether or not an operator has a symmetric extension
- SymmetricInnerExtension: Determines whether or not an operator has a symmetric inner extension
Ball of separability
- AbsPPTConstraints: Builds the eigenvalue matrices that determine whether or not a state is absolutely PPT
- InSeparableBall: Checks whether or not an operator is in the ball of separability centered at the maximally-mixed state
- IsAbsPPT: Determines whether or not a density matrix is absolutely PPT
Entanglement measures
- Concurrence: Computes the concurrence of a 2-qubit state
- EntFormation: Computes the entanglement of formation of a bipartite quantum state
- Negativity: Computes the negativity of a bipartite density matrix
- RandomRobustnessEntanglement: Computes the random robustness of entanglement of a bipartite quantum state
Graph theory
- CliqueNumber: Bounds the clique number (i.e., maximum size of a clique) of a graph
- RandomGraph: Generates the adjacency matrix of a random graph
Information theory
- Entropy: Computes the von Neumann or Rényi entropy of a density matrix
Nonlocality and Bell inequalities
- BCSGameLB: Computes a lower bound on the quantum value of a binary contraint system (BCS) game
- BCSGameValue: Computes the maximum value of a binary constraint system (BCS) game
- BellInequalityMax: Computes the maximum value of a Bell inequality or nonlocal game
- BellInequalityMaxQubits: Approximates the optimal value of a Bell inequality in qubit (i.e., 2-dimensional quantum) settings
- NonlocalGameLB: Computes a lower bound on the quantum value of a non-local game
- NPAHierarchy: Determines whether or not a set of probabilities satisfy the conditions of the NPA hierarchy
- ParallelRepetition: Produces the coefficients of parallel repetitions of a nonlocal game
- XORGameValue: Computes the classical or quantum value of a non-local binary XOR game
Norms and distance measures
Vectors and pure states
- SkVectorNorm: Computes the s(k)-norm of a vector
Operators and mixed states
- Fidelity: Computes the (Uhlmann) fidelity of two density matrices
- InducedMatrixNorm: Computes a lower bound of the induced p→q norm of a matrix
- kpNorm: Computes the (k,p)-norm of a vector or matrix
- kpNormDual: Computes the dual of the (k,p)-norm of a vector or matrix
- KyFanNorm: Computes the Ky Fan k-norm of an operator
- MatsumotoFidelity: Computes the Matsumoto fidelity of two density matrices
- SkOperatorNorm: Bounds the S(k)-norm of an operator
- SchattenNorm: Computes the Schatten p-norm of an operator
- TraceNorm: Computes the trace norm of an operator
Superoperators and channels
- CBNorm: Computes the completely bounded norm of a superoperator
- DiamondNorm: Computes the diamond norm of a superoperator
- InducedSchattenNorm: Computes a lower bound of the induced Schatten p→q norm of a superoperator
- MaximumOutputFidelity: Computes the maximum output fidelity of two quantum channels
Permutations and symmetry of subsystems
- AntisymmetricProjection: Produces the projection onto the antisymmetric subspace
- PermutationOperator: Produces a unitary operator that permutes subsystems
- PermuteSystems: Permutes subsystems within a state or operator
- Swap: Swaps two subsystems within a state or operator
- SwapOperator: Produces a unitary operator that swaps two subsystems
- SymmetricProjection: Produces the projection onto the symmetric subspace
Polynomial optimization
- CopositivePolynomial: Creates a homogenous polynomial whose non-negativity is equivalent to copositivity of a given matrix
- PolynomialAsMatrix: Creates a compact fully symmetric matrix representation of a polynomial
- PolynomialOptimize: Bounds the optimal value of a homogeneous polynomial on the unit sphere
- PolynomialSOS: Bounds the optimal value of a homogeneous polynomial on the unit sphere via the Sum-Of-Squares hierarchy
Random things
- RandomDensityMatrix: Generates a random density matrix
- RandomPOVM: Generates a random POVM (positive-operator valued measure)
- RandomPPTState: Generates a random density matrix with positive partial transpose, and optionally low rank
- RandomProbabilities: Computes a random probability vector, distributed uniformly on the unit simplex
- RandomStateVector: Generates a random pure state vector
- RandomSuperoperator: Generates a random superoperator (completely positive map)
- RandomUnitary: Generates a random unitary or orthogonal matrix
Special states, vectors, and operators
Pure states
- Bell: Produces a Bell state
- BrauerStates: Produces all Brauer states
- DickeState: Generates a Dicke state
- GHZState: Generates a (generalized) GHZ state
- MaxEntangled: Produces a maximally entangled bipartite pure state
- WState: Generates a (generalized) W-state
Mixed states
- BreuerState: Generates a Breuer state, which is a specific family of bound entangled states on even local dimensions
- ChessboardState: Produces a chessboard state
- GisinState: Generates a 2-qubit Gisin state
- HorodeckiState: Generates a bound entangled "Horodecki" state
- IsotropicState: Produces an isotropic state
- WernerState: Produces a Werner state
Other operators
- FourierMatrix: Generates the unitary matrix that implements the quantum Fourier transform
- GellMann: Produces a Gell-Mann operator
- GenGellMann: Produces a generalized Gell-Mann operator or the identity matrix
- GenPauli: Produces a generalized Pauli operator (sometimes called a Weyl operator)
- Pauli: Produces a Pauli operator
Superoperators
- ApplyMap: Applies a superoperator to an operator
- ChoiMatrix: Computes the Choi matrix of a superoperator
- ChoiMap: Produces the Choi map or one of its generalizations
- ComplementaryMap: Computes the complementary map of a superoperator
- DephasingChannel: Produces a dephasing channel
- DepolarizingChannel: Produces a depolarizing channel
- DualMap: Computes the dual of a superoperator in the Hilbert-Schmidt inner product
- IsCP: Determines whether or not a superoperator is completely positive
- IsHermPreserving: Determines whether or not a superoperator is Hermiticity preserving
- KrausOperators: Computes a set of Kraus operators for a superoperator
- PartialMap: Applies a superoperator to a subsystem of an operator
- PartialTrace: Computes the partial trace of a vector or a matrix
- PartialTranspose: Computes the partial transpose of a matrix
- PauliChannel: Generates a Pauli channel (i.e., a quantum channel with Pauli Kraus operators)
- Realignment: Computes the realignment of a bipartite operator
- ReductionMap: Produces the reduction map
- Twirl: Twirls a bipartite or multipartite operator
Unextendible product bases
- IsUPB: Determines whether or not a set of product vectors form a UPB
- MinUPBSize: Gives the minimum cardinality of an unextendible product basis in given dimensions
- UPB: Generates an unextendible product basis
Miscellaneous
- Commutant: Computes the commutant of a set of matrices
- CompoundMatrix: Computes the rth compound matrix of a given matrix
- IsTotallyNonsingular: Determines whether or not a matrix is totally nonsingular
- IsTotallyPositive: Determines whether or not a matrix is totally positive
- Majorizes: Determines whether or not a vector or matrix majorizes another
- OperatorSinkhorn: Performs the operator Sinkhorn iteration, making all single-party reduced states proportional to the identity
- Purity: Computes the purity of a quantum state
Helper functions
These are functions that only serve auxiliary roles within other functions of QETLAB. As an end-user of QETLAB, you likely won't have any use for these functions, but they are listed here anyway just in case.
- bcs_to_nonlocal: Converts a constraint description of a binary constraint system (BCS) game to a general non-local game description
- dec_to_bin: Converts a decimal number to a binary number in a similar way to `de2bi' in MATLAB
- exp2ind: Looks up a monomial's lexicographical index based on a list of exponents
- has_band_k_ordering: Determines whether a matrix has bandwidth ≤ k up to symmetric permutation
- iden: Computes a sparse or full identity matrix
- jacobi_poly: Computes the coefficients of Jacobi polynomials
- normalize_cols: Scales the columns of a matrix to have norm 1
- one_factorization: Computes a 1-factorization of a list of objects
- opt_args: Handles optional input arguments for functions
- opt_disp: Display a message to the user (sometimes)
- pad_array: Pads an array with zeroes in a similar way to `padarray' in MATLAB
- perfect_matchings: Gives all perfect matchings of N objects
- perm_inv: Computes the inverse of a permutation
- perm_sign: Computes the sign of a permutation
- pure_to_mixed: Converts a state vector or density matrix representation of a state to a density matrix
- sk_iterate: Computes a lower bound of the S(k)-norm of an operator
- spnull: Returns a sparse orthonormal basis for the null space
- sporth: Returns a sparse orthonormal basis for the range
- superoperator_dims: Computes the input, output, and environment dimensions of a superoperator
- update_odometer: Increases the entries of a vector subject to constraints on how large the entries of that vector can be
- vec_partitions: Produces all possible partitions of a vector