42#ifndef STOKHOS_ORTHOGPOLYEXPANSIONBASE_HPP
43#define STOKHOS_ORTHOGPOLYEXPANSIONBASE_HPP
48#include "Teuchos_RCP.hpp"
49#include "Teuchos_ParameterList.hpp"
58 template <
typename ordinal_type,
typename value_type,
typename node_type>
67 const Teuchos::RCP<Teuchos::ParameterList>&
params = Teuchos::null);
73 ordinal_type
size()
const {
return sz; }
76 Teuchos::RCP< const OrthogPolyBasis<ordinal_type, value_type> >
80 virtual Teuchos::RCP<const Sparse3Tensor<ordinal_type, value_type> >
122 const value_type& b);
131 const value_type& b);
140 const value_type& b);
149 const value_type& b);
164 const value_type& b);
173 const value_type& b);
186 Teuchos::RCP<const OrthogPolyBasis<ordinal_type, value_type> >
basis;
192 Teuchos::RCP<const Stokhos::Sparse3Tensor<ordinal_type, value_type> >
Cijk;
195 Teuchos::RCP<Teuchos::ParameterList>
params;
198 Teuchos::RCP<Stokhos::DivisionExpansionStrategy<ordinal_type,value_type,node_type> >
division_strategy;
Class to store coefficients of a projection onto an orthogonal polynomial basis.
Abstract base class for multivariate orthogonal polynomials.
Base class for consolidating common expansion implementations.
Teuchos::RCP< const Stokhos::Sparse3Tensor< ordinal_type, value_type > > Cijk
Triple-product tensor.
void minusEqual(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const value_type &x)
void max(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a, const OrthogPolyApprox< ordinal_type, value_type, node_type > &b)
virtual Teuchos::RCP< const Sparse3Tensor< ordinal_type, value_type > > getTripleProduct() const
Get triple product.
OrthogPolyExpansionBase(const Teuchos::RCP< const OrthogPolyBasis< ordinal_type, value_type > > &basis, const Teuchos::RCP< const Stokhos::Sparse3Tensor< ordinal_type, value_type > > &Cijk, const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
Constructor.
void plus(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a, const OrthogPolyApprox< ordinal_type, value_type, node_type > &b)
ordinal_type sz
Expansions size.
void timesEqual(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const value_type &x)
Teuchos::RCP< Teuchos::ParameterList > params
Parameter list.
void unaryMinus(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
void divideEqual(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const value_type &x)
OrthogPolyExpansionBase(const OrthogPolyExpansionBase &)
void divide(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a, const OrthogPolyApprox< ordinal_type, value_type, node_type > &b)
OrthogPolyExpansionBase & operator=(const OrthogPolyExpansionBase &b)
void minus(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a, const OrthogPolyApprox< ordinal_type, value_type, node_type > &b)
Teuchos::RCP< const OrthogPolyBasis< ordinal_type, value_type > > basis
Basis.
Teuchos::RCP< Stokhos::DivisionExpansionStrategy< ordinal_type, value_type, node_type > > division_strategy
Division expansion strategy.
void min(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a, const OrthogPolyApprox< ordinal_type, value_type, node_type > &b)
ordinal_type size() const
Get expansion size.
Stokhos::Sparse3Tensor< ordinal_type, value_type > Cijk_type
Short-hand for Cijk.
void times(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a, const OrthogPolyApprox< ordinal_type, value_type, node_type > &b)
void plusEqual(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const value_type &x)
Teuchos::RCP< const OrthogPolyBasis< ordinal_type, value_type > > getBasis() const
Get basis.
virtual ~OrthogPolyExpansionBase()
Destructor.
Abstract base class for orthogonal polynomial-based expansions.
Data structure storing a sparse 3-tensor C(i,j,k) in a a compressed format.
Top-level namespace for Stokhos classes and functions.