Skip to main content

Quantum Toolkit

Our Quantum Toolkit enables high-performance algorithms used in quantum many-body physics to be called natively in Aleph.

Global Constants

NameDescription
as_abstractConstant object representing the StateInfo option AbstractT.
as_basisstateConstant object representing the StateInfo option BasisStateT.
as_completeConstant object representing the StateInfo option CompleteT.
as_denseConstant object representing the StateInfo option DenseT.
as_fermionConstant object representing the StateInfo option FermionT.
as_heterogenousqditConstant object representing the StateInfo option HeterogenousQditT.
as_homogenousqditConstant object representing the StateInfo option HomogenousQditT.
as_inversionConstant object representing the StateInfo option InversionT.
as_magnetizationConstant object representing the StateInfo option MagnetizationT.
as_magnetizationspinfliptranslationConstant object representing the StateInfo option MagnetizationSpinFlipTranslationT.
as_magnetizationtranslationConstant object representing the StateInfo option MagnetizationTranslationT.
as_numberConstant object representing the StateInfo option NumberT.
as_singleparticleConstant object representing the StateInfo option SingleParticleT.
as_sparseConstant object representing the StateInfo option SparseT.
as_spinflipConstant object representing the StateInfo option SpinFlipT.
as_spinhalfConstant object representing the StateInfo option SpinhalfT.
as_statevectorConstant object representing the StateInfo option StateVectorT.
as_translationConstant object representing the StateInfo option TranslationT.
as_unknownConstant object representing the StateInfo option UnknownT.
as_unspecifiedConstant object representing an unspecified StateInfo option.
eigsstatusA global EigsStatus instance to select iterative eigensolver computation status.
spectrumThe spectrum selector has methods that return SpectrumItem objects that are used in the context of iterative eigensolvers. These SpectrumItem objects specify which part of the spectrum to target. For instance, one can create a SpectrumItem that targets the largest absolute eigenvalues by calling spectrum.largest_abs. Similarly, spectrum.smallest_real returns a SpectrumItem that targets the smallest real eigenvalues.

Factories

