25 #ifndef QUESO_ALGORITHM_FACTORY_H
26 #define QUESO_ALGORITHM_FACTORY_H
28 #include <queso/Factory.h>
29 #include <queso/GslVector.h>
30 #include <queso/GslMatrix.h>
31 #include <queso/VectorSpace.h>
32 #include <queso/Algorithm.h>
85 queso_require_msg(
m_env,
"ERROR: must call set_environment() before building alg!");
86 queso_require_msg(
m_tk,
"ERROR: must call set_tk() before building alg!");
90 queso_assert(new_alg);
100 template <
class DerivedAlgorithm>
114 new_alg.reset(
new DerivedAlgorithm(*(this->
m_env), *(this->
m_tk)));
122 #endif // QUESO_ALGORITHM_FACTORY_H
virtual SharedPtr< Algorithm< GslVector, GslMatrix > >::Type create()
This (virtual) class sets up the environment underlying the use of the QUESO library by an executable...
virtual ~AlgorithmFactory()
static void set_tk(const BaseTKGroup< GslVector, GslMatrix > &tk)
AlgorithmFactoryImp(const std::string &name)
static const BaseTKGroup< GslVector, GslMatrix > * m_tk
virtual SharedPtr< Algorithm< GslVector, GslMatrix > >::Type build_algorithm()
Class for matrix operations using GSL library.
virtual SharedPtr< Algorithm< GslVector, GslMatrix > >::Type build_algorithm()=0
AlgorithmFactory(const std::string &name)
virtual ~AlgorithmFactoryImp()
Class for vector operations using GSL library.
This base class allows the representation of a transition kernel.
static void set_environment(const BaseEnvironment &env)
static const BaseEnvironment * m_env