Sacado Package Browser (Single Doxygen Collection)  Version of the Day
Classes | Namespaces | Macros | Functions | Variables
Sacado_Fad_Exp_Ops.hpp File Reference
#include <type_traits>
#include <ostream>
#include "Sacado_Fad_Exp_Expression.hpp"
#include "Sacado_Fad_Exp_ExpressionTraits.hpp"
#include "Sacado_Fad_Exp_Ops_Fwd.hpp"
#include "Sacado_cmath.hpp"
#include "Sacado_mpl_has_equal_to.hpp"
Include dependency graph for Sacado_Fad_Exp_Ops.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Sacado::Fad::Exp::IfThenElseOp< CondT, T1, T2, is_const_T1, is_const_T2, ExprSpec >
 
class  Sacado::Fad::Exp::IfThenElseOp< CondT, T1, T2, false, false, ExprSpecDefault >
 
class  Sacado::Fad::Exp::IfThenElseOp< CondT, T1, T2, false, true, ExprSpecDefault >
 
class  Sacado::Fad::Exp::IfThenElseOp< CondT, T1, T2, true, false, ExprSpecDefault >
 
struct  Sacado::Fad::Exp::ExprLevel< IfThenElseOp< CondT, T1, T2, c1, c2, E > >
 
struct  Sacado::Fad::Exp::IsFadExpr< IfThenElseOp< CondT, T1, T2, c1, c2, E > >
 
struct  Sacado::IsExpr< Fad::Exp::IfThenElseOp< CondT, T1, T2, c1, c2, E > >
 
struct  Sacado::BaseExprType< Fad::Exp::IfThenElseOp< CondT, T1, T2, c1, c2, E > >
 
struct  Sacado::Fad::Exp::Impl::ConditionalReturnType< T1, T2, bool >
 
struct  Sacado::Fad::Exp::Impl::ConditionalReturnType< T1, T2, true >
 

Namespaces

 Sacado
 
 Sacado::Fad
 Namespace for forward-mode AD classes.
 
 Sacado::Fad::Exp
 
 Sacado::Fad::Exp::Impl
 

Macros

#define FAD_UNARYOP_MACRO(OPNAME, OP, USING, VALUE, DX, FASTACCESSDX)
 
#define FAD_BINARYOP_MACRO(OPNAME, OP, USING, VALUE, DX, CDX1, CDX2, FASTACCESSDX, VAL_CONST_DX_1, VAL_CONST_DX_2, CONST_DX_1, CONST_DX_2, CONST_FASTACCESSDX_1, CONST_FASTACCESSDX_2)
 
#define FAD_RELOP_MACRO(OP)
 
#define FAD_BOOL_MACRO(OP)
 

