1 /*///////////////////////////////////////////////////////////////////////////////////// 2 // project : sFFe ( SegFault (or Segmentation Fault :) ) formula evalutaor ) 3 // author : Mateusz Malczak ( mateusz@malczak.info ) 4 // wpage : 5 /////////////////////////////////////////////////////////////////////////////////////*/ 6 #ifndef SFFE_CMPLX_GSL_H 7 #define SFFE_CMPLX_GSL_H 8 9 #ifdef SFFE_CMPLX_GSL 10 11 #include "sffe.h" 12 13 #include <gsl/gsl_complex.h> 14 #include <gsl/gsl_complex_math.h> 15 16 #define sffnctscount 43 17 #define sfvarscount 6 18 #define cmplxset(c, r, i) GSL_SET_COMPLEX(&c, r, i) 19 #define real(c) GSL_REAL((c)) 20 #define imag(c) GSL_IMAG((c)) 21 22 sfarg *sfadd(sfarg *const p); /* + */ 23 sfarg *sfsub(sfarg *const p); /* - */ 24 sfarg *sfmul(sfarg *const p); /* * */ 25 sfarg *sfdiv(sfarg *const p); /* / */ 26 sfarg *sfsin(sfarg *const p); /* sin */ 27 sfarg *sfcos(sfarg *const p); /* cos */ 28 sfarg *sftan(sfarg *const p); /* tan */ 29 sfarg *sfcot(sfarg *const p); /* ctan */ 30 sfarg *sfasin(sfarg *const p); /* asin */ 31 sfarg *sfacos(sfarg *const p); /* acos */ 32 sfarg *sfatan(sfarg *const p); /* atan */ 33 sfarg *sfacot(sfarg *const p); /* actan */ 34 sfarg *sfatan2(sfarg *const p); /* atan2 */ 35 sfarg *sfsinh(sfarg *const p); /* sinh */ 36 sfarg *sfcosh(sfarg *const p); /* cosh */ 37 sfarg *sftanh(sfarg *const p); /* tanh */ 38 sfarg *sfcoth(sfarg *const p); /* ctanh */ 39 sfarg *sfexp(sfarg *const p); /* exp */ 40 sfarg *sflog(sfarg *const p); /* log */ 41 sfarg *sflog10(sfarg *const p); /* log10 */ 42 sfarg *sflog2(sfarg *const p); /* log2 */ 43 sfarg *sflogN(sfarg *const p); /* logN */ 44 sfarg *sfpow(sfarg *const p); /* csflx pow */ 45 sfarg *sfpowd(sfarg *const p); /* double pow */ 46 sfarg *sfpowi(sfarg *const p); /* double pow */ 47 sfarg *sfpowdc(sfarg *const p); /* double to csflx pow */ 48 sfarg *sfsqr(sfarg *const p); /* sqr */ 49 sfarg *sfsqrt(sfarg *const p); /* sqrt */ 50 sfarg *sfrtni(sfarg *const p); /* rtni */ 51 sfarg *sfinv(sfarg *const p); /* cinv */ 52 sfarg *sfceil(sfarg *const p); /* ceil */ 53 sfarg *sffloor(sfarg *const p); /* floor */ 54 sfarg *sfabs(sfarg *const p); /* abs - |z| */ 55 sfarg *sfre(sfarg *const p); /* RE */ 56 sfarg *sfim(sfarg *const p); /* IM */ 57 sfarg *sfrabs(sfarg *const p); /* abs - real numbers */ 58 sfarg *sfrand(sfarg *const p); /* rand */ 59 /*const eval*/ 60 void sfcPI(sfNumber *cnst); 61 void sfcPI2(sfNumber *cnst); 62 void sfc2PI(sfNumber *cnst); 63 void sfcE(sfNumber *cnst); 64 void sfcI(sfNumber *cnst); 65 void sfcRND(sfNumber *cnst); 66 67 /* all available function (function pointer, number of parameters, name )*/ 68 extern const sffunction sfcmplxfunc[sffnctscount]; 69 /* all available buildin variables */ 70 extern const char sfcnames[sfvarscount][6]; 71 /* available variables function pointers */ 72 extern const cfptr sfcvals[sfvarscount]; 73 74 #endif 75 #endif 76