Files Classes Functions Hierarchy
00001 #ifndef FUNC_H 00002 #define FUNC_H 00003 00004 // 00005 // Mathmatical functions generalized in a C++ perspective. 00006 // 00007 00011 #define funcA1(nm,fx,x,TYPEFX,TYPEX) \ 00012 class nm { \ 00013 public: \ 00014 void operator()( TYPEX & val, TYPEX x ) { val = (fx); } \ 00015 TYPEFX operator() ( TYPEX x ) { return (fx); } \ 00016 } 00017 00030 #define funcA2(nm,fx,x0,x1,TYPEFX,TYPEX) \ 00031 class nm { \ 00032 public: \ 00033 void operator()( TYPEFX & val, TYPEX x0, TYPEX x1 ) { val = (fx); } \ 00034 TYPEFX operator()( TYPEX x0, TYPEX x1 ) { return (fx); } \ 00035 } 00036 00040 #define funcA3(nm,fx,x0,x1,x2,TYPEFX,TYPEX) \ 00041 class nm { \ 00042 public: \ 00043 void operator()( TYPEFX & val, TYPEX x0, TYPEX x1, TYPEX x2 ) { val = (fx); } \ 00044 TYPEFX operator()( TYPEX x0, TYPEX x1, TYPEX x2 ) { return (fx); } \ 00045 } 00046 00069 #define funcA1V2(nm,fx,x,TYPEFX,TYPEX) \ 00070 class nm { public : \ 00071 TYPEFX v0, v1; \ 00072 nm(TYPEFX v0_, TYPEFX v1_) : v0(v0_), v1(v1_) {} \ 00073 void operator()(TYPEFX & val, TYPEX x) { val = (fx); } \ 00074 TYPEFX operator() ( TYPEX x ) { return (fx); } } 00075 00079 #define funcA1V1(nm,fx,x,TYPEFX,TYPEX) \ 00080 class nm { public : \ 00081 TYPEFX v0; \ 00082 nm(TYPEFX v0_) : v0(v0_) {} \ 00083 void operator()(TYPEFX & val, TYPEX x) { val = (fx); } \ 00084 TYPEFX operator() ( TYPEX x ) { return (fx); } } 00085 00089 #define funcA1V3(nm,fx,x,TYPEFX,TYPEX) \ 00090 class nm { public : \ 00091 TYPEFX v0, v1, v2; \ 00092 nm(TYPEFX v0_, TYPEFX v1_, TYPEFX v2_) : v0(v0_), v1(v1_), v2(v2_) {} \ 00093 void operator()(TYPEFX & val, TYPEX x) { val = (fx); } \ 00094 TYPEFX operator() ( TYPEX x ) { return (fx); } } 00095 00096 00115 #define funcTA1(nm,fx,x) \ 00116 template< typename FX, typename X > \ 00117 class nm { \ 00118 public: \ 00119 void operator()( FX & val, X x ) { val = (fx); } \ 00120 FX operator()( X x ) { return (fx); } \ 00121 } 00122 00141 #define funcTA2(nm,fx,x0,x1) \ 00142 template< typename FX, typename X > \ 00143 class nm { \ 00144 public: \ 00145 void operator()( FX & val, X x0, X x1 ) { val = (fx); } \ 00146 FX operator()( X x0, X x1 ) { return (fx); } \ 00147 } 00148 00153 #define funcTA3(nm,fx,x0,x1,x2) \ 00154 template< typename FX, typename X > \ 00155 class nm { \ 00156 public: \ 00157 void operator()( FX & val, X x0, X x1, X x2 ) { val = (fx); } \ 00158 FX operator()( X x0, X x1, X x2 ) { return (fx); } \ 00159 } 00160 00161 00162 #endif 00163
1.5.8