42 #include "Teuchos_Assert.hpp" 44 template <
typename ordinal_type,
typename value_type>
49 const Teuchos::RCP<Teuchos::ParameterList>& params_) :
54 template <
typename ordinal_type,
typename value_type>
66 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
67 "Stokhos::AlgebraicOrthogPolyExpansion::exp()" 68 <<
": Method not implemented!");
72 template <
typename ordinal_type,
typename value_type>
84 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
85 "Stokhos::AlgebraicOrthogPolyExpansion::log()" 86 <<
": Method not implemented!");
89 template <
typename ordinal_type,
typename value_type>
101 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
102 "Stokhos::AlgebraicOrthogPolyExpansion::log10()" 103 <<
": Method not implemented!");
106 template <
typename ordinal_type,
typename value_type>
118 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
119 "Stokhos::AlgebraicOrthogPolyExpansion::sqrt()" 120 <<
": Method not implemented!");
123 template <
typename ordinal_type,
typename value_type>
135 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
136 "Stokhos::AlgebraicOrthogPolyExpansion::cbrt()" 137 <<
": Method not implemented!");
140 template <
typename ordinal_type,
typename value_type>
147 if (a.
size() == 1 && b.
size() == 1) {
153 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
154 "Stokhos::AlgebraicOrthogPolyExpansion::pow()" 155 <<
": Method not implemented!");
158 template <
typename ordinal_type,
typename value_type>
171 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
172 "Stokhos::AlgebraicOrthogPolyExpansion::pow()" 173 <<
": Method not implemented!");
176 template <
typename ordinal_type,
typename value_type>
189 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
190 "Stokhos::AlgebraicOrthogPolyExpansion::pow()" 191 <<
": Method not implemented!");
194 template <
typename ordinal_type,
typename value_type>
206 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
207 "Stokhos::AlgebraicOrthogPolyExpansion::sin()" 208 <<
": Method not implemented!");
211 template <
typename ordinal_type,
typename value_type>
223 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
224 "Stokhos::AlgebraicOrthogPolyExpansion::cos()" 225 <<
": Method not implemented!");
228 template <
typename ordinal_type,
typename value_type>
240 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
241 "Stokhos::AlgebraicOrthogPolyExpansion::tan()" 242 <<
": Method not implemented!");
245 template <
typename ordinal_type,
typename value_type>
257 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
258 "Stokhos::AlgebraicOrthogPolyExpansion::sinh()" 259 <<
": Method not implemented!");
262 template <
typename ordinal_type,
typename value_type>
274 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
275 "Stokhos::AlgebraicOrthogPolyExpansion::cosh()" 276 <<
": Method not implemented!");
279 template <
typename ordinal_type,
typename value_type>
291 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
292 "Stokhos::AlgebraicOrthogPolyExpansion::tanh()" 293 <<
": Method not implemented!");
296 template <
typename ordinal_type,
typename value_type>
308 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
309 "Stokhos::AlgebraicOrthogPolyExpansion::acos()" 310 <<
": Method not implemented!");
313 template <
typename ordinal_type,
typename value_type>
325 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
326 "Stokhos::AlgebraicOrthogPolyExpansion::asin()" 327 <<
": Method not implemented!");
330 template <
typename ordinal_type,
typename value_type>
342 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
343 "Stokhos::AlgebraicOrthogPolyExpansion::atan()" 344 <<
": Method not implemented!");
347 template <
typename ordinal_type,
typename value_type>
354 if (a.
size() == 1 && b.
size() == 1) {
357 c[0] = std::atan2(a[0], b[0]);
360 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
361 "Stokhos::AlgebraicOrthogPolyExpansion::atan2()" 362 <<
": Method not implemented!");
365 template <
typename ordinal_type,
typename value_type>
375 c[0] = std::atan2(a, b[0]);
378 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
379 "Stokhos::AlgebraicOrthogPolyExpansion::atan2()" 380 <<
": Method not implemented!");
383 template <
typename ordinal_type,
typename value_type>
393 c[0] = std::atan2(a[0], b);
396 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
397 "Stokhos::AlgebraicOrthogPolyExpansion::atan2()" 398 <<
": Method not implemented!");
401 template <
typename ordinal_type,
typename value_type>
413 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
414 "Stokhos::AlgebraicOrthogPolyExpansion::acosh()" 415 <<
": Method not implemented!");
418 template <
typename ordinal_type,
typename value_type>
430 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
431 "Stokhos::AlgebraicOrthogPolyExpansion::asinh()" 432 <<
": Method not implemented!");
435 template <
typename ordinal_type,
typename value_type>
447 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
448 "Stokhos::AlgebraicOrthogPolyExpansion::atanh()" 449 <<
": Method not implemented!");
KOKKOS_INLINE_FUNCTION PCE< Storage > sqrt(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > tan(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > sinh(const PCE< Storage > &a)
void resize(ordinal_type sz)
Resize coefficient array (coefficients are preserved)
void log10(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
Data structure storing a sparse 3-tensor C(i,j,k) in a a compressed format.
KOKKOS_INLINE_FUNCTION PCE< Storage > pow(const PCE< Storage > &a, const PCE< Storage > &b)
void asinh(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
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)
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.
void asin(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > tanh(const PCE< Storage > &a)
void exp(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > cbrt(const PCE< Storage > &a)
void acos(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
ordinal_type size() const
Return size.
KOKKOS_INLINE_FUNCTION PCE< Storage > acos(const PCE< Storage > &a)
void tanh(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
Abstract base class for multivariate orthogonal polynomials.
void atan2(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 sqrt(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > cosh(const PCE< Storage > &a)
void atan(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
void cos(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
void cosh(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > atan(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > exp(const PCE< Storage > &a)
void log(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
Class to store coefficients of a projection onto an orthogonal polynomial basis.
void sin(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
void tan(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > sin(const PCE< Storage > &a)
void atanh(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > log(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > log10(const PCE< Storage > &a)
void cbrt(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > asin(const PCE< Storage > &a)
void acosh(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
void sinh(OrthogPolyApprox< ordinal_type, value_type, node_type > &c, const OrthogPolyApprox< ordinal_type, value_type, node_type > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > cos(const PCE< Storage > &a)