Functions

 FAD_UNARYOP_MACRO (operator+, UnaryPlusOp, ;, expr.val(), expr.dx(i), expr.fastAccessDx(i)) FAD_UNARYOP_MACRO(operator-
 
expr val () = expr2.val() ? expr1.dx(i) : expr2.dx(i)
 
expr expr dx (i)
 
expr expr expr fastAccessDx (i)) FAD_UNARYOP_MACRO(exp
 
 exp (expr.val())
 
 log (expr.val())
 
 log10 (expr.val())
 
 sqrt (expr.val())
 
 cos (expr.val())
 
 sin (expr.val())
 
 tan (expr.val())
 
 acos (expr.val())
 
 asin (expr.val())
 
 atan (expr.val())
 
 cosh (expr.val())
 
 sinh (expr.val())
 
 tanh (expr.val())
 
 acosh (expr.val())
 
 asinh (expr.val())
 
 atanh (expr.val())
 
 abs (expr.val())
 
 if_then_else (expr.val() >=0, expr.dx(i), value_type(-expr.dx(i)))
 
 if_then_else (expr.val() >=0, expr.fastAccessDx(i), value_type(-expr.fastAccessDx(i)))) FAD_UNARYOP_MACRO(fabs
 
 fabs (expr.val())
 
 cbrt (expr.val())
 
 FAD_BINARYOP_MACRO (operator+, AdditionOp, ;, expr1.val()+expr2.val(), expr1.dx(i)+expr2.dx(i), expr2.dx(i), expr1.dx(i), expr1.fastAccessDx(i)+expr2.fastAccessDx(i), c+expr2.val(), expr1.val()+c, expr2.dx(i), expr1.dx(i), expr2.fastAccessDx(i), expr1.fastAccessDx(i)) FAD_BINARYOP_MACRO(operator-
 
 atan2 (expr1.val(), expr2.val())
 
expr2 expr1 expr2 expr2 atan2 (c, expr2.val())
 
expr2 expr1 expr2 expr2 atan2 (expr1.val(), c)
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (expr1.val() >=expr2.val(), expr1.val(), expr2.val())
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (expr1.val() >=expr2.val(), expr1.dx(i), expr2.dx(i))
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (expr1.val() >=expr2.val(), value_type(0.0), expr2.dx(i))
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (expr1.val() >=expr2.val(), expr1.dx(i), value_type(0.0))
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (c >=expr2.val(), value_type(c), expr2.val())
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (expr1.val() >=c, expr1.val(), value_type(c))
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (c >=expr2.val(), value_type(0.0), expr2.dx(i))
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (expr1.val() >=c, expr1.dx(i), value_type(0.0))
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (expr1.val()<=expr2.val(), expr1.val(), expr2.val())
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (expr1.val()<=expr2.val(), expr1.dx(i), expr2.dx(i))
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (expr1.val()<=expr2.val(), value_type(0.0), expr2.dx(i))
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (expr1.val()<=expr2.val(), expr1.dx(i), value_type(0.0))
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (c<=expr2.val(), value_type(c), expr2.val())
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (expr1.val()<=c, expr1.val(), value_type(c))
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (c<=expr2.val(), value_type(0), expr2.dx(i))
 
expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else (expr1.val()<=c, expr1.dx(i), value_type(0))
 
template<typename CondT , typename T1 , typename T2 >
KOKKOS_INLINE_FUNCTION mpl::enable_if_c< IsFadExpr< T1 >::value &&IsFadExpr< T2 >::value &&ExprLevel< T1 >::value==ExprLevel< T2 >::value, IfThenElseOp< CondT, typename Expr< T1 >::derived_type, typename Expr< T2 >::derived_type, false, false, typename T1::expr_spec_type > >::type Sacado::Fad::Exp::if_then_else (const CondT &cond, const T1 &expr1, const T2 &expr2)
 
template<typename CondT , typename T >
KOKKOS_INLINE_FUNCTION IfThenElseOp< CondT, typename T::value_type, typename Expr< T >::derived_type, true, false, typename T::expr_spec_type > Sacado::Fad::Exp::if_then_else (const CondT &cond, const typename T::value_type &c, const Expr< T > &expr)
 
template<typename CondT , typename T >
KOKKOS_INLINE_FUNCTION IfThenElseOp< CondT, typename Expr< T >::derived_type, typename T::value_type, false, true, typename T::expr_spec_type > Sacado::Fad::Exp::if_then_else (const CondT &cond, const Expr< T > &expr, const typename T::value_type &c)
 
template<typename CondT , typename T >
KOKKOS_INLINE_FUNCTION mpl::disable_if< mpl::is_same< typename T::value_type, typename T::scalar_type >, IfThenElseOp< CondT, typename T::scalar_type, typename Expr< T >::derived_type, true, false, typename T::expr_spec_type > >::type Sacado::Fad::Exp::if_then_else (const CondT &cond, const typename Expr< T >::scalar_type &c, const Expr< T > &expr)
 
template<typename CondT , typename T >
KOKKOS_INLINE_FUNCTION mpl::disable_if< mpl::is_same< typename T::value_type, typename T::scalar_type >, IfThenElseOp< CondT, typename Expr< T >::derived_type, typename T::scalar_type, false, true, typename T::expr_spec_type > >::type Sacado::Fad::Exp::if_then_else (const CondT &cond, const Expr< T > &expr, const typename Expr< T >::scalar_type &c)
 
template<typename ExprT >
KOKKOS_INLINE_FUNCTION bool Sacado::Fad::Exp::operator! (const Expr< ExprT > &expr)
 
template<typename T >
KOKKOS_INLINE_FUNCTION bool Sacado::Fad::Exp::toBool (const Expr< T > &xx)
 
template<typename T >
std::ostream & Sacado::Fad::Exp::operator<< (std::ostream &os, const Expr< T > &xx)
 

Variables

 UnaryMinusOp
 
expr expr expr ExpOp
 
 LogOp
 
expr expr Log10Op
 
expr expr SqrtOp
 
expr expr CosOp
 
expr expr SinOp
 
expr expr TanOp
 
expr expr ACosOp
 
expr expr ASinOp
 
expr expr ATanOp
 
expr expr CoshOp
 
expr expr SinhOp
 
expr expr TanhOp
 
expr expr ACoshOp
 
expr expr ASinhOp
 
expr expr ATanhOp
 
expr expr AbsOp
 
 FAbsOp
 
 CbrtOp
 
 SubtractionOp
 
expr1 expr1 expr2 expr1 expr1 c expr2 expr1 expr2 expr1 expr2 expr1 MultiplicationOp
 
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 DivisionOp
 
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
 
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
 

Macro Definition Documentation

◆ FAD_UNARYOP_MACRO

#define FAD_UNARYOP_MACRO (   OPNAME,
  OP,
  USING,
  VALUE,
  DX,
  FASTACCESSDX 
)

Definition at line 49 of file Sacado_Fad_Exp_Ops.hpp.

◆ FAD_BINARYOP_MACRO

#define FAD_BINARYOP_MACRO (   OPNAME,
  OP,
  USING,
  VALUE,
  DX,
  CDX1,
  CDX2,
  FASTACCESSDX,
  VAL_CONST_DX_1,
  VAL_CONST_DX_2,
  CONST_DX_1,
  CONST_DX_2,
  CONST_FASTACCESSDX_1,
  CONST_FASTACCESSDX_2 
)

