1 #ifndef INDEXEDSCALARBASIS_H_ 
    2 #define INDEXEDSCALARBASIS_H_ 
   11   namespace Approximation {
 
   31       static std::shared_ptr<IndexedScalarBasis> 
Construct(std::string 
const& polyName);
 
   45                                    double const x) 
const = 0;
 
   52         Eigen::VectorXd output(maxOrder+1);
 
   53         for(
int i=0; i<=maxOrder; ++i)
 
   66                                         double const x) 
const = 0;
 
   80 #define REGISTER_SCALARBASIS_FAMILY(NAME) static auto regScalarBasis ##NAME     \ 
   81     = muq::Approximation::IndexedScalarBasis::GetScalarBasisMap()->insert(std::make_pair(#NAME, muq::Utilities::shared_factory<NAME>())); 
virtual void EvaluateImpl(muq::Modeling::ref_vector< boost::any > const &inputs)
Evaluate the polynomial at a given point and order.
 
virtual ~IndexedScalarBasis()=default
 
static std::shared_ptr< IndexedScalarBasis > Construct(std::string const &polyName)
 
virtual double DerivativeEvaluate(int const polyOrder, int const derivOrder, double const x) const =0
 
virtual Eigen::VectorXd EvaluateAllTerms(int const maxOrder, double const x) const
Evaluates all basis functions with order <= maxOrder.
 
IndexedScalarBasis()
Create a basis function.
 
virtual double BasisEvaluate(int const order, double const x) const =0
Evaluate the specific basis type (must be implemented by the child)
 
std::function< std::shared_ptr< IndexedScalarBasis >)> ScalarBasisConstructorType
 
static std::shared_ptr< ScalarBasisMapType > GetScalarBasisMap()
 
std::map< std::string, ScalarBasisConstructorType > ScalarBasisMapType
 
Base class for MUQ's modelling envronment.
 
std::vector< std::reference_wrapper< const T > > ref_vector
A vector of references to something ...