1 #ifndef NPSTAT_CLASSICALORTHOPOLY1DFROMWEIGHT_HH_
2 #define NPSTAT_CLASSICALORTHOPOLY1DFROMWEIGHT_HH_
18 #include "npstat/nm/Recurrence.hh"
22 template <
class Functor1D>
45 const unsigned maxDegree,
const unsigned nIntegPoints,
46 const long double i_xmin,
const long double i_xmax,
48 const bool useFejerQuadrature =
true)
49 : fcn_(fcn), xmin_(i_xmin), xmax_(i_xmax), maxdeg_(
maxDegree)
51 initialize(nIntegPoints, m, useFejerQuadrature);
59 inline virtual long double weight(
const long double x)
const
60 {
return fcn_(x)/wsum_;}
61 inline virtual double xmin()
const {
return xmin_;}
62 inline virtual double xmax()
const {
return xmax_;}
63 inline virtual unsigned maxDegree()
const {
return maxdeg_;}
65 inline virtual std::pair<long double,long double>
66 monicRecurrenceCoeffs(
const unsigned deg)
const
69 return std::pair<long double,long double>(r.alpha, r.beta);
72 inline virtual std::pair<long double,long double>
73 recurrenceCoeffs(
const unsigned deg)
const
75 const Private::Recurrence& r = rCoeffs_.at(deg);
76 return std::pair<long double,long double>(r.alpha, r.sqrbeta);
81 bool useFejerQuadrature);
83 template<
class Quad1D>
87 std::vector<Private::Recurrence> rCoeffs_;
97 const unsigned maxDegree,
const unsigned nIntegPoints,
98 const double i_xmin,
const double i_xmax,
100 const bool useFejerQuadrature =
true)
101 : fcn_(fcn), xmin_(i_xmin), xmax_(i_xmax), maxdeg_(
maxDegree)
103 initialize(nIntegPoints, m, useFejerQuadrature);
109 #include "npstat/nm/ClassicalOrthoPoly1DFromWeight.icc"
Base class for classical continuous orthonormal polynomials.
Enumeration of methods used to create orthogonal polynomials with discrete weights.
Definition: AbsClassicalOrthoPoly1D.hh:32
Definition: ClassicalOrthoPoly1DFromWeight.hh:24
ClassicalOrthoPoly1DFromWeight(const Functor1D &fcn, const unsigned maxDegree, const unsigned nIntegPoints, const long double i_xmin, const long double i_xmax, const OrthoPolyMethod m=OPOLY_STIELTJES, const bool useFejerQuadrature=true)
Definition: ClassicalOrthoPoly1DFromWeight.hh:43
virtual ClassicalOrthoPoly1DFromWeight * clone() const
Definition: ClassicalOrthoPoly1DFromWeight.hh:56
virtual double xmin() const
Definition: ClassicalOrthoPoly1DFromWeight.hh:61
virtual unsigned maxDegree() const
Definition: ClassicalOrthoPoly1DFromWeight.hh:63
virtual long double weight(const long double x) const
Definition: ClassicalOrthoPoly1DFromWeight.hh:59
Definition: AbsArrayProjector.hh:14
OrthoPolyMethod
Definition: OrthoPolyMethod.hh:20
Definition: Recurrence.hh:22