Dec 082017

## Full Description of File

Mrandom 3.0 is a package to write machine

independent C-language programs that call

pseudorandom number generators (RNGs). A

standard interface to nine different RNGs

is provided in C source code form.

independent C-language programs that call

pseudorandom number generators (RNGs). A

standard interface to nine different RNGs

is provided in C source code form.

Mrandom 3.0 is a package to write machine independent C-language programs that call pseudorandom number generators (RNGs). A standard interface to nine different RNGs is provided in C source code form. | |||
---|---|---|---|

File Name | File Size | Zip Size | Zip Type |

DOC | 0 | 0 | stored |

LATEXINF.STY | 18583 | 5865 | deflated |

MRANDOM.TEX | 56912 | 16695 | deflated |

MRANDOM.TXT | 50066 | 15565 | deflated |

FILE_ID.DIZ | 208 | 155 | deflated |

MAN | 0 | 0 | stored |

MANIFEST | 1212 | 257 | deflated |

MRANDOM.3 | 21315 | 6777 | deflated |

MRTEST.1 | 3500 | 1602 | deflated |

README | 4835 | 1774 | deflated |

SRC | 0 | 0 | stored |

BENTLEY.C | 3963 | 1582 | deflated |

BENTLEY.H | 2181 | 929 | deflated |

MAKEFILE | 2089 | 866 | deflated |

MRANDOM.C | 42469 | 11002 | deflated |

MRANDOM.H | 20309 | 5903 | deflated |

MRTEST.C | 21361 | 7059 | deflated |

NEWRNG.C | 665 | 287 | deflated |

NEWRNG.H | 485 | 237 | deflated |

PCRAND.C | 9579 | 3461 | deflated |

PCRAND.H | 3367 | 1261 | deflated |

RAN0.C | 1462 | 767 | deflated |

RAN0.H | 1127 | 565 | deflated |

RAN1.C | 2161 | 1076 | deflated |

RAN1.H | 1148 | 577 | deflated |

RAN2.C | 2538 | 1201 | deflated |

RAN2.H | 1152 | 580 | deflated |

RNGS.H | 3634 | 1170 | deflated |

SCRIPT | 2424 | 761 | deflated |

ULTRA.C | 5108 | 2257 | deflated |

ULTRA.H | 1436 | 770 | deflated |

XSQ.C | 8127 | 3221 | deflated |

XSQ.H | 885 | 507 | deflated |

# Download File MRANDOM3.ZIP Here

## Contents of the README file

Mrandom 3.0 is a package to write machine

independent C-language programs that call

pseudorandom number generators (RNGs). A

standard interface to nine different RNGs

is provided in C source code form.

/* README 3.1 5/28/93 */

[ comp.sources.unix note: i uncompressed doc/mrandom.ps.Z and split

it into two files (doc/mrandom.ps.{1,2}). you will have to cat

them together before printing them.--vix ]

This ftp directory contains the file mrandom-3.0.tar.Z, a new

distribution of the public-domain mrandom package in 4.3bsd Unix

tar'red, compressed format.

Mrandom is a package of routines intended to help anyone writing

machine-independent C-language programs that call pseudorandom number

generators (RNGs). We provide a standard interface to nine different

RNGs, making it easy to write efficient programs in which the choice

of RNG algorithm is deferred until runtime. We also provide a set of

commonly-used "RNG utility functions" (e.g. to generate integers

uniformly distributed in a restricted range), as well as a small suite

of RNG tests.

To date, we have only tested the mrandom package on SparcStations and

DECstations. However, we believe that it will run correctly, without

modification, on any IEEE-compliant, ANSI C, 32-bit computational

platform which can link to the 4.3bsd Unix RNGs "random", "rand", and

"nrand48". Please send bug reports and comments to Clark Thomborson,

[email protected]

You can use the ftp commands

ftp> binary

ftp> get mrandom-3.0.tar.Z

ftp> bye

to retrieve this file. Move it into a suitable directory on your home

system, then unpack it with the 4.3bsd Unix sequence

your-home-machine% zcat mrandom-3.0.tar.Z | tar xvf -

If all goes well, you will have created a new subdirectory, named

mrandom-3.0, containing the complete software distribution for version

3.0 of mrandom.

The rest of this file briefly outlines the changes in the program's

