95 #ifndef INTREPID_POLYLIB_HPP 
   96 #define INTREPID_POLYLIB_HPP 
   98 #include "Intrepid_ConfigDefs.hpp" 
  100 #include "Teuchos_Assert.hpp" 
  197   enum EIntrepidPLPoly {
 
  200     PL_GAUSS_RADAU_RIGHT,
 
  205   inline EIntrepidPLPoly & operator++(EIntrepidPLPoly &type) {
 
  206     return type = 
static_cast<EIntrepidPLPoly
>(type+1);
 
  209   inline EIntrepidPLPoly operator++(EIntrepidPLPoly &type, 
int) {
 
  210     EIntrepidPLPoly oldval = type;
 
  236     template<
class Scalar>
 
  237     static void   zwgj   (Scalar *z, Scalar *w, 
const int np, 
const Scalar alpha, 
const Scalar beta);
 
  247     template<
class Scalar>
 
  248     static void   zwgrjm (Scalar *z, Scalar *w, 
const int np, 
const Scalar alpha, 
const Scalar beta);
 
  258     template<
class Scalar>
 
  259     static void   zwgrjp (Scalar *z, Scalar *w, 
const int np, 
const Scalar alpha, 
const Scalar beta);
 
  269     template<
class Scalar>
 
  270     static void   zwglj  (Scalar *z, Scalar *w, 
const int np, 
const Scalar alpha, 
const Scalar beta);
 
  284     template<
class Scalar>
 
  285     static void   Dgj    (Scalar *D,  
const Scalar *z, 
const int np, 
const Scalar alpha, 
const Scalar beta);
 
  296     template<
class Scalar>
 
  297     static void   Dgrjm  (Scalar *D, 
const Scalar *z, 
const int np, 
const Scalar alpha, 
const Scalar beta);
 
  308     template<
class Scalar>
 
  309     static void   Dgrjp  (Scalar *D, 
const Scalar *z, 
const int np, 
const Scalar alpha, 
const Scalar beta);
 
  320     template<
class Scalar>
 
  321     static void   Dglj   (Scalar *D, 
const Scalar *z, 
const int np, 
const Scalar alpha, 
const Scalar beta);
 
  346     template<
class Scalar>
 
  347     static Scalar 
hgj     (
const int i, 
const Scalar z, 
const Scalar *zgj,
 
  348                            const int np, 
const Scalar alpha, 
const Scalar beta);
 
  370     template<
class Scalar>
 
  371     static Scalar 
hgrjm   (
const int i, 
const Scalar z, 
const Scalar *zgrj,
 
  372                            const int np, 
const Scalar alpha, 
const Scalar beta);
 
  394     template<
class Scalar>
 
  395     static Scalar 
hgrjp   (
const int i, 
const Scalar z, 
const Scalar *zgrj,
 
  396                            const int np, 
const Scalar alpha, 
const Scalar beta);
 
  418     template<
class Scalar>
 
  419     static Scalar 
hglj    (
const int i, 
const Scalar z, 
const Scalar *zglj,
 
  420                            const int np, 
const Scalar alpha, 
const Scalar beta);
 
  436     template<
class Scalar>
 
  437     static void  Imgj  (Scalar *im, 
const Scalar *zgj, 
const Scalar *zm, 
const int nz,
 
  438                         const int mz, 
const Scalar alpha, 
const Scalar beta);
 
  451     template<
class Scalar>
 
  452     static void  Imgrjm(Scalar *im, 
const Scalar *zgrj, 
const Scalar *zm, 
const int nz,
 
  453                         const int mz, 
const Scalar alpha, 
const Scalar beta);
 
  466     template<
class Scalar>
 
  467     static void  Imgrjp(Scalar *im, 
const Scalar *zgrj, 
const Scalar *zm, 
const int nz,
 
  468                         const int mz, 
const Scalar alpha, 
const Scalar beta);
 
  481     template<
class Scalar>
 
  482     static void  Imglj (Scalar *im, 
const Scalar *zglj, 
const Scalar *zm, 
const int nz,
 
  483                         const int mz, 
const Scalar alpha, 
const Scalar beta);
 
  527     template<
class Scalar>
 
  528     static void jacobfd (
const int np, 
const Scalar *z, Scalar *poly_in, Scalar *polyd,
 
  529                          const int n, 
const Scalar alpha, 
const Scalar beta);
 
  545     template<
class Scalar>
 
  546     static void jacobd  (
const int np, 
const Scalar *z, Scalar *polyd, 
const int n,
 
  547                          const Scalar alpha, 
const Scalar beta);
 
  559     template<
class Scalar>
 
  560     static void   Jacobz (
const int n, Scalar *z, 
const Scalar alpha, 
const Scalar beta);
 
  585     template<
class Scalar>
 
  586     static void   JacZeros (
const int n, Scalar *a, 
const Scalar alpha, 
const Scalar beta);
 
  612     template<
class Scalar>
 
  613     static void   TriQL    (
const int n, Scalar *d, Scalar *e);
 
  625     template<
class Scalar>
 
  626     static Scalar 
gammaF (
const Scalar x);
 
static void Dgrjm(Scalar *D, const Scalar *z, const int np, const Scalar alpha, const Scalar beta)
Compute the Derivative Matrix and its transpose associated with the Gauss-Radau-Jacobi zeros with a z...
static void Imgj(Scalar *im, const Scalar *zgj, const Scalar *zm, const int nz, const int mz, const Scalar alpha, const Scalar beta)
Interpolation Operator from Gauss-Jacobi points to an arbitrary distribution at points zm...
static Scalar hgrjp(const int i, const Scalar z, const Scalar *zgrj, const int np, const Scalar alpha, const Scalar beta)
Compute the value of the i th Lagrangian interpolant through the np Gauss-Radau-Jacobi points zgrj at...
static void zwgrjp(Scalar *z, Scalar *w, const int np, const Scalar alpha, const Scalar beta)
Gauss-Radau-Jacobi zeros and weights with end point at z=1. 
static void TriQL(const int n, Scalar *d, Scalar *e)
QL algorithm for symmetric tridiagonal matrix. 
static Scalar hglj(const int i, const Scalar z, const Scalar *zglj, const int np, const Scalar alpha, const Scalar beta)
Compute the value of the i th Lagrangian interpolant through the np Gauss-Lobatto-Jacobi points zglj ...
Contains definitions of custom data types in Intrepid. 
static void zwglj(Scalar *z, Scalar *w, const int np, const Scalar alpha, const Scalar beta)
Gauss-Lobatto-Jacobi zeros and weights with end point at z=-1,1. 
static Scalar hgj(const int i, const Scalar z, const Scalar *zgj, const int np, const Scalar alpha, const Scalar beta)
Compute the value of the i th Lagrangian interpolant through the np Gauss-Jacobi points zgj at the ar...
Definition file for a set of functions providing orthogonal polynomial polynomial calculus and interp...
Providing orthogonal polynomial calculus and interpolation, created by Spencer Sherwin, Aeronautics, Imperial College London, modified and redistributed by D. Ridzal. 
static void zwgrjm(Scalar *z, Scalar *w, const int np, const Scalar alpha, const Scalar beta)
Gauss-Radau-Jacobi zeros and weights with end point at z=-1. 
static Scalar hgrjm(const int i, const Scalar z, const Scalar *zgrj, const int np, const Scalar alpha, const Scalar beta)
Compute the value of the i th Lagrangian interpolant through the np Gauss-Radau-Jacobi points zgrj at...
static void JacZeros(const int n, Scalar *a, const Scalar alpha, const Scalar beta)
Zero determination through the eigenvalues of a tridiagonal matrix from the three term recursion rela...
static void jacobd(const int np, const Scalar *z, Scalar *polyd, const int n, const Scalar alpha, const Scalar beta)
Calculate the derivative of Jacobi polynomials. 
static void Dgrjp(Scalar *D, const Scalar *z, const int np, const Scalar alpha, const Scalar beta)
Compute the Derivative Matrix associated with the Gauss-Radau-Jacobi zeros with a zero at z=1...
static void Imgrjm(Scalar *im, const Scalar *zgrj, const Scalar *zm, const int nz, const int mz, const Scalar alpha, const Scalar beta)
Interpolation Operator from Gauss-Radau-Jacobi points (including z=-1) to an arbitrary distrubtion at...
static void jacobfd(const int np, const Scalar *z, Scalar *poly_in, Scalar *polyd, const int n, const Scalar alpha, const Scalar beta)
Routine to calculate Jacobi polynomials, , and their first derivative, . 
static void Jacobz(const int n, Scalar *z, const Scalar alpha, const Scalar beta)
Calculate the n zeros, z, of the Jacobi polynomial, i.e. . 
static void Dgj(Scalar *D, const Scalar *z, const int np, const Scalar alpha, const Scalar beta)
Compute the Derivative Matrix and its transpose associated with the Gauss-Jacobi zeros. 
static void Dglj(Scalar *D, const Scalar *z, const int np, const Scalar alpha, const Scalar beta)
Compute the Derivative Matrix associated with the Gauss-Lobatto-Jacobi zeros. 
static void zwgj(Scalar *z, Scalar *w, const int np, const Scalar alpha, const Scalar beta)
Gauss-Jacobi zeros and weights. 
static void Imglj(Scalar *im, const Scalar *zglj, const Scalar *zm, const int nz, const int mz, const Scalar alpha, const Scalar beta)
Interpolation Operator from Gauss-Lobatto-Jacobi points to an arbitrary distrubtion at points zm...
static Scalar gammaF(const Scalar x)
Calculate the Gamma function , , for integer values x and halves. 
static void Imgrjp(Scalar *im, const Scalar *zgrj, const Scalar *zm, const int nz, const int mz, const Scalar alpha, const Scalar beta)
Interpolation Operator from Gauss-Radau-Jacobi points (including z=1) to an arbitrary distrubtion at ...