Changeset 2366 in Sophya for trunk/Eval/JET/jet.h


Ignore:
Timestamp:
Apr 18, 2003, 5:48:16 PM (22 years ago)
Author:
ansari
Message:

Ajout fonctions Sin/Cos/... ds jet.h + prog en f90 - Reza 18/4/2003

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Eval/JET/jet.h

    r2363 r2366  
    132132};
    133133
     134// -------- Classe Fonc(Expression)  --------------
     135template <class T>
     136class FSin {
     137public:
     138  FSin() { }
     139  FSin(FSin<T> const &) { }
     140  inline T FuncVal(T x) const { return sin(x); }
     141};
     142template <class T>
     143class FCos {
     144public:
     145  FCos() { }
     146  FCos(FCos<T> const &) { }
     147  inline T FuncVal(T x) const { return cos(x); }
     148};
     149template <class T>
     150class FTan {
     151public:
     152  FTan() { }
     153  FTan(FTan<T> const &) { }
     154  inline T FuncVal(T x) const { return tan(x); }
     155};
     156template <class T>
     157class FLog {
     158public:
     159  FLog() { }
     160  FLog(FLog<T> const &) { }
     161  inline T FuncVal(T x) const { return log(x); }
     162};
     163template <class T>
     164class FExp {
     165public:
     166  FExp() { }
     167  FExp(FExp<T> const &) { }
     168  inline T FuncVal(T x) const { return exp(x); }
     169};
     170
     171template <class T, class E, class F>
     172class JETExprFunc {
     173public:
     174  JETExprFunc(E e, F f) : e_(e), f_(f) { }
     175  JETExprFunc( JETExprFunc<T, E, F> const & a) : e_(a.e_), f_(a.f_) { }
     176  inline T EvaluateAndStep() const { return f_.FuncVal(e_.EvaluateAndStep()); }
     177  virtual MtxSize const & RefSize() const { return e_.RefSize() ; }
     178  inline void Reset() const { e_.Reset(); }
     179protected:
     180  E e_;
     181  F f_;
     182};
    134183
    135184
     
    174223  (JETExprMult<T,E1,E2>(e1.Expression(), e2.Expression()) ); }
    175224
     225//---- Definition Sin/Cos/Tan/Log/Exp
     226template <class T, class E>
     227JETExpression< T, JETExprFunc<T,E,FSin<T> > > Sin ( JETExpression<T,E> e)
     228{ return JETExpression< T, JETExprFunc<T,E,FSin<T> > > (JETExprFunc<T,E,FSin<T> >(e.Expression(), FSin<T>() ) ); }
    176229#endif
    177230
Note: See TracChangeset for help on using the changeset viewer.