Definition at line 438 of file Sacado_Fad_Exp_Ops.hpp.

◆ FAD_RELOP_MACRO

#define FAD_RELOP_MACRO (   OP)

Definition at line 1618 of file Sacado_Fad_Exp_Ops.hpp.

◆ FAD_BOOL_MACRO

#define FAD_BOOL_MACRO (   OP)

Definition at line 1707 of file Sacado_Fad_Exp_Ops.hpp.

Function Documentation

◆ FAD_UNARYOP_MACRO()

FAD_UNARYOP_MACRO ( operator+  ,
UnaryPlusOp  ,
,
expr.  val(),
expr.  dxi,
expr.  fastAccessDx
)

◆ val()

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 expr1 expr1 expr2 expr1 expr2 expr1 expr1 expr1 expr1 val ( ) = expr2.val() ? expr1.dx(i) : expr2.dx(i)

◆ dx()

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 expr1 expr1 expr2 expr1 dx ( )

◆ fastAccessDx()

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 expr1 expr1 expr2 expr1 expr2 expr1 fastAccessDx ( )

Definition at line 278 of file Sacado_Fad_Exp_Ops.hpp.

◆ exp()

exp ( expr.  val())

◆ log()

log ( expr.  val())

◆ log10()

log10 ( expr.  val())

◆ sqrt()

sqrt ( expr.  val())

◆ cos()

cos ( expr.  val())

◆ sin()

sin ( expr.  val())

◆ tan()

tan ( expr.  val())

◆ acos()

acos ( expr.  val())

◆ asin()

asin ( expr.  val())

◆ atan()

atan ( expr.  val())

◆ cosh()

cosh ( expr.  val())

◆ sinh()

sinh ( expr.  val())

◆ tanh()

tanh ( expr.  val())

◆ acosh()

acosh ( expr.  val())

◆ asinh()

asinh ( expr.  val())

◆ atanh()

atanh ( expr.  val())

◆ abs()

abs ( expr.  val())

◆ if_then_else() [1/18]

if_then_else ( expr.val() >=  0,
expr.  dxi,
value_type(-expr.dx(i))   
)

◆ if_then_else() [2/18]

