7 #ifndef __NODAL_BASIS__
8 #define __NODAL_BASIS__
15 ROL::Ptr<Teuchos::LAPACK<int,Real> >
lapack_;
23 NodalBasis(ROL::Ptr<Teuchos::LAPACK<int,Real> > lapack,
const int ni,
const int nq);
27 std::vector<Real>
xi_;
30 std::vector<Real>
xq_;
33 std::vector<Real>
wq_;
37 std::vector<Real>
Lp_;
49 lapack_(lapack), ni_(ni), nq_(nq), xi_(ni_,0), xq_(nq_,0), wq_(nq_,0), L_(ni_*nq_,0), Lp_(ni_*nq_,0)
53 std::vector<Real> ai(
ni_,0);
54 std::vector<Real> bi(
ni_,0);
55 std::vector<Real> wi(
ni_,0);
61 std::vector<Real> aq(
nq_,0);
62 std::vector<Real> bq(
nq_,0);
66 std::vector<Real> e(
ni_,0);
67 std::vector<Real> ell(nq,0);
72 for(
int i=0;i<
ni_;++i) {
76 std::copy(ell.begin(),ell.end(),
L_.begin()+i*
nq_);
80 std::copy(ell.begin(),ell.end(),
Lp_.begin()+i*
nq_);
83 std::fill(e.begin(),e.end(),0);
void rec_lobatto(ROL::Ptr< Teuchos::LAPACK< int, Real > > const lapack, const double xl1, const double xl2, std::vector< Real > &a, std::vector< Real > &b)
Modify the given recurrence coefficients so that the set of zeros of the maximal order polynomial inc...
ROL::Ptr< Teuchos::LAPACK< int, Real > > lapack_
NodalBasis(ROL::Ptr< Teuchos::LAPACK< int, Real > > lapack, const int ni, const int nq)
Set up quantities we will need repeatedly.
ROL::Ptr< Lagrange< Real > > lagrange_
Object for working with Lagrange polynomials and their derivatives.
void gauss(ROL::Ptr< Teuchos::LAPACK< int, Real > > lapack, const std::vector< Real > &a, const std::vector< Real > &b, std::vector< Real > &x, std::vector< Real > &w)
Compute the Gauss quadrature nodes and weights for the polynomials generated by the recurrence coeffi...
void rec_jacobi(ROL::Ptr< Teuchos::LAPACK< int, Real > > lapack, const double alpha, const double beta, std::vector< Real > &a, std::vector< Real > &b)
Generate the Jacobi polynomial recursion coeffcients .