1 #ifndef CUBAINT_INTERNAL_HPP
2 #define CUBAINT_INTERNAL_HPP
5 typedef void (*kernelmap_intvar)(const double& x01, double& xab,
6 const std::array<limit,2>& range);
8 extern const kernelmap_intvar kernelmap_intvars[];
10 void kernelmap_intvar_numnum(const double& x01, double& xab,
11 const std::array<limit,2>& range);
12 void kernelmap_intvar_numinf(const double& x01, double& xab,
13 const std::array<limit,2>& range);
14 void kernelmap_intvar_infnum(const double& x01, double& xab,
15 const std::array<limit,2>& range);
16 void kernelmap_intvar_infinf(const double& x01, double& xab,
17 const std::array<limit,2>& range);
19 typedef double (*kernelmap_intmulti)(const double& x01,
20 const std::array<limit,2>& range);
22 double kernelmap_intmulti_numnum(const double& x01,
23 const std::array<limit,2>& range);
24 double kernelmap_intmulti_numinf(const double& x01,
25 const std::array<limit,2>& range);
26 double kernelmap_intmulti_infnum(const double& x01,
27 const std::array<limit,2>& range);
28 double kernelmap_intmulti_infinf(const double& x01,
29 const std::array<limit,2>& range);
31 extern const kernelmap_intmulti kernelmap_intmultis[];
33 template <typename integrandtype, typename compreal>
34 int masterintegrand(const int *ndim, const double x01[],
35 const int *ncomp, double f[], void *MetaUserData);
37 template <typename integrandtype>
41 integrandtype integrand;
43 metauserdata (void *_userdata, const limits& _Limits,
44 integrandtype _integrand) :
45 userdata(_userdata), Limits(_Limits), integrand(_integrand)
49 template <typename integrandtype, typename compreal>
50 int _integrate (integrandtype integrand, const intmethod& IntMethod,
51 const limits& Limits, const int& ncomp,
53 int& neval, int& fail, compreal integral[],
54 compreal error[], compreal prob[],
55 const unsigned int& verbosity=0, void *userdata=NULL,
56 const options& Options=DefaultOptions);