3 #ifndef CPPQEDCORE_QUANTUMDATA_TRANSFORMATION_H_INCLUDED
4 #define CPPQEDCORE_QUANTUMDATA_TRANSFORMATION_H_INCLUDED
6 #include "TransformationFwd.h"
13 #include <boost/fusion/container/vector.hpp>
14 #include <boost/fusion/algorithm/transformation/join.hpp>
15 #include <boost/fusion/container/generation/make_vector.hpp>
16 #include <boost/fusion/container/vector/convert.hpp>
17 #include <boost/fusion/sequence/intrinsic/at_c.hpp>
25 namespace transformation {
40 template<
typename TRAFO>
43 typedef typename boost::fusion::vector<TRAFO> TrafoTypes;
46 static const TrafoTypes getTrafos(
const TRAFO& trafo) {
return boost::fusion::make_vector(trafo);}
56 static const int N_RANK=RANK;
59 static void transform(
Identity<RANK>,
const StateVectorLow& in, StateVectorLow& out) {out=in;}
68 template<
int TWO_TIMES_RANK>
71 static const int N_RANK=TWO_TIMES_RANK/2;
86 static const int N_RANK=RANK;
90 typedef void(*TRAFO)(
const StateVectorLow&, StateVectorLow&);
92 static void transform(
const TRAFO trafo,
const StateVectorLow& in, StateVectorLow& out) {trafo(in,out);}
121 #endif // CPPQEDCORE_QUANTUMDATA_TRANSFORMATION_H_INCLUDED
Definition of blitzplusplus::basi::Iterator together with its helpers.
Defines class of the same name.
Comprises classes representing the state of composite quantum systems and providing various interface...
blitz::Array< dcomp,RANK > CArray
A complex array of arbitrary arity.
quantumdata::Types< 1 >::StateVectorLow StateVectorLow
unary StateVectorLow
defines the typedef linalg::CMatrix and some helpers