ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/random.h
Revision: 2.7
Committed: Sat Jan 9 09:15:48 1999 UTC (25 years, 3 months ago) by gwlarson
Content type: text/plain
Branch: MAIN
Changes since 2.6: +3 -1 lines
Log Message:
added define for random seed function

File Contents

# User Rev Content
1 gwlarson 2.7 /* Copyright (c) 1999 Silicon Graphics, Inc. */
2 greg 1.1
3 gregl 2.5 /* SCCSid "$SunId$ SGI" */
4 greg 1.1
5     /*
6 greg 1.4 * random.h - header file for random(3) and urand() function.
7 greg 1.1 *
8     * 10/1/85
9     */
10    
11 greg 2.2 #ifdef MSDOS
12 greg 1.3
13 greg 2.3 #define random() ((long)rand()<<16^(long)rand()<<6^(long)rand()>>4)
14 gwlarson 2.7 #define srandom(s) srand((unsigned)(s))
15 greg 2.2
16     #define frandom() (rand()*(1./32768.))
17    
18     #else
19     #ifdef BSD
20    
21 greg 1.1 extern long random();
22    
23 greg 2.2 #define frandom() (random()*(1./2147483648.))
24 greg 1.3
25     #else
26    
27     extern long lrand48();
28     extern double drand48();
29    
30 greg 2.2 #define random() lrand48()
31 gwlarson 2.7 #define srandom(s) srand48((long)(s))
32 greg 2.2 #define frandom() drand48()
33 greg 1.3
34     #endif
35 greg 2.2 #endif
36 greg 1.4
37 greg 2.4 #ifdef MC
38 gregl 2.5
39 greg 2.4 #define urand(i) frandom()
40 gregl 2.5 #define initurand(n) (n)
41    
42 greg 2.4 #else
43 gregl 2.5
44 gregl 2.6 extern unsigned short *urperm;
45 gregl 2.5 extern int urmask, initurand();
46    
47 greg 2.2 #define urand(i) ((urperm[(i)&urmask]+frandom())/(urmask+1))
48 gregl 2.5
49 greg 2.4 #endif