disk_rule, a Python code which computes a quadrature rule over the interior of the general disk in 2D, with radius RC and center (XC,YC).

The user specifies values NT and NR, where NT is the number of equally spaced angles, and NR controls the number of radial points, the center of the disk (XC,YC), and the radius of the disk RC. The program returns vectors W(NR*NT), X(NR*NT) and Y(NR*NT), which define the rule Q(f).

To use a rule that is equally powerful in R and T, typically, set NT = 2 * NR.

Given NT, NR, and the quadrature vectors W, X, Y, the integral I(f) is estimated by Q(f) as follows:

        s = 0.0
        for k in range ( 0, nr * nt ):
          s = s + w[k] * f(x[k],y[k])
        area = pi * rc ** 2
        q = area * s


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


disk_rule is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version.

Related Data and Programs:

alpert_rule, a Python code which can set up an alpert quadrature rule for functions which are regular, log(x) singular, or 1/sqrt(x) singular.

annulus_rule, a python code which computes a quadrature rule for estimating integrals of a function over the interior of a circular annulus in 2d.

disk01_rule, a python code which computes quadrature rules over the interior of the unit disk in 2d, with center (0,0) and radius 1.

line_ncc_rule, a Python code which computes a Newton Cotes Closed (NCC) quadrature rule, using equally spaced points, over the interior of a line segment in 1D.

quadrule, a python code which defines quadrature rules for approximating an integral over a 1d domain.

square_minimal_rule, a Python code which returns almost minimal quadrature rules, with exactness up to total degree 55, over the interior of the symmetric square in 2D, by Mattia Festa and Alvise Sommariva.

truncated_normal_rule, a Python code which computes a quadrature rule for a normal probability density function (PDF), also called a Gaussian distribution, that has been truncated to [A,+oo), (-oo,B] or [A,B].


  1. Philip Davis, Philip Rabinowitz,
    Methods of Numerical Integration,
    Second Edition,
    Dover, 2007,
    ISBN: 0486453391,
    LC: QA299.3.D28.
  2. Sylvan Elhay, Jaroslav Kautsky,
    Algorithm 655: IQPACK, FORTRAN Subroutines for the Weights of Interpolatory Quadrature,
    ACM Transactions on Mathematical Software,
    Volume 13, Number 4, December 1987, pages 399-415.

Source Code:

Last revised on 22 January 2020.