8 if((derivOrder > polyOrder) || (polyOrder==0))
11 double c = std::tgamma(
a+
b+polyOrder+1+derivOrder) / (std::pow(2.0, derivOrder) * std::tgamma(
a+
b+polyOrder+1));
13 return c *
Jacobi(
a + derivOrder,
b+derivOrder).BasisEvaluate(polyOrder-derivOrder, x);
18 const double den = 2.0*polyOrder*(polyOrder +
a +
b);
20 return (2.0*polyOrder+
a+
b-1)*(2.0*polyOrder+
a+
b)/den;
23 const double den = 2.0*polyOrder*(polyOrder +
a +
b)*(2.0*polyOrder +
a +
b - 2.0);
24 return (
a*
a-
b*
b) * (2.0*polyOrder +
a +
b - 1.0) / den;
27 const double den = polyOrder*(polyOrder +
a +
b)*(2.0*polyOrder +
a +
b - 2.0);
28 return (polyOrder +
a-1.0)*(polyOrder +
b-1.0)*(2.0*polyOrder +
a +
b) / den;
37 return (0.5*(
a+
b)+1.0)*x + 0.5*(
a-
b);
41 return (std::pow(2.0,
a+
b+1) / (2*polyOrder +
a +
b +1)) * std::tgamma(polyOrder+
a+1)*std::tgamma(polyOrder+
b+1)/(std::tgamma(polyOrder+
a+
b+1) * std::tgamma(polyOrder + 1));
45 REGISTER_SCALARBASIS_FAMILY(
Jacobi)
Family of Jacobi orthogonal polynomials.
virtual double ck(unsigned int k) const override
Implement .
virtual double ak(unsigned int k) const override
Implement .
virtual double phi1(double x) const override
Implement .
virtual double phi0(double x) const override
Implement .
virtual double Normalization(unsigned int polyOrder) const override
virtual double bk(unsigned int k) const override
Implement .
virtual double DerivativeEvaluate(int const polyOrder, int const derivOrder, double const x) const override
Jacobi(const double aIn=1.0, const double bIn=1.0)