QUADRATURE_TEST_GENZ
Quadrature Rule Applied to Genz Integrals
QUADRATURE_TEST_GENZ
is a FORTRAN90 program which
reads three files that define
a quadrature rule, applies the quadrature rule to the set of
Genz test integrals, and reports the results.
The quadrature rule is defined by three text files:
-
the "X" file lists the abscissas (N rows, M columns);
-
the "W" file lists the weights (N rows);
-
the "R" file lists the integration region corners
(2 rows, M columns);
For more on quadrature rules, see the QUADRATURE_RULES
listing below.
The Genz integrand functions include:
-
"Oscillatory": f(x) = cos ( 2 * pi * r + sum ( c(1:m) * x(1:m) ) );
-
"Product Peak": f(x) = 1 / product ( c(1:m)**2 + (x(1:m) - x0(1:m))**2);
-
"Corner Peak": f(x) = 1 / ( 1 + sum ( c(1:m) * x(1:m) ) )**(m+r);
-
"Gaussian": f(x) = exp(-sum(c(1:m)**2 * ( x(1:m) - x0(1:m))**2 ) );
-
"Continuous": f(x) = exp ( - sum ( c(1:m) * abs ( x(1:m) - x0(1:m) ) ) );
-
"Discontinuous": f(x) = exp(sum(c(1:m)*x(1:m)) for x(1:m) <= x0(1:m), 0 otherwise;
Usage:
quadrature_test_genz prefix
-
prefix
-
the common prefix for the files containing the abscissa (X),
weight (W) and region (R) information of the quadrature rule;
If the arguments are not supplied on the command line, the
program will prompt for them.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
QUADRATURE_TEST_GENZ is available in
a FORTRAN90 version.
Related Data and Programs:
GSL,
a C++ library which
includes routines for estimating multidimensional integrals.
INTEGRAL_TEST,
a FORTRAN90 program which
uses test integrals to evaluate sets of quadrature points.
NINT_EXACTNESS,
a FORTRAN90 program which
demonstrates how to measure the
polynomial exactness of a multidimensional quadrature rule.
NINTLIB,
a FORTRAN90 library which
numerically estimates integrals
in multiple dimensions.
QUADRATURE_RULES,
a dataset directory which
contains a description and examples of quadrature rules defined
by a set of "X", "W" and "R" files.
QUADRATURE_TEST,
a FORTRAN90 program which
reads files defining a quadrature rule, and
applies them to all the test integrals defined by TEST_NINT.
STROUD,
a FORTRAN90 library which
contains quadrature
rules for a variety of unusual areas, surfaces and volumes in 2D,
3D and N-dimensions.
TEST_NINT,
a FORTRAN90 library which
defines a set of integrand functions to be used for testing
multidimensional quadrature rules and routines.
TESTPACK,
a FORTRAN90 library which
defines a set of integrands used to test multidimensional quadrature.
Reference:
-
Alan Genz,
Testing Multidimensional Integration Routines,
in Tools, Methods, and Languages for Scientific and
Engineering Computation,
edited by B Ford, JC Rault, F Thomasset,
North-Holland, 1984, pages 81-94,
ISBN: 0444875700,
LC: Q183.9.I53.
-
Alan Genz,
A Package for Testing Multiple Integration Subroutines,
in Numerical Integration:
Recent Developments, Software and Applications,
edited by Patrick Keast, Graeme Fairweather,
Reidel, 1987, pages 337-340,
ISBN: 9027725144,
LC: QA299.3.N38.
Source Code:
Examples and Tests:
CC_D2_LEVEL4 is a Clenshaw-Curtis sparse grid quadrature
rule in dimension 2 of level 4, 65 points.
List of Routines:
-
MAIN is the main program for QUADRATURE_TEST_GENZ.
-
CH_CAP capitalizes a single character.
-
CH_EQI is a case insensitive comparison of two characters for equality.
-
CH_TO_DIGIT returns the integer value of a base 10 digit.
-
FILE_COLUMN_COUNT counts the number of columns in the first line of a file.
-
FILE_ROW_COUNT counts the number of row records in a file.
-
GET_UNIT returns a free FORTRAN unit number.
-
R8MAT_DATA_READ reads data from an R8MAT file.
-
R8MAT_HEADER_READ reads the header from an R8MAT file.
-
S_TO_I4 reads an I4 from a string.
-
S_TO_R8 reads an R8 from a string.
-
S_TO_R8VEC reads an R8VEC from a string.
-
S_WORD_COUNT counts the number of "words" in a string.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 17 October 2007.