Changeset 2366 in Sophya for trunk/Eval/JET/jet.h
- Timestamp:
- Apr 18, 2003, 5:48:16 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Eval/JET/jet.h
r2363 r2366 132 132 }; 133 133 134 // -------- Classe Fonc(Expression) -------------- 135 template <class T> 136 class FSin { 137 public: 138 FSin() { } 139 FSin(FSin<T> const &) { } 140 inline T FuncVal(T x) const { return sin(x); } 141 }; 142 template <class T> 143 class FCos { 144 public: 145 FCos() { } 146 FCos(FCos<T> const &) { } 147 inline T FuncVal(T x) const { return cos(x); } 148 }; 149 template <class T> 150 class FTan { 151 public: 152 FTan() { } 153 FTan(FTan<T> const &) { } 154 inline T FuncVal(T x) const { return tan(x); } 155 }; 156 template <class T> 157 class FLog { 158 public: 159 FLog() { } 160 FLog(FLog<T> const &) { } 161 inline T FuncVal(T x) const { return log(x); } 162 }; 163 template <class T> 164 class FExp { 165 public: 166 FExp() { } 167 FExp(FExp<T> const &) { } 168 inline T FuncVal(T x) const { return exp(x); } 169 }; 170 171 template <class T, class E, class F> 172 class JETExprFunc { 173 public: 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(); } 179 protected: 180 E e_; 181 F f_; 182 }; 134 183 135 184 … … 174 223 (JETExprMult<T,E1,E2>(e1.Expression(), e2.Expression()) ); } 175 224 225 //---- Definition Sin/Cos/Tan/Log/Exp 226 template <class T, class E> 227 JETExpression< 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>() ) ); } 176 229 #endif 177 230
Note:
See TracChangeset
for help on using the changeset viewer.