4 #ifndef CPPQEDCORE_STRUCTURE_AVERAGED_H_INCLUDED
5 #define CPPQEDCORE_STRUCTURE_AVERAGED_H_INCLUDED
7 #include "AveragedFwd.h"
31 typedef boost::shared_ptr<const AveragedCommon> Ptr;
46 void process(Averages& averages)
const {process_v(averages);}
58 std::ostream&
display(
const Averages& averages, std::ostream& os,
int precision)
const {
return display_v(averages,os,precision);}
61 virtual void process_v( Averages& )
const {}
62 virtual std::ostream& display_v(
const Averages&, std::ostream&,
int)
const = 0;
87 static const int N_RANK=RANK;
89 typedef boost::shared_ptr<const Averaged> Ptr;
106 template<
int RANK,
bool IS_TIME_DEPENDENT>
110 typedef typename Averaged<RANK>::Averages
Averages ;
116 virtual const Averages average_v(
double t,
const LazyDensityOperator& matrix)
const final {
return average_v(Time(t),matrix);}
118 virtual const Averages average_v(Time,
const LazyDensityOperator&)
const = 0;
125 #endif // CPPQEDCORE_STRUCTURE_AVERAGED_H_INCLUDED
std::ostream & display(const Averages &averages, std::ostream &os, int precision) const
Displays the system characteristics in a nicely tabulated format.
Metafunction dispatching two OneTime & NoTime according to the template parameter IS_TIME_DEPENDENT ...
void process(Averages &averages) const
This function is a hook between LiouvilleanAveragedCommonRanked::average and display.
Basically only a metafunction defining types for higher-level constructs of arity RANK ...
Defines class of the same name.
DArray< 1 > DArray1D
A 1D real array storing the quantum averages – even if they are complex, their real & imaginary part...
The template-parameter independent base of Averaged.
Comprises modules for describing quantum systems.
The interface every system that calculates and displays quantum averages must present towards the tra...
Common interface for calculating quantum averages.
Implements the general Liouvillean interface by dispatching the two possible time-dependence levels...
Defines tentative base classes for the exception classes of the framework.
Defines tools related to the description of different time-dependence levels.
LiouvilleanAveragedCommon::DArray1D Averages
The 1D real array storing the calculated quantum averages (perhaps in real-imaginary pairs if a given...