Tomographer
v5.4
Tomographer C++ Framework Documentation
|
A MHRWController Interface which combines several independent random walk controllers. More...
#include <tomographer/mhrw.h>
Public Types | |
enum | |
typedef std::tuple< MHRWControllerTypes... > | TupleType |
typedef std::tuple< MHRWControllerTypes &... > | TupleRefType |
Public Member Functions | |
MHRWMultipleControllers (MHRWControllerTypes &... controllers_) | |
template<int I> | |
const std::tuple_element< I, TupleRefType >::type | getController () const |
template<typename MHRWParamsType , typename MHWalker , typename MHRandomWalkType , int I = 0, ENABLED_IF( I< NumControllers) > | |
void | init (MHRWParamsType ¶ms, const MHWalker &mhwalker, const MHRandomWalkType &mhrw) |
template<typename MHRWParamsType , typename MHWalker , typename MHRandomWalkType , int I = 0, ENABLED_IF( I==NumControllers) > | |
void | init (const MHRWParamsType &, const MHWalker &, const MHRandomWalkType &) const |
template<typename MHRWParamsType , typename MHWalker , typename MHRandomWalkType , int I = 0, ENABLED_IF( I< NumControllers) > | |
void | thermalizingDone (MHRWParamsType ¶ms, const MHWalker &mhwalker, const MHRandomWalkType &mhrw) |
template<typename MHRWParamsType , typename MHWalker , typename MHRandomWalkType , int I = 0, ENABLED_IF( I==NumControllers) > | |
void | thermalizingDone (const MHRWParamsType &, const MHWalker &, const MHRandomWalkType &) const |
template<typename MHRWParamsType , typename MHWalker , typename MHRandomWalkType , int I = 0, ENABLED_IF( I< NumControllers) > | |
void | done (MHRWParamsType ¶ms, const MHWalker &mhwalker, const MHRandomWalkType &mhrw) |
template<typename MHRWParamsType , typename MHWalker , typename MHRandomWalkType , int I = 0, ENABLED_IF( I==NumControllers) > | |
void | done (const MHRWParamsType &, const MHWalker &, const MHRandomWalkType &) const |
template<bool IsThermalizing, bool IsAfterSample, typename MHRWParamsType , typename CountIntType , typename MHWalker , typename MHRandomWalkType , int I = 0, ENABLED_IF( I< NumControllers) > | |
void | adjustParams (MHRWParamsType ¶ms, const MHWalker &mhwalker, CountIntType iter_k, const MHRandomWalkType &mhrw) |
template<bool IsThermalizing, bool IsAfterSample, typename MHRWParamsType , typename CountIntType , typename MHWalker , typename MHRandomWalkType , int I = 0, ENABLED_IF( I==NumControllers) > | |
void | adjustParams (const MHRWParamsType &, const MHWalker &, CountIntType, const MHRandomWalkType &) const |
template<typename MHRWParamsType , typename MHWalker , typename CountIntType , typename MHRandomWalkType , int I = 0, ENABLED_IF( I< NumControllers) > | |
bool | allowDoneThermalization (const MHRWParamsType ¶ms, const MHWalker &mhwalker, CountIntType iter_k, const MHRandomWalkType &mhrw) |
template<typename MHRWParamsType , typename MHWalker , typename CountIntType , typename MHRandomWalkType , int I = 0, ENABLED_IF( I==NumControllers) > | |
bool | allowDoneThermalization (const MHRWParamsType &, const MHWalker &, CountIntType, const MHRandomWalkType &) const |
template<typename MHRWParamsType , typename MHWalker , typename CountIntType , typename MHRandomWalkType , int I = 0, ENABLED_IF( I< NumControllers) > | |
bool | allowDoneRuns (const MHRWParamsType ¶ms, const MHWalker &mhwalker, CountIntType iter_k, const MHRandomWalkType &mhrw) |
template<typename MHRWParamsType , typename MHWalker , typename CountIntType , typename MHRandomWalkType , int I = 0, ENABLED_IF( I==NumControllers) > | |
bool | allowDoneRuns (const MHRWParamsType &, const MHWalker &, CountIntType, const MHRandomWalkType &) const |
Static Public Attributes | |
static constexpr int | NumControllers = sizeof...(MHRWControllerTypes) |
A MHRWController Interface which combines several independent random walk controllers.
The random walk controllers must be compatible. Two controllers A and B are compatible if they perform adjustments at different stages of the random walk (e.g., one during thermalization and the other during the live runs) as given by their AdjustmentStrategy flags.
The allowDoneRuns() and allowDoneThermalization() callbacks do not affect whether controllers are compatible. The thermalization runs end only after all the controllers' allowDoneThermalization() callbacks return true, and similarly the live runs end only after all the controllers' allowDoneRuns() callbacks return true.