Stokhos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Stokhos_OrthogPolyExpansionBase.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Stokhos Package
4 //
5 // Copyright 2009 NTESS and the Stokhos contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef STOKHOS_ORTHOGPOLYEXPANSIONBASE_HPP
11 #define STOKHOS_ORTHOGPOLYEXPANSIONBASE_HPP
12 
15 
16 #include "Teuchos_RCP.hpp"
18 
19 namespace Stokhos {
20 
22 
26  template <typename ordinal_type, typename value_type, typename node_type>
28  public OrthogPolyExpansion<ordinal_type, value_type, node_type> {
29  public:
30 
36 
39 
41  ordinal_type size() const { return sz; }
42 
45  getBasis() const {return basis; }
46 
49  getTripleProduct() const { return Cijk; }
50 
51  // Operations
52  void unaryMinus(
55 
56  void plusEqual(
58  const value_type& x);
59  void minusEqual(
61  const value_type& x);
62  void timesEqual(
64  const value_type& x);
65  void divideEqual(
67  const value_type& x);
68 
69  void plusEqual(
72  void minusEqual(
75  void timesEqual(
78  void divideEqual(
81 
86  const value_type& a,
90  const value_type& b);
95  const value_type& a,
99  const value_type& b);
104  const value_type& a,
108  const value_type& b);
113  const value_type& a,
117  const value_type& b);
118 
119 
128  const value_type& a,
132  const value_type& b);
137  const value_type& a,
141  const value_type& b);
142 
143  private:
144 
145  // Prohibit copying
147 
148  // Prohibit Assignment
150 
151  protected:
152 
155 
158 
161 
164 
167 
170 
171  }; // class OrthogPolyExpansionBase
172 
173 } // namespace Stokhos
174 
176 
177 #endif // STOKHOS_ORTHOGPOLYEXPANSIONBASE_HPP
void divideEqual(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const value_type &x)
Teuchos::RCP< const OrthogPolyBasis< ordinal_type, value_type > > basis
Basis.
Teuchos::RCP< Teuchos::ParameterList > params
Parameter list.
void minusEqual(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const value_type &x)
OrthogPolyExpansionBase & operator=(const OrthogPolyExpansionBase &b)
Data structure storing a sparse 3-tensor C(i,j,k) in a a compressed format.
Teuchos::RCP< const OrthogPolyBasis< ordinal_type, value_type > > getBasis() const
Get basis.
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)
ordinal_type size() const
Get expansion size.
Teuchos::RCP< Stokhos::DivisionExpansionStrategy< ordinal_type, value_type, node_type > > division_strategy
Division expansion strategy.
Base class for consolidating common expansion implementations.
void timesEqual(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)
void plusEqual(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const value_type &x)
virtual Teuchos::RCP< const Sparse3Tensor< ordinal_type, value_type > > getTripleProduct() const
Get triple product.
Abstract base class for orthogonal polynomial-based expansions.
Abstract base class for multivariate orthogonal polynomials.
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)
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)
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)
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)
Class to store coefficients of a projection onto an orthogonal polynomial basis.
void abs(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
Teuchos::RCP< const Stokhos::Sparse3Tensor< ordinal_type, value_type > > Cijk
Triple-product tensor.
Stokhos::Sparse3Tensor< ordinal_type, value_type > Cijk_type
Short-hand for Cijk.
void unaryMinus(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
void fabs(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
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 > &params=Teuchos::null)
Constructor.