30 #ifndef SACADO_FAD_EXP_MATHFUNCTIONS_HPP 31 #define SACADO_FAD_EXP_MATHFUNCTIONS_HPP 40 #define UNARYFUNC_MACRO(OP,FADOP) \ 45 template <typename T> class Expr; \ 46 template <typename T> \ 47 KOKKOS_INLINE_FUNCTION \ 48 FADOP< typename Expr<T>::derived_type, \ 49 typename T::expr_spec_type > \ 50 OP (const Expr<T>&); \ 57 using Sacado::Fad::Exp::OP; \ 81 #undef UNARYFUNC_MACRO 83 #define BINARYFUNC_MACRO(OP,FADOP) \ 88 template <typename T> class Expr; \ 89 template <typename T> struct IsFadExpr; \ 90 template <typename T> struct ExprLevel; \ 91 template <typename T1, typename T2> \ 92 KOKKOS_INLINE_FUNCTION \ 93 SACADO_FAD_EXP_OP_ENABLE_EXPR_EXPR(FADOP) \ 94 OP (const T1&, const T2&); \ 96 template <typename T> \ 97 KOKKOS_INLINE_FUNCTION \ 98 FADOP< typename T::value_type, typename Expr<T>::derived_type, \ 99 true, false, typename T::expr_spec_type > \ 100 OP (const typename T::value_type&, const Expr<T>&); \ 102 template <typename T> \ 103 KOKKOS_INLINE_FUNCTION \ 104 FADOP< typename Expr<T>::derived_type, typename T::value_type, \ 105 false, true, typename T::expr_spec_type > \ 106 OP (const Expr<T>&, const typename T::value_type&); \ 108 template <typename T> \ 109 KOKKOS_INLINE_FUNCTION \ 110 SACADO_FAD_EXP_OP_ENABLE_SCALAR_EXPR(FADOP) \ 111 OP (const typename T::scalar_type&, const Expr<T>&); \ 113 template <typename T> \ 114 KOKKOS_INLINE_FUNCTION \ 115 SACADO_FAD_EXP_OP_ENABLE_EXPR_SCALAR(FADOP) \ 116 OP (const Expr<T>&, const typename T::scalar_type&); \ 123 using Sacado::Fad::Exp::OP; \ 131 #undef BINARYFUNC_MACRO 133 #if defined(HAVE_SACADO_KOKKOSCORE) 138 template <
typename S>
class GeneralFad;
139 template <
typename ValT,
unsigned sl,
unsigned ss,
typename U>
142 template <
typename S>
144 void atomic_add(GeneralFad<S>* dst,
const GeneralFad<S>& x);
146 template <
typename ValT,
unsigned sl,
unsigned ss,
typename U,
typename T>
148 void atomic_add(ViewFadPtr<ValT,sl,ss,U> dst,
const Expr<T>& x);
154 using Sacado::Fad::Exp::atomic_add;
159 #endif // SACADO_FAD_EXP_MATHFUNCTIONS_HPP
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 MaxOp
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 MinOp
#define BINARYFUNC_MACRO(OP, FADOP)
KOKKOS_INLINE_FUNCTION mpl::enable_if_c< ExprLevel< Expr< T1 > >::value==ExprLevel< Expr< T2 > >::value, Expr< PowerOp< Expr< T1 >, Expr< T2 > > > >::type pow(const Expr< T1 > &expr1, const Expr< T2 > &expr2)
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
#define KOKKOS_INLINE_FUNCTION
KOKKOS_INLINE_FUNCTION T safe_sqrt(const T &x)
#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)
expr expr1 expr1 expr1 c expr2 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr1 c expr2 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr1 c *expr2 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr1 c expr2 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr2 expr1 expr2 expr1 PowerOp