ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/random.h
Revision: 2.4
Committed: Tue Feb 13 11:32:17 1996 UTC (28 years, 2 months ago) by greg
Content type: text/plain
Branch: MAIN
Changes since 2.3: +4 -0 lines
Log Message:
added MC macro for true Monte Carlo sampling

File Contents

# User Rev Content
1 greg 2.2 /* Copyright (c) 1992 Regents of the University of California */
2 greg 1.1
3     /* SCCSid "$SunId$ LBL" */
4    
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 greg 2.2
15     #define frandom() (rand()*(1./32768.))
16    
17     #else
18     #ifdef BSD
19    
20 greg 1.1 extern long random();
21    
22 greg 2.2 #define frandom() (random()*(1./2147483648.))
23 greg 1.3
24     #else
25    
26     extern long lrand48();
27     extern double drand48();
28    
29 greg 2.2 #define random() lrand48()
30     #define frandom() drand48()
31 greg 1.3
32     #endif
33 greg 2.2 #endif
34 greg 1.4
35 greg 2.4 #ifdef MC
36     #define urand(i) frandom()
37     #else
38 greg 2.2 #define urand(i) ((urperm[(i)&urmask]+frandom())/(urmask+1))
39 greg 2.4 #endif
40 greg 1.4
41     extern short *urperm;
42     extern int urmask;