alpert_rule
alpert_rule,
a MATLAB code which
has tabulated values that define Alpert quadrature rules of a number
of orders of accuracy for functions that are regular, log singular,
or power singular.
The rules defined here assume that the integral is to be taken over the
interval [0,1]. The interval is divided into N+1 intervals. The leftmost
and rightmost intervals are handled in a special way, depending on whether
a particular kind of singularity is expected.
A singularity may exist at the left endpoint, x = 0. The cases are:

regular, no singularity;

power, the integrand has the form g(x)=x^(1/2)*phi(x)+psi(x);

log, the integrand has the form g(x)=phi(x)*log(x)+psi(x);
In case one, the regular Alpert rule is used in both end intervals.
In case two, the power singular Alpert rule is used in the leftmost interval.
In case three, the log singular Alpert rule is used in the leftmost interval.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
alpert_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_test
line_fekete_rule,
a MATLAB code which
returns the points and weights of a Fekete quadrature rule
over the interior of a line segment in 1D.
line_felippa_rule,
a MATLAB code which
returns the points and weights of a Felippa quadrature rule
over the interior of a line segment in 1D.
line_ncc_rule,
a MATLAB code which
computes a Newton Cotes Closed (NCC) quadrature rule for the line,
that is, for an interval of the form [A,B], using equally spaced points
which include the endpoints.
line_nco_rule,
a MATLAB code which
computes a Newton Cotes Open (NCO) quadrature rule,
using equally spaced points,
over the interior of a line segment in 1D.
quadrature_weights_vandermonde,
a MATLAB code which
computes the weights of a quadrature rule using the Vandermonde
matrix, assuming that the points have been specified.
triangle_fekete_rule,
a MATLAB code which
defines Fekete rules for quadrature or interpolation over a triangle.
vandermonde,
a MATLAB code which
carries out certain operations associated
with the Vandermonde matrix.
Reference:

Bradley Alpert,
Hybrid GaussTrapezoidal Quadrature Rules,
SIAM Journal on Scientific Computing,
Volume 20, Number 5, pages 15511584, 1999.
Source Code:

a_log.m
returns the value of A for a given log singular rule.

a_power.m
returns the value of A for a given power singular rule.

a_regular.m
returns the value of A for a given regular rule.

integral_log.m
returns the exact integral of the log singular test integrand.

integral_power.m
returns the exact integral of the power singular test integrand.

integral_regular.m
returns the exact integral of the regular test integrand.

integrand_log.m
evaluates the log singular test integrand.

integrand_power.m
evaluates the power singular test integrand.

integrand_regular.m
evaluates the regular test integrand.

j_log.m
returns the number of abscissas for a log singular Alpert rule.

j_power.m
returns the number of abscissas for a power singular Alpert rule.

j_regular.m
returns the number of abscissas for a regular Alpert rule.

num_log.m
returns the number of log singular Alpert rules.

num_power.m
returns the number of power singular Alpert rules.

num_regular.m
returns the number of regular Alpert rules.

order_log.m
returns the convergence rate of log singular Alpert rules.

order_power.m
returns the convergence rate of power singular Alpert rules.

order_regular.m
returns the convergence rate of regular Alpert rules.

r8vec_uniform_01.m,
returns a unit pseudorandom R8VEC.

rule_log.m
returns abscissas and weights for a log singular Alpert rule.

rule_power.m
returns abscissas and weights for a power singular Alpert rule.

rule_regular.m
returns abscissas and weights for a regular Alpert rule.
Last revised on 02 November 2018.