7 #include <boost/preprocessor/tuple/to_seq.hpp> 8 #include <boost/preprocessor/seq/for_each.hpp> 10 #include <alps/config.hpp> 14 #define ALPS_ACCUMULATOR_VALUE_TYPES_SEQ BOOST_PP_TUPLE_TO_SEQ(ALPS_ACCUMULATOR_VALUE_TYPES_SIZE, (ALPS_ACCUMULATOR_VALUE_TYPES)) 17 namespace accumulators {
24 MeanAccumulator<T>& MeanAccumulator<T>::operator=(
const MeanAccumulator& rhs)
26 return static_cast<MeanAccumulator&
>(*
static_cast<base_type*
>(
this)=rhs);
33 #define ALPS_ACCUMULATOR_INST_MEAN_ACCUMULATOR(r, data, T) \ 34 template struct MeanAccumulator<T>; 42 NoBinningAccumulator<T>& NoBinningAccumulator<T>::operator=(const NoBinningAccumulator& rhs)
44 return static_cast<NoBinningAccumulator&
>(*
static_cast<base_type*
>(
this)=rhs);
51 #define ALPS_ACCUMULATOR_INST_NO_BINNING_ACCUMULATOR(r, data, T) \ 52 template struct NoBinningAccumulator<T>; 60 LogBinningAccumulator<T>& LogBinningAccumulator<T>::operator=(const LogBinningAccumulator& rhs)
62 return static_cast<LogBinningAccumulator&
>(*
static_cast<base_type*
>(
this)=rhs);
72 return this->wrapper->template extract<accumulator_type>().
autocorrelation();
75 #define ALPS_ACCUMULATOR_INST_LOG_BINNING_ACCUMULATOR(r, data, T) \ 76 template struct LogBinningAccumulator<T>; 84 FullBinningAccumulator<T>& FullBinningAccumulator<T>::operator=(const FullBinningAccumulator& rhs)
86 return static_cast<FullBinningAccumulator&
>(*
static_cast<base_type*
>(
this)=rhs);
96 return this->wrapper->template extract<accumulator_type>().
autocorrelation();
99 #define ALPS_ACCUMULATOR_INST_FULL_BINNING_ACCUMULATOR(r, data, T) \ 100 template struct FullBinningAccumulator<T>; 107 #define ALPS_ACCUMULATOR_DEFINE_OPERATOR(A) \ 108 template<typename T> accumulator_set & operator<<(accumulator_set & set, const A <T> & arg) { \ 109 set.insert(arg.name, arg.wrapper); \ 117 #define ALPS_ACCUMULATOR_INST_OPERATOR_TYPE(r, data, T) \ 118 template accumulator_set & operator<<(accumulator_set & set, const MeanAccumulator <T> &); \ 119 template accumulator_set & operator<<(accumulator_set & set, const NoBinningAccumulator <T> &); \ 120 template accumulator_set & operator<<(accumulator_set & set, const LogBinningAccumulator <T> &); \ 121 template accumulator_set & operator<<(accumulator_set & set, const FullBinningAccumulator <T> &); #define ALPS_ACCUMULATOR_INST_MEAN_ACCUMULATOR(r, data, T)
FullBinningAccumulator(const FullBinningAccumulator &rhs)
detail::AccumulatorBase< accumulator_type > base_type
#define ALPS_ACCUMULATOR_INST_FULL_BINNING_ACCUMULATOR(r, data, T)
detail::AccumulatorBase< accumulator_type > base_type
#define ALPS_ACCUMULATOR_INST_OPERATOR_TYPE(r, data, T)
MeanAccumulator(const MeanAccumulator &rhs)
NoBinningAccumulator(const NoBinningAccumulator &rhs)
detail::AccumulatorBase< accumulator_type > base_type
autocorrelation_type tau() const
Returns autocorrelation for this accumulator.
autocorrelation_type tau() const
Returns autocorrelation for this accumulator.
autocorrelation_type< T >::type autocorrelation(T const &arg)
#define ALPS_ACCUMULATOR_VALUE_TYPES_SEQ
#define ALPS_ACCUMULATOR_INST_NO_BINNING_ACCUMULATOR(r, data, T)
#define ALPS_ACCUMULATOR_INST_LOG_BINNING_ACCUMULATOR(r, data, T)
#define ALPS_ACCUMULATOR_DEFINE_OPERATOR(A)
LogBinningAccumulator(const LogBinningAccumulator &rhs)
autocorrelation_type< accumulator_type >::type autocorrelation_type
Data type corresponding to autocorrelation.
autocorrelation_type< accumulator_type >::type autocorrelation_type
Data type corresponding to autocorrelation.