TRUNCATED_NORMAL_RULE
Quadrature Rule for Truncated Normal Distribution
TRUNCATED_NORMAL_RULE,
a C program which
computes a quadrature rule for a normal probability density function (PDF),
sometimes called a Gaussian distribution, that has been
truncated to [A,+oo), (oo,B] or [A,B].
Licensing:
The computer code and data files made available on this
web page are distributed under
the GNU LGPL license.
Languages:
TRUNCATED_NORMAL_RULE is available in
a C version and
a C++ version and
a FORTRAN77 version and
a FORTRAN90 version and
a MATLAB version and
a Python version.
Related Data and Programs:
CCN_RULE,
a C program which
defines one of a set of nested Clenshaw Curtis quadrature rules.
CLENSHAW_CURTIS_RULE,
a C program which
defines a Clenshaw Curtis quadrature rule.
HERMITE_RULE,
a C program which
can compute and print a GaussHermite quadrature rule.
LAGUERRE_RULE,
a C program which
can compute and print a GaussLaguerre quadrature rule
for estimating the integral of a function with density exp(x)
over the interval [0,+oo).
LEGENDRE_RULE,
a C program which
computes a 1D GaussLegendre quadrature rule.
LINE_FELIPPA_RULE,
a C library which
returns the points and weights of a Felippa quadrature rule
over the interior of a line segment in 1D.
QUADRULE,
a C library which
defines 1dimensional quadrature rules.
TRUNCATED_NORMAL,
a C library which
works with the truncated normal distribution over [A,B], or
[A,+oo) or (oo,B], returning the probability density function (PDF),
the cumulative density function (CDF), the inverse CDF, the mean,
the variance, and sample values.
Reference:

Gene Golub, John Welsch,
Calculation of Gaussian Quadrature Rules,
Mathematics of Computation,
Volume 23, Number 106, April 1969, pages 221230.

Norman Johnson, Samuel Kotz, Narayanaswamy Balakrishnan,
Continuous Univariate Distributions,
Second edition,
Wiley, 1994,
ISBN: 0471584940,
LC: QA273.6.J6.
Source Code:
Examples and Tests:
"OPTION0" computes a quadrature rule for the normal distribution,
n = 5, mu = 1.0, sigma = 2.0;
"OPTION1" computes a quadrature rule for the lower truncated normal distribution,
n = 9, mu = 2.0, sigma = 0.5, a = 0.0;
"OPTION2" computes a quadrature rule for the upper truncated normal distribution,
n = 9, mu = 2.0, sigma = 0.5, b = 3.0;
"OPTION3" computes a quadrature rule for the doubly truncated normal distribution,
n = 5, mu = 100.0, sigma = 25.0, a = 50.0, b = 100.0;
List of Routines:

MAIN is the main program for TRUNCATED_NORMAL_RULE.

CH_CAP capitalizes a single character.

CH_EQI is a case insensitive comparison of two characters for equality.

CH_TO_DIGIT returns the value of a base 10 digit.

GET_UNIT returns a free FORTRAN unit number.

JACOBI_EIGENVALUE carries out the Jacobi eigenvalue iteration.

MOMENT_METHOD computes a quadrature rule by the method of moments.

MOMENTS_NORMAL returns moments of the standard Normal distribution.

MOMENTS_TRUNCATED_NORMAL_AB: moments of truncated Normal distribution.

MOMENTS_TRUNCATED_NORMAL_A: moments of lower truncated Normal distribution.

MOMENTS_TRUNCATED_NORMAL_B: moments of upper truncated Normal distribution.

NORMAL_01_CDF evaluates the Normal 01 CDF.

NORMAL_01_PDF evaluates the Normal 01 PDF.

R8_CHOOSE computes the binomial coefficient C(N,K) as an R8.

R8_FACTORIAL computes the factorial of N.

R8_FACTORIAL2 computes the double factorial function.

R8_HUGE returns a very large R8.

R8_MOP returns the Ith power of 1 as an R8.

R8MAT_CHOLESKY_FACTOR_UPPER: upper Cholesky factor of a symmetric matrix.

R8MAT_PRINT prints an R8MAT.

R8MAT_PRINT_SOME prints some of an R8MAT.

R8MAT_WRITE writes an R8MAT file.

R8VEC_PRINT prints an R8VEC.

RULE_WRITE writes a quadrature rule to a file.

S_TO_I4 reads an I4 from a string.

S_TO_R8 reads an R8 value from a string.

TIMESTAMP prints the current YMDHMS date as a time stamp.

TRUNCATED_NORMAL_AB_MOMENT: moments of the truncated Normal PDF.

TRUNCATED_NORMAL_A_MOMENT: moments of the lower truncated Normal PDF.

TRUNCATED_NORMAL_B_MOMENT: moments of the upper truncated Normal PDF.
You can go up one level to
the C source codes.
Last revised on 20 September 2013.