home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Geek Gadgets 1
/
ADE-1.bin
/
ade-dist
/
octave-1.1.1p1-src.tgz
/
tar.out
/
fsf
/
octave
/
libcruft
/
ranlib
/
README
< prev
next >
Wrap
Text File
|
1996-09-28
|
8KB
|
226 lines
RANLIB
Library of Fortran Routines for Random Number Generation
README
Compiled and Written by:
Barry W. Brown
James Lovato
Department of Biomathematics, Box 237
The University of Texas, M.D. Anderson Cancer Center
1515 Holcombe Boulevard
Houston, TX 77030
This work was supported by grant CA-16672 from the National Cancer Institute.
SUMMARY OF RANLIB
The bottom level routines provide 32 virtual random number generators.
Each generator can provide 1,048,576 blocks of numbers, and each block
is of length 1,073,741,824. Any generator can be set to the beginning
or end of the current block or to its starting value. Packaging is
provided so that if these capabilities are not needed, a single
generator with period 2.3 X 10^18 is seen.
Using this base, routines are provided that return:
(1) Beta random deviates
(2) Chi-square random deviates
(3) Exponential random deviates
(4) F random deviates
(5) Gamma random deviates
(6) Multivariate normal random deviates (mean and covariance
matrix specified)
(7) Noncentral chi-square random deviates
(8) Noncentral F random deviates
(9) Univariate normal random deviates
(10) Random permutations of an integer array
(11) Real uniform random deviates between specified limits
(12) Binomial random deviates
(13) Poisson random deviates
(14) Integer uniform deviates between specified limits
(15) Seeds for the random number generator calculated from a
character string
INSTALLATION
Directory src contains the Fortran source for most of the routines.
Directory linpack contains two linpack routines needed by the
multivariate generator. If linpack is present on your machine, you
won't need these routines. The Fortran code from these directories
should be compiled and placed in a library. Directory test contains
three test programs for this code.
DOCUMENTATION
Documentation is on directory doc on the distribution. All of the
documentation is in the form of character (ASCII) files. An
explanation of the concepts involved in the base generator and details
of its implementation are contained in Basegen.doc. A summary of all
of the available routines is contained in ranlib.chs (chs is an
abbreviation of 'cheat sheet'). The 'chs' file will probably be the
reference to ranlib that is primarily used. The file, ranlib.fdoc,
contains all comments heading each routine. There is somewhat more
information in 'fdoc' than 'chs', but the additional information
consists primarily of references to the literature.
SOURCES
The following routines, which were written by others and lightly
modified for consistency in packaging, are included in RANLIB.
Bottom Level Routines
These routines are a transliteration of the Pascal in the reference to
Fortran.
L'Ecuyer, P. and Cote, S. "Implementing a Random Number Package with
Splitting Facilities." ACM Transactions on Mathematical Software,
17:98-111 (1991)
Exponential
This code was obtained from Netlib.
Ahrens, J.H. and Dieter, U. Computer Methods for Sampling From the
Exponential and Normal Distributions. Comm. ACM, 15,10 (Oct. 1972),
873 - 882.
Gamma
(Case R >= 1.0)
Ahrens, J.H. and Dieter, U. Generating Gamma Variates by a Modified
Rejection Technique. Comm. ACM, 25,1 (Jan. 1982), 47 - 54.
Algorithm GD
(Case 0.0 <= R <= 1.0)
Ahrens, J.H. and Dieter, U. Computer Methods for Sampling from Gamma,
Beta, Poisson and Binomial Distributions. Computing, 12 (1974),
223-246. Adaptation of algorithm GS.
Normal
This code was obtained from netlib.
Ahrens, J.H. and Dieter, U. Extensions of Forsythe's Method for
Random Sampling from the Normal Distribution. Math. Comput., 27,124
(Oct. 1973), 927 - 937.
Binomial
This code was kindly sent me by Dr. Kachitvichyanukul.
Kachitvichyanukul, V. and Schmeiser, B. W. Binomial Random Variate
Generation. Communications of the ACM, 31, 2 (February, 1988) 216.
Poisson
This code was obtained from netlib.
Ahrens, J.H. and Dieter, U. Computer Generation of Poisson Deviates
From Modified Normal Distributions. ACM Trans. Math. Software, 8, 2
(June 1982),163-179
Beta
This code was written by us following the recipe in the following.
R. C. H. Cheng Generating Beta Variables with Nonintegral Shape
Parameters. Communications of the ACM, 21:317-322 (1978) (Algorithms
BB and BC)
Linpack
Routines SPOFA and SDOT are used to perform the Cholesky decomposition
of the covariance matrix in SETGMN (used for the generation of
multivariate normal deviates).
Dongarra, J. J., Moler, C. B., Bunch, J. R. and Stewart, G. W.
Linpack User's Guide. SIAM Press, Philadelphia. (1979)
LEGALITIES
Code that appeared in an ACM publication is subject to their
algorithms policy:
Submittal of an algorithm for publication in one of the ACM
Transactions implies that unrestricted use of the algorithm within a
computer is permissible. General permission to copy and distribute
the algorithm without fee is granted provided that the copies are not
made or distributed for direct commercial advantage. The ACM
copyright notice and the title of the publication and its date appear,
and notice is given that copying is by permission of the Association
for Computing Machinery. To copy otherwise, or to republish, requires
a fee and/or specific permission.
Krogh, F. Algorithms Policy. ACM Tran. Math. Softw. 13(1987),
183-186.
We place the Ranlib code that we have written in the public domain.
NO WARRANTY
WE PROVIDE ABSOLUTELY NO WARRANTY OF ANY KIND EITHER EXPRESSED OR
IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK
AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD
THIS PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
SERVICING, REPAIR OR CORRECTION.
IN NO EVENT SHALL THE UNIVERSITY OF TEXAS OR ANY OF ITS COMPONENT
INSTITUTIONS INCLUDING M. D. ANDERSON HOSPITAL BE LIABLE TO YOU FOR
DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL,
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA OR
ITS ANALYSIS BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD
PARTIES) THE PROGRAM.
(Above NO WARRANTY modified from the GNU NO WARRANTY statement.)