HCubature.jl
Pure-Julia multidimensional h-adaptive integration
...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. ...