NdbDefs.h

Go to the documentation of this file.
00001 /*
00002  * $Header$
00003  * $Log$
00004  */
00005 
00006 #ifndef __DEFS_H
00007 #define __DEFS_H
00008 
00009 #ifndef TRUE
00010 #       define  FALSE   0
00011 #       define  TRUE    1
00012 #endif
00013 #ifndef OFF
00014 #       define OFF      0
00015 #       define ON       1
00016 #endif
00017 #ifndef NO
00018 #       define NO       0
00019 #       define YES      1
00020 #endif
00021 
00022 #define NOTFOUND        -1
00023 
00024 #define THERMAL_ENERGY  0.05
00025 #define MAX_REAL        1e38
00026 #ifndef PI
00027 #       define PI       3.14159265358979323844
00028 #       define PI2      6.28318530717958647692
00029 #endif
00030 #define PIover2         1.57079632679489661923
00031 #define PIover180       1.74532925199433E-002
00032 #define PIunder180      5.72957795130823E+001
00033 #define LN10            2.30258509299405
00034 #define ONEoverLN10     0.43429448190325
00035 
00036 /* --- BIT definitions --- */
00037 #define MASK1      0x0001
00038 #define MASK2      0x0003
00039 #define MASK3      0x0007
00040 #define MASK4      0x000f
00041 #define MASK5      0x001f
00042 #define MASK6      0x003f
00043 #define MASK7      0x007f
00044 #define MASK8      0x00ff
00045 #define MASK9      0x01ff
00046 #define MASK10     0x03ff
00047 #define MASK11     0x07ff
00048 #define MASK12     0x0fff
00049 #define MASK13     0x1fff
00050 #define MASK14     0x3fff
00051 #define MASK15     0x7fff
00052 #define MASK16     0xffff
00053 
00054 #define BIT0       0x0001
00055 #define BIT1       0x0002
00056 #define BIT2       0x0004
00057 #define BIT3       0x0008
00058 #define BIT4       0x0010
00059 #define BIT5       0x0020
00060 #define BIT6       0x0040
00061 #define BIT7       0x0080
00062 #define BIT8       0x0100
00063 #define BIT9       0x0200
00064 #define BIT10      0x0400
00065 #define BIT11      0x0800
00066 #define BIT12      0x1000
00067 #define BIT13      0x2000
00068 #define BIT14      0x4000
00069 #define BIT15      0x8000
00070 #define BIT16      0x10000L
00071 
00072 /* ------------------ comonly used macros -------------------- */
00073 #define ISPRINT(c)      ((c)>=' ' && (c)<='~' && (c)!='\'')
00074 #define ISSPACE(c)      ((c==0x09) || (c==0x0D) || (c==0x20))
00075 #define HEXVAL(x)       (((x)>='A')?((((x)>='a')?((x)&(0xdf)):(x))-'A'+10):((x)-'0'))
00076 #define CTL(a)          (('a') & 0x1f)
00077 #define ESC             ((char)27)
00078 
00079 #define SWAP(a,b)       a ^= b ^= a ^= b;
00080 
00081 #define DIMENSION(p)    (sizeof(p) / sizeof(p[0]))
00082 #define ABS(a)          (((a)<0)?-(a):(a))
00083 
00084 #ifndef MAX
00085 #       define MAX(a,b) (((a)>(b))?(a):(b))
00086 #       define MIN(a,b) (((a)<(b))?(a):(b))
00087 #endif
00088 
00089 #define MAX3(a,b,c)     MAX(MAX(a,b),c)
00090 #define MAX4(a,b,c,d)   MAX(MAX3(a,b,c),d)
00091 
00092 #define MIN3(a,b,c)     MIN(MIN(a,b),c)
00093 #define MIN4(a,b,c,d)   MIN(MIN3(a,b,c),d)
00094 
00095 #define RANGE(a,x,b)    ((x)<(a)?(a): ((x)>(b)?(b):(x)))
00096 #define IN_RANGE(a,x,b) (((a) <= (x)) && ((x) <= (b)))
00097 
00098 #define ODD(n)          ((n)&1)
00099 #define EVEN(n)         (!((n)&1))
00100 
00101 #define TRUNC(a)        ((a)>=0? (int)(a) : (int)((a)-1))
00102 #define ROUND(a)        ((a)>=0? (int)((a)+0.5): -(int)(0.5-(a)))
00103 #define CEILING(a)      ((a)==(int)(a)? (int)(a): \
00104                         (a)>0? (int)(1+(int)(a)): -(int)(1+(int)(-(a))))
00105 #define FRAC(x)         ((x)-(float)((int)(x)))
00106 #define SIGN(x)         ((x)>0? 1:(((x)==0)?0:-1))
00107 #define SQR(x)          ((x)*(x))
00108 
00109 #define RAD(a)          ((a)*PIover180)
00110 #define DEG(a)          ((a)*PIunder180)
00111 
00112 #define COSD(a)         cos(RAD(a))
00113 #define SIND(a)         sin(RAD(a))
00114 #define TAND(a)         tan(RAD(a))
00115 
00116 #define LOG(x)          (log(x)*ONEoverLN10)
00117 #define EXP10(x)        exp((x)*LN10)
00118 
00119 #endif

Generated on Tue Jul 5 15:15:03 2011 for ROOT_528-00b_version by  doxygen 1.5.1