if_then_else ( expr.val() >=  0,
expr.  fastAccessDxi,
value_type(-expr.fastAccessDx(i))   
)

Definition at line 261 of file Sacado_Fad_Ops.hpp.

◆ fabs()

fabs ( expr.  val())

◆ cbrt()

cbrt ( expr.  val())

◆ FAD_BINARYOP_MACRO()

FAD_BINARYOP_MACRO ( operator+  ,
AdditionOp  ,
,
expr1.  val)+expr2.val(,
expr1.  dxi)+expr2.dx(i,
expr2.  dxi,
expr1.  dxi,
expr1.  fastAccessDxi)+expr2.fastAccessDx(i,
c+expr2.  val(),
expr1.val()+  c,
expr2.  dxi,
expr1.  dxi,
expr2.  fastAccessDxi,
expr1.  fastAccessDx
)

◆ atan2() [1/3]

atan2 ( expr1.  val(),
expr2.  val() 
)

◆ atan2() [2/3]

expr2 expr1 expr2 expr2 atan2 ( c  ,
expr2.  val() 
)

◆ atan2() [3/3]

expr2 expr1 expr2 expr2 atan2 ( expr1.  val(),
c   
)

◆ if_then_else() [3/18]

expr2 expr1 expr2 expr2 c* expr2 c* expr1 c* expr2 c* expr1 if_then_else ( expr1.  val) >=expr2.val(,
expr1.  val(),
expr2.  val() 
)

◆ if_then_else() [4/18]

if_then_else ( expr1.  val) >=expr2.val(,
expr1.  dxi,
expr2.  dx
)

◆ if_then_else() [5/18]

expr2 expr1 expr2 expr2 c* expr2 c* expr1 c* expr2 c* expr1 if_then_else ( expr1.  val) >=expr2.val(,
value_type(0.0)  ,
expr2.  dx
)

◆ if_then_else() [6/18]

expr2 expr1 expr2 expr2 c* expr2 c* expr1 c* expr2 c* expr1 if_then_else ( expr1.  val) >=expr2.val(,
expr1.  dxi,
value_type(0.0)   
)

◆ if_then_else() [7/18]

