Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:24:18

0001 #ifndef PhysicsTools_Utilities_Exp_h
0002 #define PhysicsTools_Utilities_Exp_h
0003 
0004 #include <cmath>
0005 
0006 namespace funct {
0007 
0008   template <typename T>
0009   struct ExpStruct {
0010     ExpStruct(const T& t) : _(t) {}
0011     inline double operator()() const { return ::exp(_()); }
0012     T _;
0013   };
0014 
0015   template <typename T>
0016   struct Exp {
0017     typedef ExpStruct<T> type;
0018     inline static type compose(const T& t) { return type(t); }
0019   };
0020 
0021   template <typename T>
0022   inline typename Exp<T>::type exp(const T& t) {
0023     return Exp<T>::compose(t);
0024   }
0025 
0026 }  // namespace funct
0027 
0028 #endif