NameDescription
CNOTReturns a spin-1/2 OperatorNamed for the CNOT (controlled-NOT) gate, taking a vector of site indices.
CoulombSumReturns a Coulomb tensor operator i,j,k,l,σ,σVijklaiσajσakσalσ\sum_{i,j,k,l,\sigma,\sigma'} V_{ijkl} a_{i\sigma}^\dagger a_{j\sigma'}^\dagger a_{k\sigma'} a_{l\sigma}.
CreateReturns the fermionic creation operator fif_{i}^\dagger with support on the specified site.
DestroyReturns the fermionic annihilation operator fif_{i} with support on the specified site.
DoubleExcitationLegacy alias for PairHop. Returns the pair hopping operator fifjfkfl+h.c.f_{i}^\dagger f_{j}^\dagger f_{k} f_{l} + \mathrm{h.c.} with support on the specified sites.
DualUnitaryReturns a spin-1/2 dual unitary operator: exp(i(π4X(i)X(j)+π4Y(i)Y(j)+JzZ(i)Z(j)))\exp(i(\frac{\pi}{4} X(i) X(j) + \frac{\pi}{4} Y(i) Y(j) + J_z Z(i) Z(j))) where i,ji, j are the site indices.
FbitConstructs a fermionic product state from a string of consecutive characters "00" and "11".
FermiIdReturns the fermionic identity operator I\mathcal{I}.
FlipCreates a spin-1/2 OperatorPermute that flips spins at specified sites.
FlipAllCreates a spin-1/2 OperatorPermute that flips all spins.
FloquetReturns a spin-1/2 Floquet(Jx,Jy,Jz)=exp(i(JxX(i)+JyY(i)+JzZ(i))Z(j))(J_x, J_y, J_z) = \exp(-i(J_x X(i) + J_y Y(i) + J_z Z(i)) Z(j)) where i,ji, j are the site indices corresponding to the first and second elements of sites.
FourBodyLegacy alias for PairTransfer. Returns the directed pair transfer operator fifjfkflf_{i}^\dagger f_{j}^\dagger f_{k} f_{l} with support on the specified sites.
HgateReturns a spin-1/2 OperatorNamed for the Hadamard gate.
HopReturns the fermionic hopping operator fifj+fjfif_{i}^\dagger f_{j} + f_{j}^\dagger f_{i} with support on the specified sites.
HopNumberReturns the hop-number operator (fifj+fjfi)nk(f_{i}^\dagger f_{j} + f_{j}^\dagger f_{i}) n_{k} with support on the specified sites.
IDReturns a spin-1/2 OperatorNamed for the Identity operator. No site parameter is required as it acts globally.
ModeRotationReturns the mode rotation operator exp(iθ(fifj+fjfi))\exp(i \theta (f_{i}^\dagger f_{j} + f_{j}^\dagger f_{i})) with support on the specified sites.
NearestNumberSumReturns the sum of nearest-neighbor number interactions inini+1\sum_{i} n_{i} n_{i+1} with support on the specified sites.
NextNearestNumberSumReturns the sum of next-nearest-neighbor number interactions inini+2\sum_{i} n_{i} n_{i+2} with support on the specified sites.
NumberReturns the fermionic number operator ni=fifin_{i} = f_{i}^\dagger f_{i} with support on the specified site.
NumberNLegacy alias for NumberSum. Returns the sum of fermionic number operators isitesni\sum_{i \in \mathrm{sites}} n_{i} with support on the specified sites.
NumberNumberReturns the two-site fermionic number-number interaction operator ninj=fififjfjn_{i} n_{j} = f_{i}^\dagger f_{i} f_{j}^\dagger f_{j} with support on the specified sites.
NumberNumberNNLegacy alias for NearestNumberSum. Returns the sum of nearest-neighbor number interactions inini+1\sum_{i} n_{i} n_{i+1} with support on the specified sites.
NumberNumberNNNLegacy alias for NextNearestNumberSum. Returns the sum of next-nearest-neighbor number interactions inini+2\sum_{i} n_{i} n_{i+2} with support on the specified sites.
NumberNumberPhaseReturns the two-site number-number phase operator exp(iϕninj)\exp(i \phi n_{i} n_{j}) with support on the specified sites.
NumberPhaseReturns the site number phase operator exp(iϕni)\exp(i \phi n_i) with support on the specified site.
NumberPotentialReturns an operator representing a weighted sum of number operators i=0N1αini\sum_{i=0}^{N-1} \alpha_i n_i, where the site indices are implicitly 0,1,,N10, 1, \dots, N-1. If a subset of sites or a different ordering is desired, use the factory overload that accepts an explicit list of site indices.
NumberSumReturns the sum of fermionic number operators isitesni\sum_{i \in \mathrm{sites}} n_{i} with support on the specified sites.
PairHopReturns the pair hopping operator fifjfkfl+h.c.f_{i}^\dagger f_{j}^\dagger f_{k} f_{l} + \mathrm{h.c.} with support on the specified sites.
PairRotationReturns the pair rotation operator exp(iθ(fifj+fjfi))\exp(i \theta (f_{i}^\dagger f_{j}^\dagger + f_{j} f_{i})) with support on the specified sites.
PairTransferReturns the directed pair transfer operator fifjfkflf_{i}^\dagger f_{j}^\dagger f_{k} f_{l} with support on the specified sites.
PermuteCreates a spin-1/2 OperatorPermute that permutes spins according to a specified permutation.
PhaseReturns a global phase spin-1/2 operator P(ϕ)=eiϕP(\phi) = e^{-i\phi}.
PhaseHopReturns the complex phase-hop operator eiϕfifj+eiϕfjfie^{i \phi} f_{i}^\dagger f_{j} + e^{-i \phi} f_{j}^\dagger f_{i} with support on the specified sites.
Proj0Returns a spin-1/2 OperatorNamed for the projector 00\|0\rangle\langle 0\|.
Proj1Returns a spin-1/2 OperatorNamed for the projector 11\|1\rangle\langle 1\|.
QbitConstructs a qubit product state of size num_sites with every qubit set to 00.
ReflectCreates a spin-1/2 OperatorPermute that reflects all spins about the center.
RotEulerReturns a general spin-1/2 rotation operator RotEuler(ϕ,θ,ω)=RZ(ω)RX(θ)RZ(ϕ)=e(iωZ/2)e(iθX/2)e(iϕZ/2)(\phi,\theta,\omega) = RZ(\omega)RX(\theta)RZ(\phi) = e^{(-i \omega Z/2)} e^{(-i \theta X/2)} e^{(-i \phi Z/2)}.
RotXReturns a spin-1/2 RotX(ϕ)=eiϕX/2(\phi) = e^{-i\phi X/2} rotation operator around the X-axis.
RotYReturns a spin-1/2 RotY(ϕ)=eiϕY/2(\phi) = e^{-i\phi Y/2} rotation operator around the Y-axis.
RotZReturns a spin-1/2 RotZ(ϕ)=eiϕZ/2(\phi) = e^{-i\phi Z/2} rotation operator around the Z-axis.
SWAPReturns a spin-1/2 OperatorNamed for the SWAP gate, taking a vector of site indices.
SXReturns a spin-1/2 OperatorNamed for Spin-X operator.
SYReturns a spin-1/2 OperatorNamed for Spin-Y operator.
SZReturns a spin-1/2 OperatorNamed for Spin-Z operator.
SgateReturns a spin-1/2 OperatorNamed for the S gate.
SminusReturns a spin-1/2 OperatorNamed for Spin-minus operator.
SplusReturns a spin-1/2 OperatorNamed for Spin-plus operator.
TgateReturns a spin-1/2 OperatorNamed for the T gate.
TransferReturns the directed fermionic transfer operator fifjf_{i}^\dagger f_{j} with support on the specified sites.
TransferNumberReturns the transfer-number operator fifjnkf_{i}^\dagger f_{j} n_{k} with support on the specified sites.
TranslateCreates a spin-1/2 OperatorPermute that translates spins by a specified shift.
UnitaryXYZReturns a spin-1/2 UnitaryXYZ(Jx,Jy,Jz)(J_x, J_y, J_z) operator: exp(i(JxX(i)X(j)+JyY(i)Y(j)+JzZ(i)Z(j)))\exp(-i(J_x X(i) X(j) + J_y Y(i) Y(j) + J_z Z(i) Z(j))) where i,ji, j are the site indices.
XReturns a spin-1/2 OperatorNamed for Pauli-X operator.
XXReturns a spin-1/2 OperatorNamed for XiXjX_i \cdot X_j operator, taking a vector of site indices.
XXPYYReturns a spin-1/2 OperatorNamed for XiXj+YiYjX_i \cdot X_j + Y_i \cdot Y_j operator, taking a vector of site indices.
YReturns a spin-1/2 OperatorNamed for Pauli-Y operator.
YYReturns a spin-1/2 OperatorNamed for YiYjY_i \cdot Y_j operator, taking a vector of site indices.
ZReturns a spin-1/2 OperatorNamed for Pauli-Z operator.
ZNReturns a spin-1/2 OperatorNamed for isitesZi \sum_{i \in \text{sites}} Z_i operator.
ZZReturns a spin-1/2 OperatorNamed for ZiZjZ_i \cdot Z_j operator, taking a vector of site indices.
ZZNNReturns a spin-1/2 OperatorNamed for isitesZiZi+1 \sum_{i \in \text{sites}} Z_i \otimes Z_{i+1} operator.
ZZNNNReturns a spin-1/2 OperatorNamed for isitesZiZi+2 \sum_{i \in \text{sites}} Z_i \otimes Z_{i+2} operator.
accumulatorFactory for constructing accumulators.
coefficientCreates a Coefficient that can be added to a Model.
latticeConstructor for lattice class.
lattice_coordinateConstructor for lattice coordinate.
make_random_mpoGenerate a random Matrix Product Operator (MPO) with Complex values.
make_random_mpsGenerate a random Matrix Product State (MPS) with Complex values.
matrixConverts the operator to its matrix representation.
modelConstructs a model containing a lattice.
neighbourhood_ruleConstructor for a neighbourhood rule.
operator_denseReturns a spin-1/2 OperatorDense parametrized by the given matrix.
operator_diagonalReturns a spin-1/2 diagonal operator with specified diagonal elements.
operator_freeGenerates an operator that represents the hopping terms of the input matrix.
operator_functionApproximates a matrix function using the Krylov subspace method.
operator_genericCreates a spin-1/2 OperatorGeneric from a string representation.
operator_prodCreates an empty OperatorProduct.
operator_sparseReturns a spin-1/2 OperatorSparse parametrized by the given matrix.
operator_stencilGenerates a stencil operator.
operator_sumCreates an empty ComplexOperatorSum with complex coefficients (default behavior).
pauli_stringCreates a spin-1/2 OperatorPauliString from a string representation.
qbit_rangeCreates a range of Qbit objects with the specified number of sites.
sse_order_estimatorConstructs the estimator for the order in an SSE simulation.
sse_simulationConstructs an SSE simulation instance.
state_rangeCreates an iterator for a range of state objects matching the provided option.
state_vectorState vector factory.
support_tableConstructs a SupportTable from a vector of NeighbourhoodRule and a Lattice.
termConstructs a term that can be added to a model.

Types

NameDescription
AccumulatorBase class for all accumulators.
AlephSingleSiteOperatorFactoryA function taking an index corresponding to a site on a lattice and returning an Operator.
BasisStateRepresents a quantum product state \vert s_1s_2...s_n\rangle.
BinningAccumulatorAccumulator that stores bin means.
BoundaryConditionTypeBoundary condition for Lattice geometries.
ChebyshevSeriesA Chebyshev series representation of a real-valued function.
CoefficientRepresents a coefficient in a model that multiplies a term. Can be either a real number of a function of a list of lattice coordinates returning a real number.
CoefficientFactoryA function of a List of LatticeCoordinate that returns a real number.
ComplexFreeMatrixThis operator efficiently represents a sum of fermionic hopping and number operators. It is designed to provide efficient kernels for solving single particle (free) fermionic problems.
ComplexFreeStencilThis operator is designed to provide efficient methods for calculations involving a structured free operator (single particle symmetry sector of a fermionic Hilbert space). A free operator which can be written as a stencil assumes the general form sn=0Nαncscs+δn\sum_{s}\sum_{n=0}^N \alpha_{n}c_{s}^{\dagger}c_{s+\delta_n} where δn\delta_nare displacement vectors, ss are lattice position vectors, the αn\alpha_n are position independent coefficients and NN is the number of such coefficients. To construct a stencil, the above parameters must be passed explicitly, together with information about the lattice dimensions and the boundary conditions. For more details, please see the operator_free factory.
ComplexMPOMatrix Product Operator (MPO) of Complex values. Compressed representation of large-dimensional tensors, well suited to the representation of quantum operators for 1D many-body physics problems.
ComplexMPSMatrix Product State (MPS) of Complex values. Compressed representation of a large-dimensional tensor, well suited for state vectors of some 1D many-body quantum mechanics problems.
ComplexOperatorCoulombSumRepresents a Coulomb tensor operator, with interactions defined as a 4-rank tensor.
ComplexOperatorSumRepresents a sum of operators with complex scalar coefficients. Each term consists of a complex coefficient and an operator. Create instances using the operator_sum() factory function.
ConstraintA function taking in a lattice coordinate and returning a Boolean that specifies when a given lattice coordinate is a valid reference for a neighbourhood.
EigsArnoldi<LinearOperator<complex>>EigsArnoldi iterative eigensolver.
EigsArnoldi<LinearOperator<real>>EigsArnoldi iterative eigensolver.
EigsBase<LinearOperator<complex>>Base class for iterative eigensolvers.
EigsBase<LinearOperator<real>>Base class for iterative eigensolvers.
EigsLanczos<LinearOperator<complex>>EigsLanczos iterative eigensolver.
EigsLanczos<LinearOperator<real>>EigsLanczos iterative eigensolver.
EigsStatusHelper class to access CompInfo enum values.
EigsStatusItemComputation info for iterative eigensolvers. The computation info indicates the status of the computation after running an iterative eigensolver. The allowed values are:...
EstimateStatistical estimate from binned values containing value of estimate and variance on the value.
EstimatorBase class for estimators.
FbitAn object representing a product state of fermionic modes.
FbitRangeA range of Fbit objects.
HeterogenousQditQdit type.
HomogenousQditQdit type.
IntervalRepresents a closed interval [a, b] of real numbers.
LatticeClass that represents a crystal lattice (Bravais lattice and atomic basis)
LatticeCoordinateRepresents a lattice coordinate in terms of primitive indices and a basis index.
LatticeRangeA range of lattice coordinates used to iterate over lattice coordinates.
LinearOperator<complex>Spectra operator wrapper for complex-valued operators.
LinearOperator<real>Spectra operator wrapper for real-valued operators.
List<AlephSingleSiteOperatorFactory>A list of single site operator factories.
List<Fbit>A list of Fbit objects.
List<HeterogenousQdit>A list of HeterogenousQdit objects.
List<HomogenousQdit>A list of HomogenousQdit objects.
List<Qbit>A list of Qbit objects.
List<SSECell>A list of SSECells produced by the Monte Carlo.
List<SSEConfig>A list of SSEConfigEntry.
List<SSEConfigEntry>A list of SSEConfigEntry.
ModelStores the terms of a lattice Hamiltonian and associated observables in terms of lattice coordinates and neighbourhoods.
NeighbourhoodRuleA representation of a neighbourhood of a given LatticeCoordinate on a Lattice
NoBinningAccumulatorAccumulator that doesn't bin values.
OperatorBase class for all quantum operators.
OperatorChebyshevSeriesA Chebyshev series operator is defined in terms of a Chebyshev series and an operator. It applies the Chebyshev series to the operator when acting on vectors. For example, a Chebyshev series p(x)=n=0NanTn(x)p(x) = \sum_{n=0}^{N} a_n T_n(x) becomes p(A)=n=0NanTn(A)p(A) = \sum_{n=0}^{N} a_n T_n(A) when applied to an operator AA, where TnT_n are the Chebyshev polynomials.
OperatorDense<complex>Class representing a spin-1/2 dense operator. The operator is parametrized with a dense matrix and the site indices. The matrix dimension must be equal to 2n×2n2^{n} \times 2^{n}, where nn is the number of sites the operator acts on.
OperatorDense<real>Class representing a spin-1/2 dense operator. The operator is parametrized with a dense matrix and the site indices. The matrix dimension must be equal to 2n×2n2^{n} \times 2^{n}, where nn is the number of sites the operator acts on.
OperatorDiagonal<complex>Class representing a spin-1/2 diagonal operator. The operator is parametrized with the diagonal elements and the site indices. The number of diagonal elements must be equal to 2n2^{n}, where nn is the number of sites the operator acts on.
OperatorDiagonal<real>Class representing a spin-1/2 diagonal operator. The operator is parametrized with the diagonal elements and the site indices. The number of diagonal elements must be equal to 2n2^{n}, where nn is the number of sites the operator acts on.
OperatorFermiNamedRepresents a named fermionic operator acting on specified sites. Create instances using factory functions like Create(), Destroy(), Number(), or Hop().
OperatorGeneric<complex>Class representing a generic operator. The operator is parametrized with a function accepting a matrix of state vector coefficients and an array of integers labelling the basis states corresponding to the coefficients. The function modifies the matrix in-place to apply the operator effect. The operator also includes the site indices where it acts.
OperatorGeneric<real>Class representing a generic operator. The operator is parametrized with a function accepting a matrix of state vector coefficients and an array of integers labelling the basis states corresponding to the coefficients. The function modifies the matrix in-place to apply the operator effect. The operator also includes the site indices where it acts.
OperatorNamedRepresents a named spin-1/2 operator acting on specified sites. Create instances using factory functions like X(), Y(), Z(), CNOT(), SWAP(), etc.
OperatorParam<real>Represents a parametrized spin-1/2 operator with rotation angles or phase parameters. Create instances using factory functions like Phase(), RotX(), RotY(), RotZ(), RotEuler(), etc.
OperatorPauliStringRepresents a Pauli string operator constructed from a sequence of Pauli operators. Create instances using the pauli_string() factory function.
OperatorPermuteRepresents a permutation operator that rearranges or transforms qubit states. Create instances using factory functions like Flip(), FlipAll(), Reflect(), or Translate().
OperatorPolynomialA polynomial operator is defined in terms of a polynomial and an operator. It applies the polynomial to the operator when acting on vectors. For example, a polynomial p(x)=n=0Nanxnp(x) = \sum_{n=0}^{N} a_n x^n becomes p(A)=n=0NanAnp(A) = \sum_{n=0}^{N} a_n A^n when applied to an operator AA.
OperatorProductRepresents a product of operators without scalar coefficients. For products with coefficients (e.g., 2.0*X(0)*Y(1)), use OperatorSum instead. Create instances using the operator_prod() factory function.
OperatorSparse<complex>Class representing a spin-1/2 sparse operator. The operator is parametrized with a sparse matrix and the site indices. The matrix dimension must be equal to 2n×2n2^{n} \times 2^{n}, where nn is the number of sites the operator acts on.
OperatorSparse<real>Class representing a spin-1/2 sparse operator. The operator is parametrized with a sparse matrix and the site indices. The matrix dimension must be equal to 2n×2n2^{n} \times 2^{n}, where nn is the number of sites the operator acts on.
Polynomial<complex>A Polynomial<complex>-valued polynomial.
Polynomial<real>A Polynomial<real>-valued polynomial.
QbitAn object representing a product state of qubits.
QbitRangeA range of Qbit objects.
RealFreeMatrixThis operator efficiently represents a sum of fermionic hopping and number operators. It is designed to provide efficient kernels for solving single particle (free) fermionic problems.
RealFreeStencilThis operator is designed to provide efficient methods for calculations involving a structured free operator (single particle symmetry sector of a fermionic Hilbert space). A free operator which can be written as a stencil assumes the general form sn=0Nαncscs+δn\sum_{s}\sum_{n=0}^N \alpha_{n}c_{s}^{\dagger}c_{s+\delta_n} where δn\delta_nare displacement vectors, ss are lattice position vectors, the αn\alpha_n are position independent coefficients and NN is the number of such coefficients. To construct a stencil, the above parameters must be passed explicitly, together with information about the lattice dimensions and the boundary conditions. For more details, please see the operator_free factory.
RealMPOMatrix Product Operator (MPO) of Real values. Compressed representation of large-dimensional tensors, well suited to the representation of quantum operators for 1D many-body physics problems.
RealMPSMatrix Product State (MPS) of Real values. Compressed representation of a large-dimensional tensor, well suited for state vectors of some 1D many-body quantum mechanics problems.
RealOperatorCoulombSumRepresents a Coulomb tensor operator, with interactions defined as a 4-rank tensor.
RealOperatorFermiParamRepresents a named fermionic operator acting on specified sites. Create instances using factory functions like Create(), Destroy(), Number(), or Hop().
RealOperatorSumRepresents a sum of operators with real scalar coefficients. Each term consists of a real coefficient and an operator. Create instances using the operator_sum() factory function.
SSECellSimulation Cell generated by the stochastic series expansion Monte Carlo.
SSECellParametersParameters for the simulation cell.
SSEConfigEntryConfiguration entry with vertex index, support index, and the sites acted on.
SSEOrderEstimatorEstimator for the order of the stochastic series expansion
SSESimulationSimulation manager for the stochastic series expansion.
SSEVertexVertex used in the stochastic series expansion Monte Carlo.
SingleAccumulatorBase class for all accumulators.
SpectrumItemTarget spectrum enumerator for iterative eigensolvers. Iterative eigensolvers target specific parts of the spectrum. The allowed values are:...
StateBase class for all quantum state representations.
StateInfoAn object representing the combination of a set of mutually compatible options. It is used in conjunction with the state_vector factory to specify the desired state.
StateVectorBase class for all state vector representations.
StateVector<Complex,Fermion,Dense,Complete>A class representing a fermionic state vector. The object stores a set of coefficients corresponding to the multiplicative coefficients in front of each computational basis state that appears in the state vector. It provides various optimized quantum routines and is compatible with any fermionic operator.
StateVector<Complex,Fermion,Dense,SingleParticle>A class representing a fermionic state vector. The object stores a set of coefficients corresponding to the multiplicative coefficients in front of each computational basis state that appears in the state vector. It provides various optimized quantum routines and is compatible with any fermionic operator.
StateVector<Complex,Spinhalf,Dense,Complete>A class representing a spin-1/2 state vector. The object stores a set of coefficients corresponding to the multiplicative coefficients in front of each spin-1/2 product state that form the basis of the state vector. It provides various optimized quantum routines and is compatible with any spin-1/2 operator.
StateVector<Complex,Unknown,Dense,Complete>A class representing a spin half state vector. The object stores a set of coefficients corresponding to the multiplicative coefficients in front of each computational basis state that for the basis of the state vector. It provides various optimized quantum routines and is compatible with any spin half operator.
StateVector<Real,Fermion,Dense,Complete>A class representing a fermionic state vector. The object stores a set of coefficients corresponding to the multiplicative coefficients in front of each computational basis state that appears in the state vector. It provides various optimized quantum routines and is compatible with any fermionic operator.
StateVector<Real,Fermion,Dense,SingleParticle>A class representing a fermionic state vector. The object stores a set of coefficients corresponding to the multiplicative coefficients in front of each computational basis state that appears in the state vector. It provides various optimized quantum routines and is compatible with any fermionic operator.
StateVector<Real,Fermion,Sparse,Number>A class representing a fermionic state vector. The object stores a set of coefficients corresponding to the multiplicative coefficients in front of each computational basis state that appears in the state vector. It provides various optimized quantum routines and is compatible with any fermionic operator.
StateVector<Real,Spinhalf,Dense,Complete>A class representing a spin-1/2 state vector. The object stores a set of coefficients corresponding to the multiplicative coefficients in front of each spin-1/2 product state that form the basis of the state vector. It provides various optimized quantum routines and is compatible with any spin-1/2 operator.
StateVector<Real,Unknown,Dense,Complete>A class representing a spin half state vector. The object stores a set of coefficients corresponding to the multiplicative coefficients in front of each computational basis state that for the basis of the state vector. It provides various optimized quantum routines and is compatible with any spin half operator.
SupportTableStores the linear indices associated with some number of name neighbourhoods.
TermRepresents a term in a model storing a coefficient name, a list of functions to produce an operator product, and the name of a neighbourhood rule.

Module Functions

NameDescription
HeisenbergReturns a Heisenberg model Hamiltonian: H=hiF(i)+i[Jxσixσi+1x+Jyσiyσi+1y+Jzσizσi+1z]H = h\sum_i F(i) + \sum_i [J_x \sigma^x_i \sigma^x_{i+1} + J_y \sigma^y_i \sigma^y_{i+1} + J_z \sigma^z_i \sigma^z_{i+1}].
Heisenberg_1dGenerate the Hamiltonian MPO for the 1D Heisenberg model with Complex values.
Ising_1dGenerate the Hamiltonian MPO for the 1D transverse-field Ising model with Complex values.
LinearOperatorConstructs an LinearOperator from an Operator.
SupportTable Constructs a SupportTable from a vector of NeighbourhoodRule and a Lattice.
both_endsReturns the both_ends enum value.
chebyshev_series_deltaGenerates a Chebyshev series that approximates a delta function over the specified interval.
coefficient_matrixCreates a bipartite coefficient matrix from a single state vector using arbitrary subsystem cuts.
commutatorComputes the commutator of two quantum operators [A,B] = AB - BA. Returns zero operator for identical operators or operators acting on disjoint sites.
converted_to_create_destroyConverts a sum or product of named fermion operators to their equivalent representation in terms of creation and annihilation operators.
dmrgCompute the ground state of a quantum many-body system using the Density Matrix Renormalization Group (DMRG) algorithm.
fbit_rangeCreates a range of Fbit objects with the specified number of sites.
fermionic_site_reorderReorders sum or products of creation and annihilation operators in place by site while preserving order on each site.
flattenFlattens any operator by expanding all expressions into a sum of products (in-place).
flattenedFlattens any operator by expanding all expressions into a sum of products (out-of-place).
fused_into_numberFuses the appropriate creation and annihilation operators into number operators.
haar_matrixGenerate a square Haar random unitary matrix of a specified size.
haar_vectorGenerates a Haar random vector of a specified size.
integerReturns the integer representation of the qubit state.
intervalConstructs an interval [lower, upper].
is_disjoint_supportReturns true if operators act on non-overlapping sites (commute).
iterative_eigensolverIterative eigensolver for matrices.
kronReturns the tensor product of two fermionic product states.
largest_absReturns the largest_abs enum value.
largest_imagReturns the largest_imag enum value.
largest_realReturns the largest_real enum value.
lattice_rangeConstructs a LatticeRange.
mergeSimplifies an OperatorSum by combining like terms (in-place).
mergedSimplifies an OperatorSum by combining like terms (out-of-place).
neighbourhood_ruleConstructor for a neighbourhood rule.
openReturns the open enum value.
operator_chebyshev_seriesConstructs an OperatorChebyshevSeries from an Operator and a Chebyshev series.
operator_functionApproximates a matrix (or operator) function.
periodicReturns the periodic enum value.
prunePrunes operators from an OperatorSum based on their effective norm (in-place).
prunedPrunes operators from an OperatorSum based on their effective norm (out-of-place).
reduced_density_matrixCalculates the reduced density matrix for a subsystem using a linear cut. Returns the reduced density matrix for the sites to the left of the linear cut.
reduced_number_powerReduces powers of the number operator on the same site to at most 1.
renyi_entropyCalculates the Rényi entropy of order q for a density matrix.
reorder_by_siteReorders operators within a product by their site indices while preserving quantum commutation rules.
simplified_create_destroySimplifies and reorders a product of creation and annihilation operators by site while preserving site order. Terms are killed if there are too many creation or annihilation operators.
simplify_paulisSimplifies any Operator containing Pauli operators according to Pauli algebra rules. Handles single Pauli operators, products, and sums by converting to OperatorSum format.
smallest_absReturns the smallest_abs enum value.
smallest_imagReturns the smallest_imag enum value.
smallest_realReturns the smallest_real enum value.
sse_order_estimatorConstructs the estimator for the order in an SSE simulation.
sse_simulationReads an SSE Simulation from the group at the given path.
sse_vertexConstructs a diagonal SSE vertex.
stringFormat a vector of boundary conditions as a string.
von_neumann_entropyCalculates the von Neumann entropy of a density matrix.
writeWrites an SSE simulation and returns the file for chaining.

Module Symbols

NameDescription
!=Returns true if the lattice coordinates are not equal.
*Multiplies complex scalar by an operator.
+Adds the primitive vectors and basis indices of the given lattice coordinates.
==Returns true if the two StateInfo options are equivalent.
[]Array access operator with Fbit states.
|Combines two compatible StateInfo options.