30 #ifndef MUPARSER_SCRIPTING_H
31 #define MUPARSER_SCRIPTING_H
39 #include <gsl/gsl_sf.h>
40 #include <gsl/gsl_cdf.h>
41 #include <gsl/gsl_randist.h>
42 #include <gsl/gsl_rng.h>
53 gsl_set_error_handler_off();
58 Script *
newScript(
const QString &code, QObject *context,
const QString &name=
"<input>")
65 bool setInt(
int,
const char*) {
return false; }
66 bool setDouble(
double,
const char*) {
return false; }
71 const static QStringList
functionsList(
bool tableContext =
false);
79 double (*
fun2)(double,double);
80 double (*
fun3)(double,double,double);
86 static double rnd(
double x){
87 gsl_rng_default_seed = (
unsigned int)x*time(NULL);
88 const gsl_rng_type * T = gsl_rng_default;
89 gsl_rng * r = gsl_rng_alloc (T);
90 double u = gsl_rng_uniform (r);
96 const gsl_rng_type * T = gsl_rng_default;
97 gsl_rng * r = gsl_rng_alloc (T);
100 gsl_rng_set(r, (
unsigned int)x*time(NULL));
101 double u = gsl_ran_ugaussian(r);
106 static double mod(
double x,
double y){
return fmod(x,y);};
107 static double bessel_I0(
double x){
return gsl_sf_bessel_I0 (x);};
108 static double bessel_I1(
double x){
return gsl_sf_bessel_I1 (x);};
109 static double bessel_In(
double x,
double n){
return gsl_sf_bessel_In ((
int)n, x);};
110 static double bessel_J0(
double x){
return gsl_sf_bessel_J0 (x);};
111 static double bessel_J1(
double x){
return gsl_sf_bessel_J1 (x);};
112 static double bessel_Jn(
double x,
double n){
return gsl_sf_bessel_Jn ((
int)n, x);};
113 static double bessel_Yn(
double x,
double n){
return gsl_sf_bessel_Yn ((
int)n, x);};
114 static double bessel_Jn_zero(
double n,
double s){
return gsl_sf_bessel_zero_Jnu(n, (
unsigned int) s);};
115 static double bessel_Y0(
double x){
return gsl_sf_bessel_Y0 (x);};
116 static double bessel_Y1(
double x){
return gsl_sf_bessel_Y1 (x);};
117 static double beta(
double a,
double b){
return gsl_sf_beta (a,b);};
118 static double erf(
double x){
return gsl_sf_erf (x);};
119 static double erfc(
double x){
return gsl_sf_erfc (x);};
120 static double erf_Z(
double x){
return gsl_sf_erf_Z (x);};
121 static double erf_Q(
double x){
return gsl_sf_erf_Q (x);};
122 static double gamma(
double x){
return gsl_sf_gamma (x);};
123 static double lngamma(
double x){
return gsl_sf_lngamma (x);};
124 static double hazard(
double x){
return gsl_sf_hazard (x);};
125 static double lambert_W0(
double x){
return gsl_sf_lambert_W0(x);};
126 static double lambert_Wm1(
double x){
return gsl_sf_lambert_Wm1(x);};
127 static double invt(
double x,
double n){
return gsl_cdf_tdist_P(x, n);};
128 static double ttable(
double x,
double n){
return gsl_cdf_tdist_Pinv(x, n);};
129 static double ftable(
double x,
double m,
double n){
return gsl_cdf_fdist_Pinv(x, m, n);};
130 static double invf(
double x,
double m,
double n){
return gsl_cdf_fdist_P(x, m, n);};
131 static double gauss_pdf(
double x,
double sigma){
return gsl_ran_gaussian_pdf (x, sigma);};
132 static double gauss_cdf(
double x,
double sigma){
return gsl_cdf_gaussian_P (x, sigma);};
133 static double inv_gauss_cdf(
double x,
double sigma){
return gsl_cdf_gaussian_Pinv(x, sigma);};
134 static double normcdf(
double x){
return gsl_cdf_ugaussian_P(x);};
135 static double norminv(
double x){
return gsl_cdf_ugaussian_Pinv(x);};
136 static double chi2cdf(
double x,
double n){
return gsl_cdf_chisq_P (x, n);};
137 static double chi2inv(
double x,
double n){
return gsl_cdf_chisq_Pinv(x, n);};
138 static double dilog(
double x){
return gsl_sf_dilog(x);};