# NINTLIB Multi-dimensional quadrature

NINTLIB is a C++ library which estimates integrals over multi-dimensional regions.

Please note that these routines are simple and academic. A good program for computing an integral in multiple dimensions must include error estimation and adaptivity. Simple straightforward approaches to reducing the error will cause a ruinous explosion in the number of function evaluations required.

### Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

### Languages:

NINTLIB is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version.

### Related Data and Programs:

FEKETE, a C++ library which defines a Fekete rule for quadrature or interpolation over a triangle.

INTEGRAL_TEST, a FORTRAN90 program which tests the suitability of a set of N points for use in an equal-weight quadrature rule over the multi-dimensional unit hypercube.

INTLIB, a FORTRAN90 library which estimates the integral of a function over a one-dimensional interval.

NINT_EXACTNESS, a C++ program which demonstrates how to measure the polynomial exactness of a multidimensional quadrature rule.

PRODUCT_RULE, a C++ program which can create a multidimensional quadrature rule as a product of one dimensional rules.

QUADRULE, a C++ library which defines a variety of (mostly 1-dimensional) quadrature rules.

STROUD, a C++ library which defines a variety of quadrature rules over various "interesting" geometric shapes.

TEST_INT_2D, a C++ library which defines test integrands for 2D quadrature rules.

TEST_NINT, a C++ library which tests multi-dimensional quadrature routines.

### Reference:

1. Philip Davis, Philip Rabinowitz,
Methods of Numerical Integration,
Second Edition,
Dover, 2007,
ISBN: 0486453391,
LC: QA299.3.D28.

### List of Routines:

• BOX_ND estimates a multidimensional integral using a product rule.
• I4_HUGE returns a "huge" I4.
• I4_POWER returns the value of I^J.
• MONTE_CARLO_ND estimates a multidimensional integral using Monte Carlo.
• P5_ND estimates a multidimensional integral with a formula of exactness 5.
• R8_ABS returns the absolute value of an R8.
• R8_EPSILON returns the R8 roundoff unit.
• R8VEC_UNIFORM_01 returns a unit pseudorandom R8VEC.
• ROMBERG_ND estimates a multidimensional integral using Romberg integration.
• SAMPLE_ND estimates a multidimensional integral using sampling.
• SUM2_ND estimates a multidimensional integral using a product rule.
• TIMESTAMP prints the current YMDHMS date as a time stamp.
• TUPLE_NEXT computes the next element of a tuple space.

You can go up one level to the C++ source codes.

Last revised on 01 March 2007.