expr2 expr1 expr2 expr2 c* expr2 c* expr1 c* expr2 c* expr1 if_then_else ( c >=expr2.  val(),
value_type(c ,
expr2.  val() 
)

◆ if_then_else() [8/18]

expr2 expr1 expr2 expr2 c* expr2 c* expr1 c* expr2 c* expr1 if_then_else ( expr1.val() >=  c,
expr1.  val(),
value_type(c  
)

◆ if_then_else() [9/18]

expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else ( c >=expr2.  val(),
value_type(0.0)  ,
expr2.  dx
)

◆ if_then_else() [10/18]

expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else ( expr1.val() >=  c,
expr1.  dxi,
value_type(0.0)   
)

◆ if_then_else() [11/18]

expr2 expr1 expr2 expr2 c* expr2 c* expr1 c* expr2 c* expr1 if_then_else ( expr1.  val)<=expr2.val(,
expr1.  val(),
expr2.  val() 
)

◆ if_then_else() [12/18]

if_then_else ( expr1.  val)<=expr2.val(,
expr1.  dxi,
expr2.  dx
)

◆ if_then_else() [13/18]

expr2 expr1 expr2 expr2 c* expr2 c* expr1 c* expr2 c* expr1 if_then_else ( expr1.  val)<=expr2.val(,
value_type(0.0)  ,
expr2.  dx
)

◆ if_then_else() [14/18]

expr2 expr1 expr2 expr2 c* expr2 c* expr1 c* expr2 c* expr1 if_then_else ( expr1.  val)<=expr2.val(,
expr1.  dxi,
value_type(0.0)   
)

◆ if_then_else() [15/18]

expr2 expr1 expr2 expr2 c* expr2 c* expr1 c* expr2 c* expr1 if_then_else ( c<=expr2.  val(),
value_type(c ,
expr2.  val() 
)

◆ if_then_else() [16/18]

expr2 expr1 expr2 expr2 c* expr2 c* expr1 c* expr2 c* expr1 if_then_else ( expr1.val()<=  c,
expr1.  val(),
value_type(c  
)

◆ if_then_else() [17/18]

expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else ( c<=expr2.  val(),
value_type(0)  ,
expr2.  dx
)

◆ if_then_else() [18/18]

expr2 expr1 expr2 expr2 c *expr2 c *expr1 c *expr2 c *expr1 if_then_else ( expr1.val()<=  c,
expr1.  dxi,
value_type(0)   
)

Definition at line 836 of file Sacado_Fad_Exp_Ops.hpp.

Variable Documentation

◆ UnaryMinusOp

UnaryMinusOp

Definition at line 152 of file Sacado_Fad_Exp_Ops.hpp.

◆ ExpOp

expr expr expr ExpOp

Definition at line 158 of file Sacado_Fad_Exp_Ops.hpp.

◆ LogOp

LogOp

Definition at line 164 of file Sacado_Fad_Exp_Ops.hpp.

◆ Log10Op

expr expr Log10Op

Definition at line 170 of file Sacado_Fad_Exp_Ops.hpp.

◆ SqrtOp

expr expr SqrtOp

Definition at line 176 of file Sacado_Fad_Exp_Ops.hpp.

◆ CosOp

expr expr CosOp

Definition at line 182 of file Sacado_Fad_Exp_Ops.hpp.

◆ SinOp

expr expr SinOp

Definition at line 188 of file Sacado_Fad_Exp_Ops.hpp.

◆ TanOp

expr expr TanOp

Definition at line 194 of file Sacado_Fad_Exp_Ops.hpp.

◆ ACosOp

expr expr ACosOp

Definition at line 202 of file Sacado_Fad_Exp_Ops.hpp.

◆ ASinOp

expr expr ASinOp

Definition at line 209 of file Sacado_Fad_Exp_Ops.hpp.

◆ ATanOp

expr expr ATanOp

Definition at line 216 of file Sacado_Fad_Exp_Ops.hpp.

◆ CoshOp

expr expr CoshOp

Definition at line 222 of file Sacado_Fad_Exp_Ops.hpp.

◆ SinhOp

expr expr SinhOp

Definition at line 228 of file Sacado_Fad_Exp_Ops.hpp.

◆ TanhOp

expr expr TanhOp

Definition at line 234 of file Sacado_Fad_Exp_Ops.hpp.

◆ ACoshOp

expr expr ACoshOp

Definition at line 240 of file Sacado_Fad_Exp_Ops.hpp.

◆ ASinhOp

expr expr ASinhOp

Definition at line 248 of file Sacado_Fad_Exp_Ops.hpp.

◆ ATanhOp

expr expr ATanhOp

Definition at line 255 of file Sacado_Fad_Exp_Ops.hpp.

◆ AbsOp

expr expr AbsOp

Definition at line 262 of file Sacado_Fad_Exp_Ops.hpp.

◆ FAbsOp

FAbsOp

Definition at line 268 of file Sacado_Fad_Exp_Ops.hpp.

◆ CbrtOp

CbrtOp

Definition at line 274 of file Sacado_Fad_Exp_Ops.hpp.

◆ SubtractionOp

SubtractionOp

Definition at line 732 of file Sacado_Fad_Exp_Ops.hpp.

◆ MultiplicationOp

expr1 expr1 expr2 expr1 expr1 c expr2 expr1 expr2 expr1 expr2 expr1 MultiplicationOp

Definition at line 746 of file Sacado_Fad_Exp_Ops.hpp.

◆ DivisionOp

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 DivisionOp

Definition at line 761 of file Sacado_Fad_Exp_Ops.hpp.

◆ Atan2Op

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

Definition at line 778 of file Sacado_Fad_Exp_Ops.hpp.

◆ MaxOp

expr2 expr1 expr2 expr2 c* expr2 c* expr1 c* expr2 c* expr1 MaxOp

Definition at line 810 of file Sacado_Fad_Exp_Ops.hpp.

◆ MinOp

expr2 expr1 expr2 expr2 c* expr2 c* expr1 c* expr2 c* expr1 MinOp

Definition at line 824 of file Sacado_Fad_Exp_Ops.hpp.