| Crates.io | quadraturerules |
| lib.rs | quadraturerules |
| version | 0.9.0 |
| created_at | 2025-01-14 11:37:21.525755+00 |
| updated_at | 2025-09-02 09:07:49.831393+00 |
| description | quadrature rules library |
| homepage | https://quadraturerules.org |
| repository | https://github.com/quadraturerules/quadraturerules |
| max_upload_size | |
| id | 1515862 |
| size | 13,629,335 |
The online encylopedia of quadrature rules 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$$
Before building the online encylopedia of quadrature rules, you must first install qrtools from the python directory:
cd python
python3 -m pip install .
The online encylopedia of quadrature rules website can then be built by running:
cd website
python3 build.py
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:
| Language | Badges |
|---|---|
| C | |
| C++ | |
| Fortran | |
| FORTRAN 77 | |
| Julia | |
| Python | |
| Rust |
Before building any of the libraries, you must first install qrtools from the python directory:
cd python
python3 -m pip install .
You can then build the libraries using the build.py script in the library directory. For example, to build the python library, you can run:
cd library
python build.py python
and to build the rust library, you can run:
cd library
python build.py rust
The source code of the quadraturerules C++ library can be downloaded from the latest release on GitHub. It can be installed by running:
wget https://github.com/quadraturerules/quadraturerules/releases/download/v{{VERSION}}/quadraturerules-cpp-v{{VERSION}}.tar.gz
mkdir src
tar -xvf quadraturerules-cpp-v{{VERSION}}.tar.gz -C src
mkdir build
cd build
cmake ../src
make
make install
Once the library is installed, you can run the tests by running:
python src/test/run_tests.py
Or you can run individual tests:
cd src/test/{TEST_NAME}
cmake .
make .
./{TEST_NAME}
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:
#include <quadraturerules.h>
using quadraturerules;
auto [points, weights] = single_integral_quadrature(
QuadratureRule::XiaoGimbutas,
Domain::Triangle,
3
);
Note that the points returned by the library are represented using barycentric coordinates.
The C++ quadraturerules library can be generated from the templates in the online encyclopedia of quadrature rules GitHub repo. First clone the repo and move into the library directory:
git clone https://github.com/quadraturerules/quadraturerules.git
cd quadraturerules/library
The C++ library can then be generated by running:
python build.py cpp
This will create a directory called cpp.build containing the C++ source code.