00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef MYPARSER_H
00030 #define MYPARSER_H
00031
00032 #include <muParser.h>
00033 #include <gsl/gsl_math.h>
00034 #include <gsl/gsl_sf.h>
00035
00036 #include <qstringlist.h>
00037
00038 using namespace mu;
00039
00048 class MyParser : public Parser
00049 {
00050 public:
00051 MyParser();
00052
00053 static QStringList functionsList();
00054 static QString explainFunction(int index);
00055
00056 static double bessel_J0(double x)
00057 {
00058 return gsl_sf_bessel_J0 (x);
00059 }
00060
00061 static double bessel_J1(double x)
00062 {
00063 return gsl_sf_bessel_J1 (x);
00064 }
00065
00066 static double bessel_Jn(double x, double n)
00067 {
00068 return gsl_sf_bessel_Jn ((int)n, x);
00069 }
00070
00071 static double bessel_Y0(double x)
00072 {
00073 return gsl_sf_bessel_Y0 (x);
00074 }
00075
00076 static double bessel_Y1(double x)
00077 {
00078 return gsl_sf_bessel_Y1 (x);
00079 }
00080 static double bessel_Yn(double x, double n)
00081 {
00082 return gsl_sf_bessel_Yn ((int)n, x);
00083 }
00084 static double beta(double a, double b)
00085 {
00086 return gsl_sf_beta (a, b);
00087 }
00088 static double erf(double x)
00089 {
00090 return gsl_sf_erf (x);
00091 }
00092 static double erfc(double x)
00093 {
00094 return gsl_sf_erfc (x);
00095 }
00096 static double erfz(double x)
00097 {
00098 return gsl_sf_erf_Z (x);
00099 }
00100 static double erfq(double x)
00101 {
00102 return gsl_sf_erf_Q (x);
00103 }
00104 static double gamma(double x)
00105 {
00106 return gsl_sf_gamma (x);
00107 }
00108 static double gammaln(double x)
00109 {
00110 return gsl_sf_lngamma (x);
00111 }
00112 static double hazard(double x)
00113 {
00114 return gsl_sf_hazard (x);
00115 }
00116 };
00117
00118 #endif