MUQ  0.4.3
Laguerre.cpp
Go to the documentation of this file.
2 
3 using namespace muq::Approximation;
4 
5 
6 double Laguerre::DerivativeEvaluate(int const polyOrder, int const derivOrder, double const x) const {
7 
8  if((derivOrder > polyOrder) || (polyOrder==0))
9  return 0.0;
10 
11  double c = (derivOrder%2==0) ? 1.0 : -1.0;
12 
13  return c * Laguerre(a + derivOrder).BasisEvaluate(polyOrder-derivOrder,x);
14 }
15 
16 double Laguerre::ak(unsigned int k) const{
17  return -1.0/double(k);
18 }
19 double Laguerre::bk(unsigned int k) const{
20  return (2.0*k+a-1.0)/double(k);
21 }
22 double Laguerre::ck(unsigned int k) const{
23  return (k-1.0+a)/double(k);
24 }
25 
26 double Laguerre::phi0(double x) const {
27  return 1.0;
28 }
29 
30 double Laguerre::phi1(double x) const {
31  return 1.0 + a - x;
32 }
33 
34 double Laguerre::Normalization(unsigned int polyOrder) const {
35  return std::tgamma(polyOrder+a+1.0) / std::tgamma(polyOrder+1);
36 }
37 
38 
39 REGISTER_SCALARBASIS_FAMILY(Laguerre)
Family of Laguerre orthogonal polynomials.
Definition: Laguerre.h:13
virtual double ak(unsigned int k) const override
Implement .
Definition: Laguerre.cpp:16
virtual double bk(unsigned int k) const override
Implement .
Definition: Laguerre.cpp:19
virtual double phi1(double x) const override
Implement .
Definition: Laguerre.cpp:30
Laguerre(const double aIn=0.0)
Definition: Laguerre.h:19
virtual double Normalization(unsigned int polyOrder) const override
Definition: Laguerre.cpp:34
virtual double phi0(double x) const override
Implement .
Definition: Laguerre.cpp:26
virtual double ck(unsigned int k) const override
Implement .
Definition: Laguerre.cpp:22
virtual double DerivativeEvaluate(int const polyOrder, int const derivOrder, double const x) const override
Definition: Laguerre.cpp:6