4 #ifndef CPPQEDCORE_QUANTUMOPERATOR_SIGMA_H_INCLUDED
5 #define CPPQEDCORE_QUANTUMOPERATOR_SIGMA_H_INCLUDED
23 template<
int L,
int R,
typename OTHER>
24 const DirectProduct<L,R,OTHER,true >
37 template<
int L,
int R,
typename OTHER>
38 const DirectProduct<L,R,OTHER,false>
42 template<
int L1,
int R1,
int L2,
int R2>
43 const DirectProduct<L1,R1,Sigma<L2,R2>,
true>
53 template<
int L,
int R>
57 static const int N_RANK=1;
59 typedef quantumdata::Types<1>::StateVectorLow StateVectorLow;
63 apply(
const StateVectorLow& psi, StateVectorLow& dpsidt)
const
86 template<
int RANK,
bool IS_HEAD>
88 partialProject(
const typename quantumdata::Types<RANK>::StateVectorLow& psi,
int n);
92 #endif // CPPQEDCORE_QUANTUMOPERATOR_SIGMA_H_INCLUDED
Defines class of the same name.
Basically only a metafunction defining types for higher-level constructs of arity RANK ...
quantumdata::Types< 1 >::StateVectorLow StateVectorLow
unary StateVectorLow
void apply(const StateVectorLow &psi, StateVectorLow &dpsidt) const
Application of the operator on a state vector can be implemented trivially.
const Sigma< R, L > dagger() const
Hermitian conjugation also trivial.
Comprises modules representing operators of special structure (tridiagonal, sparse) over Hilbert spac...
const quantumdata::Types< RANK-1 >::StateVectorLow partialProject(const typename quantumdata::Types< RANK >::StateVectorLow &psi, int n)
Helper for DirectProduct::apply.
Stateless class implementing the unary quantumoperator .