Stokhos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Stokhos_Sacado_MathFunctions.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_SACADO_MATH_FUNCTIONS_HPP
11 #define STOKHOS_SACADO_MATH_FUNCTIONS_HPP
12 
13 #define UNARYFUNC_MACRO(OP,FADOP) \
14 namespace Sacado { \
15  \
16  namespace PCE { \
17  template <typename T, typename S> class OrthogPoly; \
18  template <typename T, typename S> \
19  OrthogPoly<T,S> OP (const OrthogPoly<T,S>&); \
20  } \
21  \
22  namespace ETPCE { \
23  template <typename T> class FADOP; \
24  template <typename T> class Expr; \
25  template <typename T> \
26  Expr< FADOP< Expr<T> > > OP (const Expr<T>&); \
27  } \
28  \
29 } \
30  \
31 namespace std { \
32  using Sacado::PCE::OP; \
33  using Sacado::ETPCE::OP; \
34 }
35 
37 UNARYFUNC_MACRO(log, LogOp)
55 
56 #undef UNARYFUNC_MACRO
57 
58 #define BINARYFUNC_MACRO(OP,FADOP) \
59 namespace Sacado { \
60  \
61  namespace PCE { \
62  template <typename T, typename S> class OrthogPoly; \
63  template <typename T, typename S> \
64  OrthogPoly<T,S> OP (const OrthogPoly<T,S>&, \
65  const OrthogPoly<T,S>&); \
66  template <typename T, typename S> \
67  OrthogPoly<T,S> OP (const T&, \
68  const OrthogPoly<T,S>&); \
69  template <typename T, typename S> \
70  OrthogPoly<T,S> OP (const OrthogPoly<T,S>&, \
71  const T&); \
72  } \
73  \
74  namespace ETPCE { \
75  template <typename T1, typename T2> class FADOP; \
76  template <typename T> class Expr; \
77  template <typename T> class ConstExpr; \
78  template <typename T1, typename T2> \
79  Expr< FADOP< Expr<T1>, Expr<T2> > > \
80  OP (const Expr<T1>&, const Expr<T2>&); \
81  \
82  template <typename T> \
83  Expr< FADOP< Expr<T>, Expr<T> > > \
84  OP (const Expr<T>&, const Expr<T>&); \
85  \
86  template <typename T> \
87  Expr< FADOP< typename Expr<T>::value_type, Expr<T> > > \
88  OP (const typename Expr<T>::value_type&, const Expr<T>&); \
89  \
90  template <typename T> \
91  Expr< FADOP< Expr<T>, typename Expr<T>::value_type > > \
92  OP (const Expr<T>&, const typename Expr<T>::value_type&); \
93  } \
94  \
95 } \
96  \
97 namespace std { \
98  using Sacado::PCE::OP; \
99  using Sacado::ETPCE::OP; \
100 }
101 
103 BINARYFUNC_MACRO(pow, PowerOp)
106 
107 #undef BINARYFUNC_MACRO
108 
109 #endif // STOKHOS_SACADO_MATH_FUNCTIONS_HPP
expr expr ASinhOp
KOKKOS_INLINE_FUNCTION PCE< Storage > sqrt(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > fabs(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > tan(const PCE< Storage > &a)
expr expr TanhOp
KOKKOS_INLINE_FUNCTION PCE< Storage > sinh(const PCE< Storage > &a)
expr expr ATanhOp
atanh(expr.val())
KOKKOS_INLINE_FUNCTION PCE< Storage > pow(const PCE< Storage > &a, const PCE< Storage > &b)
expr expr ASinOp
KOKKOS_INLINE_FUNCTION PCE< Storage > tanh(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > cbrt(const PCE< Storage > &a)
expr expr TanOp
#define UNARYFUNC_MACRO(OP, FADOP)
KOKKOS_INLINE_FUNCTION PCE< Storage > acos(const PCE< Storage > &a)
atan2(expr1.val(), expr2.val())
KOKKOS_INLINE_FUNCTION PCE< Storage > min(const typename PCE< Storage >::value_type &a, const PCE< Storage > &b)
asinh(expr.val())
expr2 j expr1 expr1 expr2 expr2 j expr1 c c c c MaxOp
expr1 expr1 expr1 expr2 expr1 expr1 c expr2 expr1 c expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr1 j expr1 expr1 expr1 expr1 j expr1 c *expr2 expr1 c expr1 c expr1 c expr1 expr1 expr1 expr1 j *expr1 expr2 expr1 expr1 j *expr1 c expr2 expr1 c expr1 expr2 expr1 expr2 expr1 Atan2Op
expr expr CoshOp
#define BINARYFUNC_MACRO(OP, FADOP)
KOKKOS_INLINE_FUNCTION PCE< Storage > max(const typename PCE< Storage >::value_type &a, const PCE< Storage > &b)
KOKKOS_INLINE_FUNCTION PCE< Storage > cosh(const PCE< Storage > &a)
expr expr CosOp
KOKKOS_INLINE_FUNCTION PCE< Storage > abs(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > atan(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > exp(const PCE< Storage > &a)
expr2 j expr1 expr1 expr2 expr2 j expr1 c c c c MinOp
expr expr SinhOp
acosh(expr.val())
expr expr SinOp
expr expr expr expr ExpOp
expr expr SqrtOp
KOKKOS_INLINE_FUNCTION PCE< Storage > sin(const PCE< Storage > &a)
expr expr AbsOp
expr expr ACoshOp
expr expr ATanOp
KOKKOS_INLINE_FUNCTION PCE< Storage > log(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > log10(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > asin(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > cos(const PCE< Storage > &a)
expr expr ACosOp