1 /*
2  * Copyright (c) 1993 Martin Birgmeier
3  * All rights reserved.
4  *
5  * You may redistribute unmodified or modified versions of this source
6  * code provided that the above copyright notice and this and the
7  * following conditions are retained.
8  *
9  * This software is provided ``as is'', and comes with no warranties
10  * of any kind. I shall in no event be liable for anything that happens
11  * to anyone/anything when using this software.
12  */
13 
14 #ifndef _RAND48_H_
15 #define _RAND48_H_
16 
17 #include <math.h>
18 #include <stdlib.h>
19 
20 /*
21  * rand48 family support
22  *
23  * Copyright (c) 1993 Martin Birgmeier
24  * All rights reserved.
25  *
26  * You may redistribute unmodified or modified versions of this source
27  * code provided that the above copyright notice and this and the
28  * following conditions are retained.
29  *
30  * This software is provided ``as is'', and comes with no warranties
31  * of any kind. I shall in no event be liable for anything that happens
32  * to anyone/anything when using this software.
33  */
34 
35 #define        _RAND48_SEED_0  (0x330e)
36 #define        _RAND48_SEED_1  (0xabcd)
37 #define        _RAND48_SEED_2  (0x1234)
38 #define        _RAND48_MULT_0  (0xe66d)
39 #define        _RAND48_MULT_1  (0xdeec)
40 #define        _RAND48_MULT_2  (0x0005)
41 #define        _RAND48_ADD     (0x000b)
42 
43 struct _rand48 {
44   unsigned short _seed[3];
45   unsigned short _mult[3];
46   unsigned short _add;
47 };
48 
49 extern NEWLIB_THREAD_LOCAL struct _rand48 _rand48;
50 
51 extern void __dorand48 (struct _rand48 *r, unsigned short[3]);
52 
53 #endif /* _RAND48_H_ */
54