This module provides one- and multi-dimensional adaptive integration routines for the Julia language, including support for vector-valued integrands and facilitation of parallel evaluation of integrands, based on the Cubature Package by Steven G. Johnson. Adaptive integration works by evaluating the integrand at more and more points until the integrand converges to a specified tolerance (with the error estimated by comparing integral estimates with different numbers of points). The Cubature module implements two schemes for this adaptation: h-adaptivity (routines hquadrature, hcubature, hquadrature_v, and hcubature_v) and p-adaptivity (routines pquadrature, pcubature, pquadrature_v, and pcubature_v). The h- and p-adaptive routines accept the same parameters, so you can use them interchangeably, but they have very different convergence characteristics.
Features
- h-adaptive integration works by recursively subdividing the integration domain into smaller and smaller regions
- p-adaptive integration works by repeatedly doubling the number of points in the same domain
- h-adaptive algorithm only evaluates the integrand at the interior of the domain
- p-adaptive algorithm also evaluates the integrand at the edges
- One-dimensional integrals of real-valued integrands
- Multi-dimensional integrals of real-valued integrands