30 #ifndef SACADO_FAD_EXP_MATHFUNCTIONS_HPP 31 #define SACADO_FAD_EXP_MATHFUNCTIONS_HPP 36 #define UNARYFUNC_MACRO(OP,FADOP) \ 41 template <typename T> class Expr; \ 42 template <typename T, typename E> class FADOP; \ 43 template <typename T> \ 44 KOKKOS_INLINE_FUNCTION \ 45 FADOP< typename Expr<T>::derived_type, \ 46 typename T::expr_spec_type > \ 47 OP (const Expr<T>&); \ 54 using Sacado::Fad::Exp::OP; \ 77 #undef UNARYFUNC_MACRO 79 #define BINARYFUNC_MACRO(OP,FADOP) \ 84 template <typename T> class Expr; \ 85 template <typename T1, typename T2, bool, bool, typename E> \ 87 template <typename T> struct IsFadExpr; \ 88 template <typename T> struct ExprLevel; \ 89 template <typename T1, typename T2> \ 90 KOKKOS_INLINE_FUNCTION \ 91 SACADO_FAD_EXP_OP_ENABLE_EXPR_EXPR(FADOP) \ 92 OP (const T1&, const T2&); \ 94 template <typename T> \ 95 KOKKOS_INLINE_FUNCTION \ 96 FADOP< typename T::value_type, typename Expr<T>::derived_type, \ 97 true, false, typename T::expr_spec_type > \ 98 OP (const typename T::value_type&, const Expr<T>&); \ 100 template <typename T> \ 101 KOKKOS_INLINE_FUNCTION \ 102 FADOP< typename Expr<T>::derived_type, typename T::value_type, \ 103 false, true, typename T::expr_spec_type > \ 104 OP (const Expr<T>&, const typename T::value_type&); \ 106 template <typename T> \ 107 KOKKOS_INLINE_FUNCTION \ 108 SACADO_FAD_EXP_OP_ENABLE_SCALAR_EXPR(FADOP) \ 109 OP (const typename T::scalar_type&, const Expr<T>&); \ 111 template <typename T> \ 112 KOKKOS_INLINE_FUNCTION \ 113 SACADO_FAD_EXP_OP_ENABLE_EXPR_SCALAR(FADOP) \ 114 OP (const Expr<T>&, const typename T::scalar_type&); \ 121 using Sacado::Fad::Exp::OP; \ 129 #undef BINARYFUNC_MACRO 131 #if defined(HAVE_SACADO_KOKKOSCORE) 136 template <
typename S>
class GeneralFad;
137 template <
typename ValT,
unsigned sl,
unsigned ss,
typename U>
140 template <
typename S>
142 void atomic_add(GeneralFad<S>* dst,
const GeneralFad<S>& x);
144 template <
typename ValT,
unsigned sl,
unsigned ss,
typename U,
typename T>
146 void atomic_add(ViewFadPtr<ValT,sl,ss,U> dst,
const Expr<T>& x);
152 using Sacado::Fad::Exp::atomic_add;
157 #endif // SACADO_FAD_EXP_MATHFUNCTIONS_HPP
expr expr expr1 expr1 expr2 expr1 expr1 c expr2 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr2 expr1 expr1 c expr2 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr1 expr1 expr1 c *expr2 expr1 c *expr2 expr1 c *expr2 expr1 expr1 expr1 expr2 expr1 expr1 c expr2 expr1 expr2 expr1 expr2 expr1 Atan2Op
pow(expr1.val(), expr2.val())
#define BINARYFUNC_MACRO(OP, FADOP)
#define KOKKOS_INLINE_FUNCTION
#define UNARYFUNC_MACRO(OP, FADOP)
SimpleFad< ValueT > min(const SimpleFad< ValueT > &a, const SimpleFad< ValueT > &b)
atan2(expr1.val(), expr2.val())
SimpleFad< ValueT > max(const SimpleFad< ValueT > &a, const SimpleFad< ValueT > &b)
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 PowerOp