interface since the last version. See the User's Manual, included in

the distribution in several formats (files mrandom-3.0/doc/mrandom.tex,

mrandom.txt, mrandom.ps.Z), for detailed information about these

changes, for general information about this package, and for

compilation instructions.

init_rng()

Old version:

int init_rng(rng, alg, seed1, seed2, count1, count2)

RNGdata *rng;

long alg;

long seed1, seed2;

long count1, count2;

New version:

RNGdata *init_rng(alg, mrandom_alg, seed, count1, count2, bufsize)

long alg;

long mrandom_alg;

long *seed;

long count1, count2;

long bufsize;

restart_rng()

Old version:

int restart_rng(rng, filename)

RNGdata *rng;

char *filename;

New version:

RNGdata *restart_rng(filename)

char *filename;

kill_rng()

There is now a kill_rng() routine:

int kill_rng(rng)

RNGdata *rng;

xrandomrv()

xrandomrv() has been replaced by a family of routines for

providing unbuffered generates from an RNG:

double dxrandomrv(rng, n, v)

RNGdata *rng;

long n;

double v[];

float fxrandomrv(rng, n, v)

RNGdata *rng;

long n;

float v[];

long lxrandomrv(rng, n, v)

RNGdata *rng;

long n;

long v[];

int bxrandomrv(rng, n, v)

RNGdata *rng;

long n;

int v[];

double bxrandomrv_f(rng, n, v)

RNGdata *rng;

long n;

int v[];

Buffered generating routines

A family of routines has been added for providing buffered

output of generates from an RNG:

double drandomrv(rng, n, v)

RNGdata *rng;

long n;

double v[];

float frandomrv(rng, n, v)

RNGdata *rng;

long n;

float v[];

long lrandomrv(rng, n, v)

RNGdata *rng;

long n;

long v[];

int brandomrv(rng, n, v)

RNGdata *rng;

long n;

int v[];

double brandomrv_f(rng, n, v)

RNGdata *rng;

long n;

int v[];

flush_rng()

A routine has been added for flushing the RNG's buffers:

int flush_rng(rng)

RNGdata *rng;

mrandomrv()

The interface to mrandomrv() has remained unchanged:

long mrandomrv(rng, m, n, v)

RNGdata *rng;

long m, n, v[];

However, mrandomrv() is now capable of using one of two

different algorithms for producing restricted-range integer generates.

save_rng() and restart_rng()

The interface to save_rng() has remained unchanged. However,

some files saved with the old save_rng() (e.g. files containing state

tables for nrand48) are not compatible with the new version. The

interface to restart_rng() is now the following:

RNGdata *restart_rng(filename)

char *filename;

seed_rng()

There is now a seed_rng() routine:

void seed_rng(rng, seed)

RNGdata *rng;

long *seed;

check_rng()

checkrandom() is now called check_rng() and has the following

interface:

int check_rng(rng)

RNGdata *rng;

describe_rng()

The string created and returned by describe_rng() now has the

following format:

RNG state identifier is (alg, mralg; seed1, seed2; count1,

count2; bufsize, split)

mralg_rng(), split_rng(), and range_rng()

Three routines for examining and modifying the parameters of

RNG's have been added:

int mralg_rng(rng, new_value)

RNGdata *rng;

long new_value;

int split_rng(rng, new_value)

RNGdata *rng;

long new_value;

double range_rng(rng)

RNGdata *rng;

independent C-language programs that call

pseudorandom number generators (RNGs). A

standard interface to nine different RNGs

is provided in C source code form.

/* README 3.1 5/28/93 */

[ comp.sources.unix note: i uncompressed doc/mrandom.ps.Z and split

it into two files (doc/mrandom.ps.{1,2}). you will have to cat

them together before printing them.--vix ]

This ftp directory contains the file mrandom-3.0.tar.Z, a new

distribution of the public-domain mrandom package in 4.3bsd Unix

tar'red, compressed format.

Mrandom is a package of routines intended to help anyone writing

machine-independent C-language programs that call pseudorandom number

generators (RNGs). We provide a standard interface to nine different

RNGs, making it easy to write efficient programs in which the choice

of RNG algorithm is deferred until runtime. We also provide a set of

commonly-used "RNG utility functions" (e.g. to generate integers

uniformly distributed in a restricted range), as well as a small suite

