# TEST_NINT Multi-dimensional Integration Test Functions.

TEST_NINT is a FORTRAN90 library which defines test problems for the approximate computation of integrals over multi-dimensional regions.

Routines are available to evaluate the integrand, return the exact value of the integral, report the name of the problem, report the integration limits, get, set or modify a base point.

The integrands is assigned an index. The integrands can be invoked by index. Most integrands may be defined for any value of the spatial dimension, which we denote here by m. Most integrands are defined on the unit m-dimensional hypercube. Some integrands include one or more parameters. These generally have default values, which can be altered by the user.

For each problem, a set of routines are available with a standard interface, for manipulating and evaluating the problem. For a problem with index "87", for instance, we might have the following set of routines. The most important is P87_F which evaluates the integrand. We probably also need P87_LIM to determine the limits of integration, and P87_EXACT to get the exact value of the integral (if known). A number of routines are available to set, get, or randomize parameters associated with the problem.

• P87_DEFAULT sets default values for problem 87.
• P87_EXACT returns the exact integral for problem 87.
• P87_F evaluates the integrand for problem 87.
• P87_I4 sets or gets integer scalar parameters for problem 87.
• P87_I4VEC sets or gets integer vector parameters for problem 87.
• P87_LIM returns the integration limits for problem 87.
• P87_NAME returns the name of problem 87.
• P87_R8 sets or gets real scalar parameters for problem 87.
• P87_R8VEC sets or gets real vector parameters for problem 87.
• P87_REGION returns the name of the integration region for problem 87.
• P87_TITLE prints a title for problem 87.

The list of integrand functions includes:

