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)