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)
46 nnew(1000), flatness(25.), nmin(2)
51 int key1, key2, key3, maxpass, ngiven, ldxgiven, nextra;
52 double border, maxchisq, mindeviation;
54 peakfinder_t peakfinder;
56 key1(47), key2(1), key3(1), maxpass(5), border(0), maxchisq(10),
57 mindeviation(.25), ngiven(0), ldxgiven(0), xgiven(NULL),
58 peakfinder(NULL), nextra(0)
63 int nstart, nincrease, nbatch, gridno;
65 nstart(1000), nincrease(500), nbatch(1000), gridno(0)
82 extern const options DefaultOptions;
84 int integrate (integrand_t integrand, const intmethod& IntMethod,
85 const limits& Limits, const int& ncomp,
87 int& neval, int& fail, double integral[],
88 double error[], double prob[],
89 const unsigned int& verbosity=0,
90 void *userdata=NULL, const options& Options=DefaultOptions);
92 int integrate (integrand_tc integrand, const intmethod& IntMethod,
93 const limits& Limits, const int& ncomp,
95 int& neval, int& fail, std::complex<double> integral[],
96 std::complex<double> error[], std::complex<double> prob[],
97 const unsigned int& verbosity=0,
98 void *userdata=NULL, const options& Options=DefaultOptions);