49 #ifndef INTREPID_ORTHOGONALBASES_HPP 
   50 #define INTREPID_ORTHGONALBASES_HPP 
   52 #include "Intrepid_ConfigDefs.hpp" 
   55 #include "Teuchos_Array.hpp" 
   56 #include "Teuchos_RCP.hpp" 
   57 #include "Teuchos_BLAS.hpp" 
   58 #include "Teuchos_oblackholestream.hpp" 
   59 #include "Teuchos_Assert.hpp" 
   97     template<
class Scalar, 
class ScalarArray1, 
class ScalarArray2>
 
  100                                   ScalarArray2 & poly_val );
 
  114     template<
class Scalar, 
class ScalarArray1, 
class ScalarArray2>
 
  117                                     ScalarArray2 & poly_val );
 
  126     template<
class Scalar>
 
  127     static void jrc( 
const Scalar &alpha , 
const Scalar &beta , 
const int &n ,
 
  128                     Scalar &an , Scalar &bn, Scalar &cn );
 
  134       return (p+q)*(p+q+1)/2+q;
 
  139     static inline int idxtet(
int p, 
int q, 
int r)
 
  141       return (p+q+r)*(p+q+r+1)*(p+q+r+2)/6+(q+r)*(q+r+1)/2+r;
 
  148 #include "Intrepid_OrthogonalBasesDef.hpp" 
static int idxtet(int p, int q, int r)
Given indices p,q,r, computes the linear index of the tetrahedral polynomial D^{p,q,r}. 
static void tabulateTriangle(const ScalarArray1 &z, const int n, ScalarArray2 &poly_val)
Calculates triangular orthogonal expansions (e.g. Dubiner basis) at a range of input points...
Contains definitions of custom data types in Intrepid. 
static int idxtri(int p, int q)
Given indices p,q, computes the linear index of the Dubiner polynomial D^{p,q}. 
static void tabulateTetrahedron(const ScalarArray1 &z, const int n, ScalarArray2 &poly_val)
Calculates triangular orthogonal expansions (e.g. Dubiner basis) at a range of input points...
static void jrc(const Scalar &alpha, const Scalar &beta, const int &n, Scalar &an, Scalar &bn, Scalar &cn)
computes Jacobi recurrence coefficients of order n with weights a,b so that P^{alpha,beta}_{n+1}(x) = (an x + bn) P^{alpha,beta}_n(x) - cn P^{alpha,beta}_{n-1}(x)