ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/gbasic.h
Revision: 2.1
Committed: Wed Aug 12 23:07:59 2015 UTC (8 years, 9 months ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad5R4, rad5R2, rad5R3, rad5R0, rad5R1, HEAD
Log Message:
Added Jan Wienold's evalglare to distribution

File Contents

# User Rev Content
1 greg 2.1 /*
2     ** Author: Christian Reetz ([email protected])
3     */
4     #ifndef __GBASIC_H
5     #define __GBASIC_H
6    
7     #ifdef __cplusplus
8     extern "C" {
9     #endif
10    
11    
12     #include <math.h>
13    
14     #ifndef g3Float
15     #define g3Float double
16     #define USE_DOUBLE 1
17     #define GB_EPSILON 1e-6
18     #else
19     #define GB_EPSILON 1e-4
20     #endif
21    
22     typedef unsigned char uchar;
23    
24     #define DEG2RAD(x) ((x)*M_PI/180.0)
25     #define RAD2DEG(x) ((x)*180.0/M_PI)
26    
27     #define GB_SWAP(a,b) {g3Float temp=(a);(a)=(b);(b)=temp;}
28     #define gb_swap(a,b) GB_SWAP(a,b)
29    
30     #define gb_random() (((g3Float) rand())/(RAND_MAX-1))
31    
32     int gb_epsorder(g3Float a,g3Float b);
33    
34     int gb_epseq(g3Float a,g3Float b);
35    
36     int gb_inrange(g3Float a,g3Float rb,g3Float re);
37    
38     int gb_signum(g3Float a);
39    
40     g3Float gb_max(g3Float a,g3Float b);
41     g3Float gb_min(g3Float a,g3Float b);
42    
43     /* Roots of quadratic formula
44     Returns zero if roots are not real, 1 for single root and 2 otherwise
45     */
46     int gb_getroots(g3Float* r1,g3Float* r2,g3Float a,g3Float b,g3Float c);
47    
48     #ifdef __cplusplus
49     }
50     #endif
51    
52    
53     #endif