1. f(x) = ( sum ( x(1:m) ) )^2;
2. f(x) = ( sum ( 2 * x(1:m) - 1 ) )^4;
3. f(x) = ( sum ( x(1:m) ) )^5;
4. f(x) = ( sum ( 2 * x(1:m) - 1 ) )^6;
5. f(x) = 1 / ( 1 + sum ( 2 * x(1:m) ) );
6. f(x) = product ( 2 * abs ( 2 * x(1:m) - 1 ) );
7. f(x) = product ( pi / 2 ) * sin ( pi * x(1:m) );
8. f(x) = ( sin ( (pi/4) * sum ( x(1:m) ) ) )^2;
9. f(x) = exp ( sum ( c(1:m) * x(1:m) ) );
10. f(x) = sum ( abs ( x(1:m) - 0.5 ) );
11. f(x) = exp ( sum ( abs ( 2 * x(1:m) - 1 ) ) );
12. f(x) = product ( 1 <= i <= m ) ( i * cos ( i * x(i) ) );
13. f(x) = product ( 1 <= i <= m ) t(n(i))(x(i)), t(n(i)) is a Chebyshev polynomial;
14. f(x) = sum ( 1 <= i <= m ) (-1)^i * product ( 1 <= j <= i ) x(j);
15. f(x) = product ( 1 <= i <= order ) x(mod(i-1,m)+1);
16. f(x) = sum ( abs ( x(1:m) - x0(1:m) ) );
17. f(x) = sum ( ( x(1:m) - x0(1:m) )^2 );
18. f(x) = 1 inside an m-dimensional sphere around x0(1:m), 0 outside;
19. f(x) = product ( sqrt ( abs ( x(1:m) - x0(1:m) ) ) );
20. f(x) = ( sum ( x(1:m) ) ^power;
21. f(x) = c * product ( x(1:m)^e(1:m) ) on the surface of an m-dimensional unit sphere;
22. f(x) = c * product ( x(1:m)^e(1:m) ) in an m-dimensional ball;
23. f(x) = c * product ( x(1:m)^e(1:m) ) in the unit m-dimensional simplex;
24. f(x) = product ( abs ( 4 * x(1:m) - 2 ) + c(1:m) ) / ( 1 + c(1:m) ) );
25. f(x) = exp ( c * product ( x(1:m) ) );
26. f(x) = product ( c(1:m) * exp ( - c(1:m) * x(1:m) ) );
27. f(x) = cos ( 2 * pi * r + sum ( c(1:m) * x(1:m) ) ),
Genz "Oscillatory";
28. f(x) = 1 / product ( c(1:m)^2 + (x(1:m) - x0(1:m))^2),
Genz "Product Peak";
29. f(x) = 1 / ( 1 + sum ( c(1:m) * x(1:m) ) )^(m+r),
Genz "Corner Peak";
30. f(x) = exp(-sum(c(1:m)^2 * ( x(1:m) - x0(1:m))^2 ) ),
Genz "Gaussian";
31. f(x) = exp ( - sum ( c(1:m) * abs ( x(1:m) - x0(1:m) ) ) ), Genz "Continuous";
32. f(x) = exp(sum(c(1:m)*x(1:m)) for x(1:m) <= x0(1:m), 0 otherwise,
Genz "Discontinuous";
33. f(x) = sum ( x(1:n)^2 )
Ball R^2;

### An Important Quote:

"When good results are obtained in integrating a high-dimensional function, we should conclude first of all that an especially tractable integrand was tried and not that a generally successful method has been found. A secondary conclusion is that we might have made a very good choice in selecting an integration method to exploit whatever features of f made it tractable."
Art Owen,
Latin Supercube Sampling for Very High Dimensional Simulation,
ACM Transactions on Modeling and Computer Simulations,
Volume 8, Number 1, January 1998, pages 71-102.

### Languages:

TEST_NINT is available in a C++ version and a FORTRAN90 version and a MATLAB version.

### Related Data and Programs:

BALL_VOLUME_MONTE_CARLO, a FORTRAN90 program which applies a Monte Carlo method to estimate the volume of the unit 6D ball;

CUBPACK, a FORTRAN90 library which estimates the integral of a function over a collection of N-dimensional hyperrectangles and simplices.

GSL, a C++ library which includes routines for estimating multidimensional integrals.

INTEGRAL_TEST, a FORTRAN90 program which tests the suitability of a set of N points for use in an equal-weight quadrature rule over the multi-dimensional unit hypercube.

NINT_EXACTNESS, a FORTRAN90 program which measures the polynomial exactness of a multidimensional quadrature rule.

NINTLIB, a FORTRAN90 library which estimates integrals over multidimensional regions.

PRODUCT_RULE, a FORTRAN90 program which constructs a product quadrature rule from 1D factor rules.

QUADRATURE_RULES, a dataset directory which contains sets of files that define quadrature rules over various 1D intervals or multidimensional hypercubes.

QUADRATURE_TEST, a FORTRAN90 program which reads files defining a quadrature rule, and applies them to all the test integrals defined by TEST_NINT.

SANDIA_SPARSE, a FORTRAN90 library which can produce a multidimensional sparse grid, based on a variety of 1D quadrature rules; only isotropic grids are generated, that is, the same rule is used in each dimension, and the same maximum order is used in each dimension.

SIMPACK, a FORTRAN77 library which approximates the integral of a function over a multidimensional simplex.

SPARSE_GRID_CC, a FORTRAN90 library which creates sparse grids based on Clenshaw-Curtis rules.

STROUD, a FORTRAN90 library which defines quadrature rules for a variety of multidimensional reqions.

TEST_INT_2D, a FORTRAN90 library which defines test integrands for 2D quadrature rules.

TESTPACK, a FORTRAN90 library which defines a set of integrands used to test multidimensional quadrature.

### Reference:

1. JD Beasley, SG Springer,
Algorithm AS 111: The Percentage Points of the Normal Distribution,
Applied Statistics,
Volume 26, 1977, pages 118-121.
2. Paul Bratley, Bennett Fox, Harald Niederreiter,
Implementation and Tests of Low-Discrepancy Sequences,
ACM Transactions on Modeling and Computer Simulation,
Volume 2, Number 3, July 1992, pages 195-213.
3. Roger Broucke,
Algorithm 446: Ten Subroutines for the Manipulation of Chebyshev Series,
Communications of the ACM,
Volume 16, 1973, pages 254-256.
4. William Cody, Kenneth Hillstrom,
Chebyshev Approximations for the Natural Logarithm of the Gamma Function, Mathematics of Computation,
Volume 21, Number 98, April 1967, pages 198-203.
5. Richard Crandall,
Projects in Scientific Computing,
Springer, 2005,
ISBN: 0387950095,
LC: Q183.9.C733.
6. Philip Davis, Philip Rabinowitz,
Methods of Numerical Integration,
Second Edition,
Dover, 2007,
ISBN: 0486453391,
LC: QA299.3.D28.
7. Gerald Folland,
How to Integrate a Polynomial Over a Sphere,
American Mathematical Monthly,
Volume 108, Number 5, May 2001, pages 446-448.
8. Leslie Fox, Ian Parker,
Chebyshev Polynomials in Numerical Analysis,
Oxford Press, 1968,
LC: QA297.F65.
9. 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.
10. 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.
11. Kenneth Hanson,
Quasi-Monte Carlo: halftoning in high dimensions?
in Computatinal Imaging,
Edited by CA Bouman, RL Stevenson,
Proceedings SPIE,
Volume 5016, 2003, pages 161-172.
12. John Hart, Ward Cheney, Charles Lawson, Hans Maehly, Charles Mesztenyi, John Rice, Henry Thatcher, Christoph Witzgall,
Computer Approximations,
Wiley, 1968,
LC: QA297.C64.
13. Claude Itzykson, Jean-Michel Drouffe,
Statistical Field Theory,
Volume 1,
Cambridge, 1991,
ISBN: 0-521-40806-7,
LC: QC174.8.I89.
14. Stephen Joe, Frances Kuo
Remark on Algorithm 659: Implementing Sobol's Quasirandom Sequence Generator,
ACM Transactions on Mathematical Software,
Volume 29, Number 1, March 2003, pages 49-57.
15. David Kahaner, Cleve Moler, Steven Nash,
Numerical Methods and Software,
Prentice Hall, 1989,
ISBN: 0-13-627258-4,
LC: TA345.K34.
Computers in Physics,
Volume 10, Number 2, March/April, 1996, pages 119-122.
17. Arnold Krommer, Christoph Ueberhuber,
Numerical Integration on Advanced Computer Systems,
Springer, 1994,
ISBN: 3540584102,
LC: QA299.3.K76.
18. Anargyros Papageorgiou, Joseph Traub,
Faster Evaluation of Multidimensional Integrals,
Computers in Physics,
Volume 11, Number 6, November/December 1997, pages 574-578.
19. Thomas Patterson,
On the Construction of a Practical Ermakov-Zolotukhin Multiple Integrator,
in Numerical Integration: Recent Developments, Software and Applications,
edited by Patrick Keast and Graeme Fairweather,
D. Reidel, 1987, pages 269-290, LC: QA299.3.N38.
20. Arthur Stroud,
Approximate Calculation of Multiple Integrals,
Prentice Hall, 1971,
ISBN: 0130438936,
LC: QA311.S85.
21. Arthur Stroud, Don Secrest,
Prentice Hall, 1966,
LC: QA299.4G3S7.
22. Xiaoqun Wang, Kai-Tai Fang,
The Effective Dimension and quasi-Monte Carlo Integration,
Journal of Complexity,
Volume 19, pages 101-124, 2003.

### List of Routines:

• GET_PROBLEM_NUM returns the number of test integration problems.
• GET_SEED returns a seed for the random number generator.
• I4_HUGE returns a "huge" I4.
• INITS estimates the order of an orthogonal series for a given accuracy.
• LEGENDRE_COMPUTE computes a Gauss-Legendre quadrature rule.
• NORMAL_01_CDF_INV inverts the Normal 01 CDF.
• P00_BOX_GL uses Gauss-Legendre quadrature in an N-dimensional box.
• P00_BOX_GL05 uses Gauss-Legendre quadrature in an N-dimensional box.
• P00_BOX_MC integrates over an multi-dimensional box using Monte Carlo.
• P00_DEFAULT sets a problem to a default state.
• P00_EXACT returns the exact integral for any problem.
• P00_F evaluates the integrand for any problem.
• P00_I4 sets or gets I4 parameters for any problem.
• P00_LIM returns the integration limits for any problem.
• P00_NAME returns the name of the problem.
• P00_R8VEC sets or gets R8VEC parameters for any problem.
• P00_REGION returns the name of the integration region for any problem.
• P00_REMAP01 remaps points in [0,1]^DIM_NUM into [A(1:DIM_NUM),B(1:DIM_NUM)].
• P00_TITLE prints a title for any problem.
• P00_VOLUME returns the volume of the integration region.
• P01_DEFAULT sets default values for problem 01.
• P01_EXACT returns the exact integral for problem 01.
• P01_F evaluates the integrand for problem 01.
• P01_I4 sets or gets I4 parameters for problem 01.
• P01_LIM returns the integration limits for problem 01.
• P01_NAME returns the name of problem 01.
• P01_REGION returns the name of the integration region for problem 01.
• P01_TITLE prints a title for problem 01.
• P02_DEFAULT sets default values for problem 02.
• P02_EXACT returns the exact integral for problem 02.
• P02_F evaluates the integrand for problem 02.
• P02_I4 sets or gets I4 parameters for problem 02.
• P02_LIM returns the integration limits for problem 02.
• P02_NAME returns the name of problem 02.
• P02_REGION returns the name of the integration region for problem 02.
• P02_TITLE prints a title for problem 02.
• P03_DEFAULT sets default values for problem 03.
• P03_EXACT returns the exact integral for problem 03.
• P03_F evaluates the integrand for problem 03.
• P03_I4 sets or gets I4 parameters for problem 03.
• P03_LIM returns the integration limits for problem 03.
• P03_NAME returns the name of problem 03.
• P03_REGION returns the name of the integration region for problem 03.
• P03_TITLE prints a title for problem 03.
• P04_DEFAULT sets default values for problem 04.
• P04_EXACT returns the exact integral for problem 04.
• P04_F evaluates the integrand for problem 04.
• P04_I4 sets or gets I4 parameters for problem 04.
• P04_LIM returns the integration limits for problem 04.
• P04_NAME returns the name of problem 04.
• P04_REGION returns the name of the integration region for problem 04.
• P04_TITLE prints a title for problem 04.
• P05_DEFAULT sets default values for problem 05.
• P05_EXACT returns the exact integral for problem 05.
• P05_F evaluates the integrand for problem 05.
• P05_I4 sets or gets I4 parameters for problem 05.
• P05_LIM returns the integration limits for problem 05.
• P05_NAME returns the name of problem 05.
• P05_REGION returns the name of the integration region for problem 05.
• P05_TITLE prints a title for problem 05.
• P06_DEFAULT sets default values for problem 06.
• P06_EXACT returns the exact integral for problem 06.
• P06_F evaluates the integrand for problem 06.
• P06_I4 sets or gets I4 parameters for problem 06.
• P06_LIM returns the integration limits for problem 06.
• P06_NAME returns the name of problem 06.
• P06_REGION returns the name of the integration region for problem 06.
• P06_TITLE prints a title for problem 06.
• P07_DEFAULT sets default values for problem 07.
• P07_EXACT returns the exact integral for problem 07.
• P07_F evaluates the integrand for problem 07.
• P07_I4 sets or gets I4 parameters for problem 07.
• P07_LIM returns the integration limits for problem 07.
• P07_NAME returns the name of problem 07.
• P07_REGION returns the name of the integration region for problem 07.
• P07_TITLE prints a title for problem 07.
• P08_DEFAULT sets default values for problem 08.
• P08_EXACT returns the exact integral for problem 08.
• P08_F evaluates the integrand for problem 08.
• P08_I4 sets or gets I4 parameters for problem 08.
• P08_LIM returns the integration limits for problem 08.
• P08_NAME returns the name of problem 08.
• P08_REGION returns the name of the integration region for problem 08.
• P08_TITLE prints a title for problem 08.
• P09_DEFAULT sets default values for problem 09.
• P09_EXACT returns the exact integral for problem 09.
• P09_F evaluates the integrand for problem 09.
• P09_I4 sets or gets I4 parameters for problem 09.
• P09_LIM returns the integration limits for problem 09.
• P09_NAME returns the name of problem 09.
• P09_REGION returns the name of the integration region for problem 09.
• P09_R8VEC sets or gets R8VEC parameters for problem 09.
• P09_TITLE prints a title for problem 09.
• P10_DEFAULT sets default values for problem 10.
• P10_EXACT returns the exact integral for problem 10.
• P10_F evaluates the integrand for problem 10.
• P10_I4 sets or gets I4 parameters for problem 10.
• P10_LIM returns the integration limits for problem 10.
• P10_NAME returns the name of problem 10.
• P10_REGION returns the name of the integration region for problem 10.
• P10_TITLE prints a title for problem 10.
• P11_DEFAULT sets default values for problem 11.
• P11_EXACT returns the exact integral for problem 11.
• P11_F evaluates the integrand for problem 11.
• P11_I4 sets or gets I4 parameters for problem 11.
• P11_LIM returns the integration limits for problem 11.
• P11_NAME returns the name of problem 11.
• P11_REGION returns the name of the integration region for problem 11.
• P11_TITLE prints a title for problem 11.
• P12_DEFAULT sets default values for problem 12.
• P12_EXACT returns the exact integral for problem 12.
• P12_F evaluates the integrand for problem 12.
• P12_I4 sets or gets I4 parameters for problem 12.
• P12_LIM returns the integration limits for problem 12.
• P12_NAME returns the name of problem 12.
• P12_REGION returns the name of the integration region for problem 12.
• P12_TITLE prints a title for problem 12.
• P13_DEFAULT sets default values for problem 13.
• P13_EXACT returns the exact integral for problem 13.
• P13_F evaluates the integrand for problem 13.
• P13_I4 sets or gets I4 parameters for problem 13.
• P13_LIM returns the integration limits for problem 13.
• P13_NAME returns the name of problem 13.
• P13_REGION returns the name of the integration region for problem 13.
• P13_TITLE prints a title for problem 13.
• P14_DEFAULT sets default values for problem 14.
• P14_EXACT returns the exact integral for problem 14.
• P14_F evaluates the integrand for problem 14.
• P14_I4 sets or gets I4 parameters for problem 14.
• P14_LIM returns the integration limits for problem 14.
• P14_NAME returns the name of problem 14.
• P14_REGION returns the name of the integration region for problem 14.
• P14_TITLE prints a title for problem 14.
• P15_DEFAULT sets default values for problem 15.
• P15_EXACT returns the exact integral for problem 15.
• P15_F evaluates the integrand for problem 15.
• P15_I4 sets or gets I4 parameters for problem 15.
• P15_LIM returns the integration limits for problem 15.
• P15_NAME returns the name of problem 33.
• P15_REGION returns the name of the integration region for problem 15.
• P15_TITLE prints a title for problem 15.
• P16_DEFAULT sets default values for problem 16.
• P16_EXACT returns the exact integral for problem 16.
• P16_F evaluates the integrand for problem 16.
• P16_I4 sets or gets I4 parameters for problem 16.
• P16_LIM returns the integration limits for problem 16.
• P16_NAME returns the name of problem 16.
• P16_REGION returns the name of the integration region for problem 16.
• P16_R8VEC sets or gets R8VEC parameters for problem 16.
• P16_TITLE prints a title for problem 16.
• P17_DEFAULT sets default values for problem 17.
• P17_EXACT returns the exact integral for problem 17.
• P17_F evaluates the integrand for problem 17.
• P17_I4 sets or gets I4 parameters for problem 17.
• P17_LIM returns the integration limits for problem 17.
• P17_NAME returns the name of problem 17.
• P17_REGION returns the name of the integration region for problem 17.
• P17_R8VEC sets or gets R8VEC parameters for problem 17.
• P17_TITLE prints a title for problem 17.
• P18_DEFAULT sets default values for problem 18.
• P18_EXACT returns the exact integral for problem 18.
• P18_F evaluates the integrand for problem 18.
• P18_I4 sets or gets I4 parameters for problem 18.
• P18_LIM returns the integration limits for problem 18.
• P18_NAME returns the name of problem 18.
• P18_R8 sets or gets R8 parameters for problem 18.
• P18_REGION returns the name of the integration region for problem 18.
• P18_R8VEC sets or gets R8VEC parameters for problem 18.
• P18_TITLE prints a title for problem 18.
• P19_DEFAULT sets default values for problem 19.
• P19_EXACT returns the exact integral for problem 19.
• P19_F evaluates the integrand for problem 19.
• P19_I4 sets or gets I4 parameters for problem 19.
• P19_LIM returns the integration limits for problem 19.
• P19_NAME returns the name of problem 19.
• P19_REGION returns the name of the integration region for problem 19.
• P19_R8VEC sets or gets R8VEC parameters for problem 19.
• P19_TITLE prints a title for problem 19.
• P20_DEFAULT sets default values for problem 20.
• P20_EXACT returns the exact integral for problem 20.
• P20_F evaluates the integrand for problem 20.
• P20_I4 sets or gets I4 parameters for problem 20.
• P20_LIM returns the integration limits for problem 20.
• P20_NAME returns the name of problem 20.
• P20_R8 sets or gets R8 parameters for problem 20.
• P20_REGION returns the name of the integration region for problem 20.
• P20_TITLE prints a title for problem 20.
• P21_DEFAULT sets default values for problem 21.
• P21_EXACT returns the exact integral for problem 21.
• P21_F evaluates the integrand for problem 21.
• P21_I4 sets or gets I4 parameters for problem 21.
• P21_I4VEC sets or gets I4VEC parameters for problem 21.
• P21_LIM returns the integration limits for problem 21.
• P21_NAME returns the name of problem 21.
• P21_R8 sets or gets R8 parameters for problem 21.
• P21_REGION returns the name of the integration region for problem 21.
• P21_TITLE prints a title for problem 21.
• P22_DEFAULT sets default values for problem 22.
• P22_EXACT returns the exact integral for problem 22.
• P22_F evaluates the integrand for problem 22.
• P22_I4 sets or gets I4 parameters for problem 22.
• P22_I4VEC sets or gets I4VEC parameters for problem 22.
• P22_LIM returns the integration limits for problem 22.
• P22_NAME returns the name of problem 22.
• P22_R8 sets or gets R8 parameters for problem 22.
• P22_REGION returns the name of the integration region for problem 22.
• P22_TITLE prints a title for problem 22.
• P23_DEFAULT sets default values for problem 23.
• P23_EXACT returns the exact integral for problem 23.
• P23_F evaluates the integrand for problem 23.
• P23_I4 sets or gets I4 parameters for problem 23.
• P23_I4VEC sets or gets I4VEC parameters for problem 23.
• P23_LIM returns the integration limits for problem 23.
• P23_NAME returns the name of problem 23.
• P23_R8 sets or gets R8 parameters for problem 23.
• P23_REGION returns the name of the integration region for problem 23.
• P23_TITLE prints a title for problem 23.
• P24_DEFAULT sets default values for problem 24.
• P24_EXACT returns the exact integral for problem 24.
• P24_F evaluates the integrand for problem 24.
• P24_I4 sets or gets I4 parameters for problem 24.
• P24_LIM returns the integration limits for problem 24.
• P24_NAME returns the name of problem 24.
• P24_REGION returns the name of the integration region for problem 24.
• P24_R8VEC sets or gets R8VEC parameters for problem 24.
• P24_TITLE prints a title for problem 24.
• P25_DEFAULT sets default values for problem 25.
• P25_EXACT returns the exact integral for problem 25.
• P25_F evaluates the integrand for problem 25.
• P25_I4 sets or gets I4 parameters for problem 25.
• P25_LIM returns the integration limits for problem 25.
• P25_NAME returns the name of problem 25.
• P25_R8 sets or gets R8 parameters for problem 25.
• P25_REGION returns the name of the integration region for problem 25.
• P25_TITLE prints a title for problem 25.
• P26_DEFAULT sets default values for problem 26.
• P26_EXACT returns the exact integral for problem 26.
• P26_F evaluates the integrand for problem 26.
• P26_I4 sets or gets I4 parameters for problem 26.
• P26_LIM returns the integration limits for problem 26.
• P26_NAME returns the name of problem 26.
• P26_REGION returns the name of the integration region for problem 26.
• P26_R8VEC sets or gets R8VEC parameters for problem 26.
• P26_TITLE prints a title for problem 26.
• P27_DEFAULT sets default values for problem 27.
• P27_EXACT returns the exact integral for problem 27.
• P27_F evaluates the integrand for problem 27.
• P27_I4 sets or gets I4 parameters for problem 27.
• P27_LIM returns the integration limits for problem 27.
• P27_NAME returns the name of problem 27.
• P27_R8 sets or gets R8 parameters for problem 27.
• P27_REGION returns the name of the integration region for problem 27.
• P27_R8VEC sets or gets R8VEC parameters for problem 27.
• P27_TITLE prints a title for problem 27.
• P28_DEFAULT sets default values for problem 28.
• P28_EXACT returns the exact integral for problem 28.
• P28_F evaluates the integrand for problem 28.
• P28_I4 sets or gets I4 parameters for problem 28.
• P28_LIM returns the integration limits for problem 28.
• P28_NAME returns the name of problem 28.
• P28_REGION returns the name of the integration region for problem 28.
• P28_R8VEC sets or gets R8VEC parameters for problem 28.
• P28_TITLE prints a title for problem 28.
• P29_DEFAULT sets default values for problem 29.
• P29_EXACT returns the exact integral for problem 29.
• P29_F evaluates the integrand for problem 29.
• P29_I4 sets or gets I4 parameters for problem 29.
• P29_LIM returns the integration limits for problem 29.
• P29_NAME returns the name of problem 29.
• P29_R8 sets or gets R8 parameters for problem 29.
• P29_REGION returns the name of the integration region for problem 29.
• P29_R8VEC sets or gets R8VEC parameters for problem 29.
• P29_TITLE prints a title for problem 29.
• P30_DEFAULT sets default values for problem 30.
• P30_EXACT returns the exact integral for problem 30.
• P30_F evaluates the integrand for problem 30.
• P30_I4 sets or gets I4 parameters for problem 30.
• P30_LIM returns the integration limits for problem 30.
• P30_NAME returns the name of problem 30.
• P30_REGION returns the name of the integration region for problem 30.
• P30_R8VEC sets or gets R8VEC parameters for problem 30.
• P30_TITLE prints a title for problem 30.
• P31_DEFAULT sets default values for problem 31.
• P31_EXACT returns the exact integral for problem 31.
• P31_F evaluates the integrand for problem 31.
• P31_I4 sets or gets I4 parameters for problem 31.
• P31_LIM returns the integration limits for problem 31.
• P31_NAME returns the name of problem 31.
• P31_REGION returns the name of the integration region for problem 31.
• P31_R8VEC sets or gets R8VEC parameters for problem 31.
• P31_TITLE prints a title for problem 31.
• P32_DEFAULT sets default values for problem 32.
• P32_EXACT returns the exact integral for problem 32.
• P32_F evaluates the integrand for problem 32.
• P32_I4 sets or gets I4 parameters for problem 32.
• P32_LIM returns the integration limits for problem 32.
• P32_NAME returns the name of problem 32.
• P32_REGION returns the name of the integration region for problem 32.
• P32_R8VEC sets or gets R8VEC parameters for problem 32.
• P32_TITLE prints a title for problem 32.
• P33_DEFAULT sets default values for problem 33.
• P33_EXACT returns the exact integral for problem 33.
• P33_F evaluates the integrand for problem 33.
• P33_I4 sets or gets I4 parameters for problem 33.
• P33_LIM returns the integration limits for problem 33.
• P33_NAME returns the name of problem 33.
• P33_REGION returns the name of the integration region for problem 33.
• P33_TITLE prints a title for problem 33.
• R8_CHOOSE computes the combinatorial coefficient C(N,K).
• R8_CSEVL evaluates a Chebyshev series.
• R8_ERROR computes the error function.
• R8_ERRORC computes the complementary error function.
• R8_GAMMA evaluates Gamma(X) for a real argument.
• R8_GAMMA_LOG calculates the natural logarithm of GAMMA ( X ) for positive X.
• R8_HUGE returns a very large R8.
• R8VEC_PRINT prints an R8VEC.
• RANDOM_INITIALIZE initializes the FORTRAN90 random number seed.
• SIMPLEX_UNIT_VOLUME_ND computes the volume of the unit simplex in ND.
• SPHERE_UNIT_AREA_ND computes the surface area of a unit sphere in ND.
• SPHERE_UNIT_VOLUME_ND: volume of a unit sphere in multi-dimensions.
• SPHERE_VOLUME_ND computes the volume of a sphere in multi-dimensions.
• TIMESTAMP prints the current YMDHMS date as a time stamp.
• TUPLE_NEXT computes the next element of a tuple space.

You can go up one level to the FORTRAN90 source codes.

Last revised on 14 December 2012.