TOMS462
Bivariate Normal Distribution
TOMS462
is a C++ library which
evaluates the upper right tail of the bivariate normal distribution; that is,
the probability that normal variables X and Y with correlation R will
satisfy H <= X and K <= Y.
While the text of many ACM TOMS algorithms is available online
through ACM:
http://www.acm.org/pubs/calgo
or NETLIB:
http://www.netlib.org/toms/index.html, most of the early
algorithms are not available. This is one of them. I typed it
in.
Usage:
-
value = bivnor ( ah, ak, r )
-
computes VALUE, the probability that two variables,
X and Y related by a bivariate normal distribution
with correlation R, satisfy AH <= X and
AK <= Y.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
TOMS462 is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
OWENS,
a C++ library which
evaluates Owen's T function.
PROB,
a C++ library which
contains a
number of routines for evaluating cumulative distribution functions.
TEST_VALUES,
a C++ library which
supplies test values of various mathematical functions.
Reference:
-
Thomas Donnelly,
Algorithm 462: Bivariate Normal Distribution,
Communications of the ACM,
October 1973, Volume 16, Number 10, page 638.
-
Donald Owen,
Tables for Computing Bivariate Normal Probabilities,
Annals of Mathematical Statistics,
Volume 27, Number 4, pages 1075-1090, December 1956.
Source Code:
Examples and Tests:
List of Routines:
-
BIVARIATE_NORMAL_CDF_VALUES returns some values of the bivariate normal CDF.
-
BIVNOR computes the bivariate normal CDF.
-
GAUSS returns the area of the lower tail of the normal curve.
-
R8_ABS returns the absolute value of an R8.
-
R8_MAX returns the maximum of two R8's.
-
R8_MIN returns the minimum of two R8's.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the C++ source codes.
Last revised on 13 April 2012.