Algorithims
Care has been taken in the selection of all algorithms used in BCSLIB to ensure significant accuracy and a wide range of numeric representation where required, and to provide many options to allow selection of an appropriate algorithm that fits the requirements of the customer's problem. A few examplse are described below:
Special Functions --- Incomplete Gamma Function
The BCSLIB normalized incomplete gamma functions P(a,x) and Q(a,x) satisfy P(a,x) + Q(a,x) = 1. Both results are returned to avoid possible loss of significance for values near 1.
The functions can be computed for order 'a' in [1.0E-5, 1.0E+16] and argument x >= 0. In terms of the Chi-squared distribution, the order corresponds to the degrees-of-freedom interval [2.0E-5, 2.0E+16]. The relative accuracy is at least 11 decimal digits.
Depending on the input values, the results are computed with power series, continued fractions, or uniform asymptotic expansions. These methods are described in:
[2] N. M. Temme. The asymptotic expansion of the incomplete gamma functions. SIAM Journal on Mathematical Analysis, 1979 10(4):757-766.
Statistics and Probability --- Random Number Generator
The BCSLIB random number generators at one time were based on Park and Miller [1]. L'Ecuyer [2] recently showed that this generator has serious problems for some simulations. We have added the generator of L'Ecuyer and Andres [3] which has much better statistical properties.
The new generator has a period of 2.658e36 and has very good lattice-test results for dimensions up to 25. See Knuth [4] for a discussion of the lattice (spectral) test.
[2] Pierre L'Ecuyer. On the performance of birthday spacings tests with certain families of random number generators. Mathematics and Computers in Simulation, 15 February 2001, 55(1-3):131-137.
[3] Pierre L'Ecuyer and Terry H. Andres. A random number generator based on the combination of four LCGs. Mathematics and Computers in Simulation, May 1997, 44(1):99-107.
[4] Donald E. Knuth. Seminumerical Algorithms, Volume 2 of The Art of Computer Programming (third edition), Addison-Wesley, 1997.
