|
Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
|
Go to the documentation of this file.
42 #ifndef STOKHOS_SACADO_KOKKOS_MATHFUNCTIONS_HPP
43 #define STOKHOS_SACADO_KOKKOS_MATHFUNCTIONS_HPP
49 #include "Kokkos_Macros.hpp"
51 #ifdef HAVE_STOKHOS_ENSEMBLE_SCALAR_TYPE
53 #if STOKHOS_USE_MP_VECTOR_SFS_SPEC
54 #define UNARYFUNC_MACRO_SFS(OP,FADOP) \
56 template <typename O, typename T, int N, typename D> \
57 class StaticFixedStorage; \
61 template <typename S> class Vector; \
62 template <typename O, typename T, int N, typename D> \
63 KOKKOS_INLINE_FUNCTION \
64 Vector< Stokhos::StaticFixedStorage<O,T,N,D> > \
65 OP (const Vector< Stokhos::StaticFixedStorage<O,T,N,D> >&); \
69 #define UNARYFUNC_MACRO_SFS(OP,FADOP)
72 #define UNARYFUNC_MACRO(OP,FADOP) \
73 UNARYFUNC_MACRO_SFS(OP,FADOP) \
77 template <typename T> class FADOP; \
78 template <typename T> class Expr; \
80 template <typename T> \
81 KOKKOS_INLINE_FUNCTION \
83 OP (const Expr<T>&); \
89 using Sacado::MP::OP; \
112 #undef UNARYFUNC_MACRO
113 #undef UNARYFUNC_MACRO_SFS
115 #if STOKHOS_USE_MP_VECTOR_SFS_SPEC
116 #define BINARYFUNC_MACRO_SFS(OP,FADOP) \
117 namespace Stokhos { \
118 template <typename O, typename T, int N, typename D> \
119 class StaticFixedStorage; \
123 template <typename S> class Vector; \
124 template <typename O, typename T, int N, typename D> \
125 KOKKOS_INLINE_FUNCTION \
126 Vector< Stokhos::StaticFixedStorage<O,T,N,D> > \
127 OP (const Vector< Stokhos::StaticFixedStorage<O,T,N,D> >&, \
128 const Vector< Stokhos::StaticFixedStorage<O,T,N,D> >&); \
130 template <typename O, typename T, int N, typename D> \
131 KOKKOS_INLINE_FUNCTION \
132 Vector< Stokhos::StaticFixedStorage<O,T,N,D> > \
133 OP (const typename Vector< Stokhos::StaticFixedStorage<O,T,N,D> >::value_type&, \
134 const Vector< Stokhos::StaticFixedStorage<O,T,N,D> >&); \
136 template <typename O, typename T, int N, typename D> \
137 KOKKOS_INLINE_FUNCTION \
138 Vector< Stokhos::StaticFixedStorage<O,T,N,D> > \
139 OP (const Vector< Stokhos::StaticFixedStorage<O,T,N,D> >&, \
140 const typename Vector< Stokhos::StaticFixedStorage<O,T,N,D> >::value_type&); \
144 #define BINARYFUNC_MACRO_SFS(OP,FADOP)
147 #define BINARYFUNC_MACRO(OP,FADOP) \
148 BINARYFUNC_MACRO_SFS(OP,FADOP) \
152 template <typename T1, typename T2> class FADOP; \
153 template <typename T> class Expr; \
155 template <typename T1, typename T2> \
156 KOKKOS_INLINE_FUNCTION \
158 OP (const Expr<T1>&, \
161 template <typename T> \
162 KOKKOS_INLINE_FUNCTION \
163 FADOP< typename T::value_type, T > \
164 OP (const typename T::value_type&, \
167 template <typename T> \
168 KOKKOS_INLINE_FUNCTION \
169 FADOP< T, typename T::value_type > \
170 OP (const Expr<T>&, \
171 const typename T::value_type&); \
176 using Sacado::MP::OP; \
184 #undef BINARYFUNC_MACRO
185 #undef BINARYFUNC_MACRO_SFS
189 #ifdef HAVE_STOKHOS_PCE_SCALAR_TYPE
191 #define UNARYFUNC_MACRO(OP,FADOP) \
195 template <typename S> class PCE; \
196 template <typename S> \
197 KOKKOS_INLINE_FUNCTION \
198 PCE<S> OP (const PCE<S>&); \
203 using Sacado::UQ::OP; \
226 #undef UNARYFUNC_MACRO
228 #define BINARYFUNC_MACRO(OP) \
232 template <typename S> class PCE; \
233 template <typename S> \
234 KOKKOS_INLINE_FUNCTION \
235 PCE<S> OP (const PCE<S>&, const PCE<S>&); \
236 template <typename S> \
237 KOKKOS_INLINE_FUNCTION \
238 PCE<S> OP (const typename PCE<S>::value_type&, const PCE<S>&); \
239 template <typename S> \
240 KOKKOS_INLINE_FUNCTION \
241 PCE<S> OP (const PCE<S>&, const typename PCE<S>::value_type&); \
246 using Sacado::UQ::OP; \
252 #undef BINARYFUNC_MACRO
254 #define BINARYFUNC_MACRO(OP) \
258 template <typename S> class PCE; \
259 template <typename S> \
260 KOKKOS_INLINE_FUNCTION \
261 PCE<S> OP (const typename S::value_type&, const PCE<S>&); \
262 template <typename S> \
263 KOKKOS_INLINE_FUNCTION \
264 PCE<S> OP (const PCE<S>&, const typename S::value_type&); \
269 using Sacado::UQ::OP; \
275 #undef BINARYFUNC_MACRO
279 #endif // STOKHOS_SACADO_KOKKOS_MATHFUNCTIONS_HPP
KOKKOS_INLINE_FUNCTION PCE< Storage > cosh(const PCE< Storage > &a)
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)
KOKKOS_INLINE_FUNCTION PCE< Storage > log10(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > sin(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > asin(const PCE< Storage > &a)
atan2(expr1.val(), expr2.val())
KOKKOS_INLINE_FUNCTION PCE< Storage > log(const PCE< Storage > &a)
#define UNARYFUNC_MACRO(OP, FADOP)
KOKKOS_INLINE_FUNCTION PCE< Storage > fabs(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > cos(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > sinh(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > sqrt(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > tan(const PCE< Storage > &a)
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 expr expr ExpOp
KOKKOS_INLINE_FUNCTION PCE< Storage > pow(const PCE< Storage > &a, const PCE< Storage > &b)
expr2 j expr1 expr1 expr2 expr2 j expr1 c c c c PowerOp
KOKKOS_INLINE_FUNCTION PCE< Storage > min(const typename PCE< Storage >::value_type &a, const PCE< Storage > &b)
KOKKOS_INLINE_FUNCTION PCE< Storage > tanh(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > cbrt(const PCE< Storage > &a)
KOKKOS_INLINE_FUNCTION PCE< Storage > acos(const PCE< Storage > &a)
#define BINARYFUNC_MACRO(OP, FADOP)
KOKKOS_INLINE_FUNCTION PCE< Storage > max(const typename PCE< Storage >::value_type &a, const PCE< Storage > &b)