quadrature-fortran : Adaptive Gaussian Quadrature with Modern Fortran
An object-oriented modern Fortran library to integrate functions using adaptive Gaussian quadrature. There are five selectable methods to use:
- Adaptive 6-point Legendre-Gauss
- Adaptive 8-point Legendre-Gauss
- Adaptive 10-point Legendre-Gauss
- Adaptive 12-point Legendre-Gauss
- Adaptive 14-point Legendre-Gauss
The library supports:
- 1D integration:
$$\int_{x_l}^{x_u} f(x) dx$$ - 2D integration:
$$\int_{y_l}^{y_u} \int_{x_l}^{x_u} f(x,y) dx dy$$ - 3D integration:
$$\int_{z_l}^{z_u} \int_{y_l}^{y_u} \int_{x_l}^{x_u} f(x,y,z) dx dy dz$$ - 4D integration:
$$\int_{q_l}^{q_u} \int_{z_l}^{z_u} \int_{y_l}^{y_u} \int_{x_l}^{x_u} f(x,y,z,q) dx dy dz dq$$ - 5D integration:
$$\int_{r_l}^{r_u} \int_{q_l}^{q_u} \int_{z_l}^{z_u} \int_{y_l}^{y_u} \int_{x_l}^{x_u} f(x,y,z,q,r) dx dy dz dq dr$$ - 6D integration:
$$\int_{s_l}^{s_u} \int_{r_l}^{r_u} \int_{q_l}^{q_u} \int_{z_l}^{z_u} \int_{y_l}^{y_u} \int_{x_l}^{x_u} f(x,y,z,q,r,s) dx dy dz dq dr ds$$
The core code is based on the SLATEC routine DGAUS8 (which is the source of the 8-point routine). Coefficients for the others were obtained from here. The original 1D code has been generalized for multi-dimensional integration.
The quadrature-fortran source code and related files and documentation are distributed under a permissive free software license (BSD-style).
- adaptive quadrature, automatic integrator, gauss quadrature, numerical integration