The HCubature module is a pure-Julia implementation of multidimensional "h-adaptive" integration. then hcubature(f, a, b) computes the integral, adaptively subdividing the integration volume into smaller and smaller pieces until convergence is achieved to the desired tolerance (specified by optional rtol and atol keyword arguments. Because hcubature is written purely in Julia, the integrand f(x) can return any vector-like object (technically, any type supporting +, -, * real, and norm: a Banach space). You can integrate real, complex, and matrix-valued integrands, for example. Note that HCubature assumes that your function f(x) can be computed at arbitrary points in the integration domain. (This is the ideal way to do numerical integration.) If you instead have f(x) precomputed at a fixed set of points, such as a Cartesian grid, you will need to use some other method (e.g. Trapz.jl for a multidimensional trapezoidal rule).
Features
- Pure-Julia multidimensional h-adaptive integration
- The HCubature module is a pure-Julia implementation of multidimensional "h-adaptive" integration
- Written purely in Julia
- You can integrate real, complex, and matrix-valued integrands
- The integration volume is adaptively subdivided
- Documentation available