26 #define FAD_FUNC_MACRO(NAME,FCT,FCTSTD,GRD,FASTGRD) \ 27 template <class Expr> class NAME \ 30 typedef typename Expr::value_type value_type; \ 36 NAME (const Expr & expr) : expr_(expr) {;} \ 37 inline value_type val() const { return FCTSTD(expr_.val());} \ 38 inline value_type dx(int i) const {return GRD ; } \ 39 inline int size() const { return expr_.size();} \ 41 bool hasFastAccess() const { return expr_.hasFastAccess();} \ 42 value_type fastAccessDx(int i) const { return FASTGRD;} \ 45 template <class Expr> inline TFadExpr< NAME< TFadExpr<Expr> > > \ 46 FCT (const TFadExpr<Expr>& expr) \ 48 typedef NAME< TFadExpr<Expr> > expr_t; \ 49 return TFadExpr< expr_t >( expr_t(expr) ); \ 52 template <class T,int Num> inline TFadExpr< NAME< TFad<Num,T> > > \ 53 FCT (const TFad<Num,T>& x) \ 55 typedef NAME< TFad<Num,T> > expr_t; \ 56 return TFadExpr< expr_t >( expr_t(x) ); \ 62 -expr_.dx(i)*
sin( expr_.val() ),
63 -expr_.fastAccessDx(i)*
sin( expr_.val() ) )
72 expr_.
dx(i)*(1.+
tan(expr_.val())*
tan(expr_.val())),
77 -expr_.
dx(i)/
sqrt(1.-expr_.val()*expr_.val()),
82 expr_.
dx(i)/
sqrt(1.-expr_.val()*expr_.val()),
87 expr_.
dx(i)/(1.+expr_.val()*expr_.val()),
92 expr_.
dx(i)*
sinh(expr_.val()),
97 expr_.
dx(i)*
cosh(expr_.val()),
102 expr_.
dx(i)/(
cosh(expr_.val())*
cosh(expr_.val())),
107 expr_.
dx(i)/
sqrt((expr_.val()-1.)/(expr_.val()+1.)),
112 expr_.
dx(i)/
sqrt(1.+expr_.val()*expr_.val()),
117 expr_.
dx(i)/(1.-expr_.val()*expr_.val()),
122 expr_.
dx(i)/(2.*
sqrt(expr_.val())),
127 expr_.
dx(i)*
exp(expr_.val()),
132 expr_.
dx(i)/expr_.val(),
137 expr_.
dx(i)/(
log(value_type(10))*expr_.val()),
143 expr_.
dx(i) : -expr_.
dx(i),
151 #undef FAD_FUNC_MACRO expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ fabs
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ tanh
#define FAD_FUNC_MACRO(NAME, FCT, FCTSTD, GRD, FASTGRD)
REAL val(STATE &number)
Returns value of the variable.
expr_ expr_ expr_ expr_ acos
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ acosh
expr_ dx(i) *cos(expr_.val())
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ cosh
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ sqrt
expr_ expr_ fastAccessDx(i) *cos(expr_.val())) FAD_FUNC_MACRO(TFadFuncTan
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ atanh
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ log
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ sinh
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ atan
expr_ expr_ expr_ expr_ expr_ expr_ asin
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ log10
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ exp
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ asinh
TPZFlopCounter cos(const TPZFlopCounter &orig)
Returns the cosine in radians and increments the counter of the Cosine.