of RNG tests.

To date, we have only tested the mrandom package on SparcStations and

DECstations. However, we believe that it will run correctly, without

modification, on any IEEE-compliant, ANSI C, 32-bit computational

platform which can link to the 4.3bsd Unix RNGs "random", "rand", and

"nrand48". Please send bug reports and comments to Clark Thomborson,

[email protected]

You can use the ftp commands

ftp> binary

ftp> get mrandom-3.0.tar.Z

ftp> bye

to retrieve this file. Move it into a suitable directory on your home

system, then unpack it with the 4.3bsd Unix sequence

your-home-machine% zcat mrandom-3.0.tar.Z | tar xvf -

If all goes well, you will have created a new subdirectory, named

mrandom-3.0, containing the complete software distribution for version

3.0 of mrandom.

The rest of this file briefly outlines the changes in the program's

interface since the last version. See the User's Manual, included in

the distribution in several formats (files mrandom-3.0/doc/mrandom.tex,

mrandom.txt, mrandom.ps.Z), for detailed information about these

changes, for general information about this package, and for

compilation instructions.

init_rng()

Old version:

int init_rng(rng, alg, seed1, seed2, count1, count2)

RNGdata *rng;

long alg;

long seed1, seed2;

long count1, count2;

New version:

RNGdata *init_rng(alg, mrandom_alg, seed, count1, count2, bufsize)

long alg;

long mrandom_alg;

long *seed;

long count1, count2;

long bufsize;

restart_rng()

Old version:

int restart_rng(rng, filename)

RNGdata *rng;

char *filename;

New version:

RNGdata *restart_rng(filename)

char *filename;

kill_rng()

There is now a kill_rng() routine:

int kill_rng(rng)

RNGdata *rng;

xrandomrv()

xrandomrv() has been replaced by a family of routines for

providing unbuffered generates from an RNG:

double dxrandomrv(rng, n, v)

RNGdata *rng;

long n;

double v[];

float fxrandomrv(rng, n, v)

RNGdata *rng;

long n;

float v[];

long lxrandomrv(rng, n, v)

RNGdata *rng;

long n;

long v[];

int bxrandomrv(rng, n, v)

RNGdata *rng;

long n;

int v[];

double bxrandomrv_f(rng, n, v)

RNGdata *rng;

long n;

int v[];

Buffered generating routines

A family of routines has been added for providing buffered

output of generates from an RNG:

double drandomrv(rng, n, v)

RNGdata *rng;

long n;

double v[];

float frandomrv(rng, n, v)

RNGdata *rng;

long n;

float v[];

long lrandomrv(rng, n, v)

RNGdata *rng;

long n;

long v[];

int brandomrv(rng, n, v)

RNGdata *rng;

long n;

int v[];

double brandomrv_f(rng, n, v)

RNGdata *rng;

long n;

int v[];

flush_rng()

A routine has been added for flushing the RNG's buffers:

int flush_rng(rng)

RNGdata *rng;

mrandomrv()

The interface to mrandomrv() has remained unchanged:

long mrandomrv(rng, m, n, v)

RNGdata *rng;

long m, n, v[];

However, mrandomrv() is now capable of using one of two

different algorithms for producing restricted-range integer generates.

save_rng() and restart_rng()

The interface to save_rng() has remained unchanged. However,

some files saved with the old save_rng() (e.g. files containing state

tables for nrand48) are not compatible with the new version. The

interface to restart_rng() is now the following:

RNGdata *restart_rng(filename)

char *filename;

seed_rng()

There is now a seed_rng() routine:

void seed_rng(rng, seed)

RNGdata *rng;

long *seed;

check_rng()

checkrandom() is now called check_rng() and has the following

interface:

int check_rng(rng)

RNGdata *rng;

describe_rng()

The string created and returned by describe_rng() now has the

following format:

RNG state identifier is (alg, mralg; seed1, seed2; count1,

count2; bufsize, split)

mralg_rng(), split_rng(), and range_rng()

Three routines for examining and modifying the parameters of

RNG's have been added:

int mralg_rng(rng, new_value)

RNGdata *rng;

long new_value;

int split_rng(rng, new_value)

RNGdata *rng;

long new_value;

double range_rng(rng)

RNGdata *rng;

December 8, 2017
Add comments