Initial revision
[ssr] / StraySrc / Libraries / Sapphire / csapph / h / rand
CommitLineData
2ee739cc 1/*
2 * rand.h
3 *
4 * [Generated from rand, 25 September 1996]
5 */
6
7#if !defined(__CC_NORCROFT) || !defined(__arm)
8 #error You must use the Norcroft ARM Compiler for Sapphire programs
9#endif
10
11#pragma include_only_once
12#pragma force_top_level
13
14#ifndef __rand_h
15#define __rand_h
16
17#ifndef __sapphire_h
18 #include "sapphire.h"
19#endif
20
21/*----- Overview ----------------------------------------------------------*
22 *
23 * Functions provided:
24 *
25 * rand
26 * rand_setSeed
27 * rnd
28 * rand_init
29 */
30
31/* --- rand --- *
32 *
33 * On entry: --
34 *
35 * On exit: R0 == a pseudorandom number between 0 and &7FFFFFFF
36 *
37 * Use: Returns a pseudorandom number. The algorithm used is the
38 * additive generator found in Knuth. The table is generated
39 * from the current monotonic time using a linear congruential
40 * generator. Randomness is fairly good, and it's very quick.
41 */
42
43extern routine rand;
44
45/* --- rand_setSeed --- *
46 *
47 * On entry: R0 == a pseudorandom seed
48 *
49 * On exit: --
50 *
51 * Use: Sets up the random number generator (rand) to the given start
52 * position. The table of values is initialised from the seed
53 * in a psuedorandom manner, using a linear congruential
54 * generator.
55 */
56
57extern routine rand_setSeed;
58
59/* --- rnd --- *
60 *
61 * On entry: R0 == start value (inclusive)
62 * R1 == end value (inclusive)
63 *
64 * On exit: R0 == random number between the boundaries given
65 *
66 * Use: Returns a random integer between the boundaries given.
67 * The distribution is slightly skewed towards lower numbers,
68 * but there's not a lot I can do about this, folks.
69 */
70
71extern routine rnd;
72
73/* --- rand_init --- *
74 *
75 * On entry: --
76 *
77 * On exit: --
78 *
79 * Use: Initialise the random number table.
80 */
81
82extern routine rand_init;
83
84/*----- That's all, folks -------------------------------------------------*/
85
86#endif