# QuadGK.jl

This package provides support for one-dimensional numerical integration in Julia using adaptive
Gauss-Kronrod quadrature.
The code was originally part of Base Julia. It supports integration of arbitrary numeric types,
including arbitrary precision (`BigFloat`

), and even integration of arbitrary normed vector spaces
(e.g. matrix-valued integrands).

The package provides three basic functions: `quadgk`

, `gauss`

, and `kronrod`

.
`quadgk`

performs the integration, `gauss`

computes Gaussian quadrature points and weights for integrating
over the interval [a, b], and `kronrod`

computes Kronrod points, weights, and embedded Gaussian quadrature
weights for integrating over [-1, 1]. Typical usage looks like:

```
using QuadGK
integral, err = quadgk(x -> exp(-x^2), 0, 1, rtol=1e-8)
```

which computes the integral of exp(–x²) from x=0 to x=1 to a relative tolerance of 10⁻⁸, and returns the approximate `integral = 0.746824132812427`

and error estimate `err = 7.887024366937112e-13`

(which is actually smaller than the requested tolerance: convergence was very rapid because the integrand is smooth).

For more information, see the documentation.