00001
00002
00003
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
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
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