A small Julia package to perform Gaussian quadrature in several dimensions on a fixed grid more conveniently.
Designed to be used with pre-existing or custom methods calculating the nodes and weights for Gaussian quadrature rules, such as the ones from FastGaussQuadrature.jl or QuadGK.jl.
In conjunction with IntegrationToolbox.jl it is also possible to apply different changes of variables across different dimensions.
Usage examples can be found in the test folder.
Instead of the tensor product grid constructed here, a more efficient extension of quadrature rules to multiple dimensions can be achieved using sparse grids, implemented for example in SparseGrids.jl or DistributedSparseGrids.jl.
Implementations of adaptive multidimensional Gaussian quadrature (i.e. cubature) are provided by HCubature.jl and Cubature.jl, which are generally a good default choice and adaptively subdivide the integration region to reduce the overall error.
See also Cuba.jl for Monte Carlo integration methods especially suited for higher-dimensional integrals.