12 enum intmethod {SUAVE, DIVONNE, VEGAS, CUHRE};
14 enum limtype {NUM, INF};
17 limit(const double& _number);
18 limit(const limtype& _LimType);
19 const limtype LimType;
23 typedef int (*integrand_t)(const int *ndim, const double x[],
24 const int *ncomp, double f[], void *userdata);
26 typedef int (*integrand_tc)(const int *ndim, const double x[],
27 const int *ncomp, std::complex<double> f[], void *userdata);
29 typedef std::vector<std::array<limit,2>> limits;
32 int seed, flags, nvec, mineval, maxeval;
33 double epsrel, epsabs;
34 const char *statefile;
37 seed(0), flags(0), nvec(1), mineval(0), maxeval(50000),
38 epsrel(1e-3), epsabs(1e-12), statefile(NULL), spin(NULL)
45 nnew(1000), flatness(25.)
50 int key1, key2, key3, maxpass, ngiven, ldxgiven, nextra;
51 double border, maxchisq, mindeviation;
53 peakfinder_t peakfinder;
55 key1(47), key2(1), key3(1), maxpass(5), border(0), maxchisq(10),
56 mindeviation(.25), ngiven(0), ldxgiven(0), xgiven(NULL),
57 peakfinder(NULL), nextra(0)
62 int nstart, nincrease, nbatch, gridno;
64 nstart(1000), nincrease(500), nbatch(1000), gridno(0)
81 extern const options DefaultOptions;
83 int integrate (integrand_t integrand, const intmethod& IntMethod,
84 const limits& Limits, const int& ncomp,
86 int& neval, int& fail, double integral[],
87 double error[], double prob[],
88 const unsigned int& verbosity=0,
89 void *userdata=NULL, const options& Options=DefaultOptions);
91 int integrate (integrand_tc integrand, const intmethod& IntMethod,
92 const limits& Limits, const int& ncomp,
94 int& neval, int& fail, std::complex<double> integral[],
95 std::complex<double> error[], std::complex<double> prob[],
96 const unsigned int& verbosity=0,
97 void *userdata=NULL, const options& Options=DefaultOptions);