1 #ifndef ORTHOGONALPOLYNOMIAL_H_
2 #define ORTHOGONALPOLYNOMIAL_H_
10 namespace Approximation {
12 class GaussQuadrature;
40 static std::shared_ptr<OrthogonalPolynomial>
Construct(std::string
const& polyName);
53 virtual double BasisEvaluate(
int const order,
double const x)
const override;
56 double const x)
const override;
77 virtual double ak(
unsigned int k)
const = 0;
83 virtual double bk(
unsigned int k)
const = 0;
89 virtual double ck(
unsigned int k)
const = 0;
95 virtual double phi0(
double x)
const = 0;
101 virtual double phi1(
double x)
const = 0;
Class for computing Gauss Quadrature rules from an orthogonal polynomial family.
A 1D orthogonal polynomial.
virtual double Normalization(unsigned int polyOrder) const
virtual ~OrthogonalPolynomial()=default
virtual double BasisEvaluate(int const order, double const x) const override
Evaluate the specific polynomial type (must be implemented by the child)
OrthogonalPolynomial()
Create a polynomial.
virtual double phi1(double x) const =0
Implement .
static std::shared_ptr< OrthogonalPolynomial > Construct(std::string const &polyName)
virtual double phi0(double x) const =0
Implement .
virtual double ak(unsigned int k) const =0
Implement .
virtual double ck(unsigned int k) const =0
Implement .
virtual double bk(unsigned int k) const =0
Implement .
virtual Eigen::VectorXd EvaluateAllTerms(int const maxOrder, double const x) const override
Evaluates all basis functions with order <= maxOrder.