# Quadrature rules

[The online encylopedia of quadrature rules](https://quadraturerules.org) is a reference website that lists a number of quadrature rules.

Quadrature rules are sets of points and weights that are used to approximate integrals. If $\{p_0,\dots,p_{n-1}\}\subset\mathbb{R}^d$ and $\{w_0,\dots,w_{n-1}\}\subset\mathbb{R}$
are the points and weights (repectively) of the quadrature rule for a single integral, then:

$$\int f(x)\,\mathrm{d}x \approx \sum_{i=0}^{n-1}f(p_i)w_i$$

## Libraries

All of the quadrature rules included in the online encylopedia of quadrature rules are included in the quadraturerules library, which is available in the following languages:

- [Python](https://quadraturerules.org/libraries/python.html)
- [Rust](https://quadraturerules.org/libraries/rust.html)
- [C++](https://quadraturerules.org/libraries/cpp.html)
- [C](https://quadraturerules.org/libraries/c.html)

## Python library

The quadraturerules Python library is available on [PyPI](https://pypi.org/project/quadraturerules/).
It can be installed by running:

```bash
python -m pip install quadraturerules
```

## Usage

The library's function `single_integral_quadrature` can be used to get the points and weights
of quadrature rules for a single integral. For example the following snippet will create an
order 3 Xiao--Gimbutas rule on a triangle:

```python
from quadraturerules import Domain, QuadratureRule, single_integral_quadrature

points, weights = single_integral_quadrature(
    QuadratureRule.XiaoGimbutas,
    Domain.Triangle,
    3,
)
```

Note that the points returned by the library are represented using
[barycentric coordinates](/barycentric.md).

