Comprises modules representing operators of special structure (tridiagonal, sparse) over Hilbert spaces of arbitrary arity. More...
Classes | |
| class | Sigma |
Stateless class implementing the unary quantumoperator . More... | |
| class | Tridiagonal |
| Class representing a (unary) tridiagonal matrix or direct product of such matrices. More... | |
| class | TridiagonalHamiltonian |
| Implements the action of a Hamiltonian whose matrix consists of a sum of tridiagonal matrices. More... | |
Functions | |
| template<int RANK, bool IS_HEAD> | |
| const quantumdata::Types< RANK-1 >::StateVectorLow | partialProject (const typename quantumdata::Types< RANK >::StateVectorLow &psi, int n) |
| Helper for DirectProduct::apply. More... | |
| template<int RANK> | |
| void | apply (const typename quantumdata::Types< RANK >::StateVectorLow &psi, typename quantumdata::Types< RANK >::StateVectorLow &dpsidt, const Tridiagonal< RANK > &tridiag) |
Comprises modules representing operators of special structure (tridiagonal, sparse) over Hilbert spaces of arbitrary arity.
| const quantumdata::Types<RANK-1>::StateVectorLow quantumoperator::partialProject | ( | const typename quantumdata::Types< RANK >::StateVectorLow & | psi, |
| int | n | ||
| ) |
Helper for DirectProduct::apply.
Calculates the state-vector slice
if IS_HEAD=true and
if IS_HEAD=false. The code is automatically generated for all template-parameter combinations (RANK up to BLITZ_ARRAY_LARGEST_RANK) via preprocessor metaprogramming. Cf. quantumoperator/Sigma.cc
~~~
n into a runtime variable because then we can use complete specializations of this function. Eventually it has to be converted anyway into an index of psi.