Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Stokhos_AlgebraicOrthogPolyExpansion.hpp
Go to the documentation of this file.
1
// $Id$
2
// $Source$
3
// @HEADER
4
// ***********************************************************************
5
//
6
// Stokhos Package
7
// Copyright (2009) Sandia Corporation
8
//
9
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
10
// license for use of this work by or on behalf of the U.S. Government.
11
//
12
// Redistribution and use in source and binary forms, with or without
13
// modification, are permitted provided that the following conditions are
14
// met:
15
//
16
// 1. Redistributions of source code must retain the above copyright
17
// notice, this list of conditions and the following disclaimer.
18
//
19
// 2. Redistributions in binary form must reproduce the above copyright
20
// notice, this list of conditions and the following disclaimer in the
21
// documentation and/or other materials provided with the distribution.
22
//
23
// 3. Neither the name of the Corporation nor the names of the
24
// contributors may be used to endorse or promote products derived from
25
// this software without specific prior written permission.
26
//
27
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
28
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
30
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
31
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
32
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
33
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
34
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
35
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
36
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
37
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38
//
39
// Questions? Contact Eric T. Phipps (etphipp@sandia.gov).
40
//
41
// ***********************************************************************
42
// @HEADER
43
44
#ifndef STOKHOS_ALGEBRAICORTHOGPOLYEXPANSION_HPP
45
#define STOKHOS_ALGEBRAICORTHOGPOLYEXPANSION_HPP
46
47
#include "
Stokhos_OrthogPolyExpansionBase.hpp
"
48
49
#include "Teuchos_RCP.hpp"
50
51
namespace
Stokhos
{
52
54
61
template
<
typename
ordinal_type,
typename
value_type>
62
class
AlgebraicOrthogPolyExpansion
:
63
public
OrthogPolyExpansionBase
<ordinal_type, value_type,
64
Stokhos::StandardStorage<ordinal_type, value_type> > {
65
public
:
66
67
typedef
Stokhos::StandardStorage<ordinal_type, value_type>
node_type
;
68
70
AlgebraicOrthogPolyExpansion
(
71
const
Teuchos::RCP<
const
OrthogPolyBasis<ordinal_type, value_type>
>&
basis
,
72
const
Teuchos::RCP<
const
Stokhos::Sparse3Tensor<ordinal_type, value_type>
>&
Cijk
,
73
const
Teuchos::RCP<Teuchos::ParameterList>&
params
= Teuchos::null);
74
76
virtual
~AlgebraicOrthogPolyExpansion
() {}
77
78
// Operations
79
void
exp
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
80
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
81
void
log
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
82
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
83
void
log10
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
84
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
85
void
sqrt
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
86
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
87
void
cbrt
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
88
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
89
void
pow
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
90
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a,
91
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& b);
92
void
pow
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
93
const
value_type
& a,
94
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& b);
95
void
pow
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
96
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a,
97
const
value_type
& b);
98
void
cos
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
99
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
100
void
sin
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
101
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
102
void
tan
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
103
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
104
void
cosh
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
105
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
106
void
sinh
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
107
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
108
void
tanh
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
109
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
110
void
acos
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
111
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
112
void
asin
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
113
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
114
void
atan
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
115
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
116
void
atan2
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
117
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a,
118
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& b);
119
void
atan2
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
120
const
value_type
& a,
121
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& b);
122
void
atan2
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
123
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a,
124
const
value_type
& b);
125
void
acosh
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
126
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
127
void
asinh
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
128
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
129
void
atanh
(
OrthogPolyApprox<ordinal_type, value_type, node_type>
& c,
130
const
OrthogPolyApprox<ordinal_type, value_type, node_type>
& a);
131
132
private
:
133
134
// Prohibit copying
135
AlgebraicOrthogPolyExpansion
(
const
AlgebraicOrthogPolyExpansion
&);
136
137
// Prohibit Assignment
138
AlgebraicOrthogPolyExpansion
&
operator=
(
const
AlgebraicOrthogPolyExpansion
& b);
139
140
protected
:
141
143
typedef
typename
OrthogPolyExpansionBase<ordinal_type, value_type, node_type>::Cijk_type
Cijk_type
;
144
145
};
// class AlgebraicOrthogPolyExpansion
146
147
}
// namespace Stokhos
148
149
#include "
Stokhos_AlgebraicOrthogPolyExpansionImp.hpp
"
150
151
#endif
// STOKHOS_ALGEBRAICORTHOGPOLYEXPANSION_HPP
asinh
asinh(expr.val())
tan
tan(expr.val())
cos
cos(expr.val())
cosh
cosh(expr.val())
acos
acos(expr.val())
sin
sin(expr.val())
sinh
sinh(expr.val())
cbrt
cbrt(expr.val())
log10
log10(expr.val())
exp
exp(expr.val())
atan
atan(expr.val())
acosh
acosh(expr.val())
atan2
atan2(expr1.val(), expr2.val())
sqrt
sqrt(expr.val())
tanh
tanh(expr.val())
atanh
atanh(expr.val())
asin
asin(expr.val())
Stokhos_AlgebraicOrthogPolyExpansionImp.hpp
Stokhos_OrthogPolyExpansionBase.hpp
Stokhos::AlgebraicOrthogPolyExpansion::pow
void pow(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)
Definition
Stokhos_AlgebraicOrthogPolyExpansionImp.hpp:143
Stokhos::AlgebraicOrthogPolyExpansion::log
void log(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
Definition
Stokhos_AlgebraicOrthogPolyExpansionImp.hpp:75
Stokhos::AlgebraicOrthogPolyExpansion::AlgebraicOrthogPolyExpansion
AlgebraicOrthogPolyExpansion(const AlgebraicOrthogPolyExpansion &)
Stokhos::AlgebraicOrthogPolyExpansion::Cijk_type
OrthogPolyExpansionBase< ordinal_type, value_type, node_type >::Cijk_type Cijk_type
Short-hand for Cijk.
Definition
Stokhos_AlgebraicOrthogPolyExpansion.hpp:143
Stokhos::AlgebraicOrthogPolyExpansion::node_type
Stokhos::StandardStorage< ordinal_type, value_type > node_type
Definition
Stokhos_AlgebraicOrthogPolyExpansion.hpp:67
Stokhos::AlgebraicOrthogPolyExpansion::~AlgebraicOrthogPolyExpansion
virtual ~AlgebraicOrthogPolyExpansion()
Destructor.
Definition
Stokhos_AlgebraicOrthogPolyExpansion.hpp:76
Stokhos::AlgebraicOrthogPolyExpansion::AlgebraicOrthogPolyExpansion
AlgebraicOrthogPolyExpansion(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.
Stokhos::AlgebraicOrthogPolyExpansion::operator=
AlgebraicOrthogPolyExpansion & operator=(const AlgebraicOrthogPolyExpansion &b)
Stokhos::OrthogPolyApprox
Class to store coefficients of a projection onto an orthogonal polynomial basis.
Definition
Stokhos_OrthogPolyApprox.hpp:63
Stokhos::OrthogPolyBasis
Abstract base class for multivariate orthogonal polynomials.
Definition
Stokhos_OrthogPolyBasis.hpp:74
Stokhos::OrthogPolyExpansionBase< ordinal_type, value_type, Stokhos::StandardStorage< ordinal_type, value_type > >::Cijk
Teuchos::RCP< const Stokhos::Sparse3Tensor< ordinal_type, value_type > > Cijk
Definition
Stokhos_OrthogPolyExpansionBase.hpp:192
Stokhos::OrthogPolyExpansionBase< ordinal_type, value_type, Stokhos::StandardStorage< ordinal_type, value_type > >::OrthogPolyExpansionBase
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)
Stokhos::OrthogPolyExpansionBase< ordinal_type, value_type, Stokhos::StandardStorage< ordinal_type, value_type > >::params
Teuchos::RCP< Teuchos::ParameterList > params
Definition
Stokhos_OrthogPolyExpansionBase.hpp:195
Stokhos::OrthogPolyExpansionBase< ordinal_type, value_type, Stokhos::StandardStorage< ordinal_type, value_type > >::basis
Teuchos::RCP< const OrthogPolyBasis< ordinal_type, value_type > > basis
Definition
Stokhos_OrthogPolyExpansionBase.hpp:186
Stokhos::OrthogPolyExpansionBase::Cijk_type
Stokhos::Sparse3Tensor< ordinal_type, value_type > Cijk_type
Short-hand for Cijk.
Definition
Stokhos_OrthogPolyExpansionBase.hpp:189
Stokhos::value_type
Stokhos::Sparse3Tensor
Data structure storing a sparse 3-tensor C(i,j,k) in a a compressed format.
Definition
Stokhos_Sparse3Tensor.hpp:56
Stokhos::StandardStorage
Definition
Stokhos_StandardStorage.hpp:53
Stokhos
Top-level namespace for Stokhos classes and functions.
Definition
Stokhos_AbstractPreconditionerFactory.hpp:48
Generated by
1.18.0