00001 #ifndef _GOOMTOOLS_H
00002 #define _GOOMTOOLS_H
00003
00004 #if !defined( M_PI )
00005 #define M_PI 3.14159265358979323846
00006 #endif
00007
00008 #define NB_RAND 0x10000
00009
00010
00011 extern int *rand_tab;
00012 static unsigned short rand_pos;
00013
00014 #define RAND_INIT(i) \
00015 srand (i) ;\
00016 if (!rand_tab) rand_tab = (int *) malloc (NB_RAND * sizeof(int)) ;\
00017 rand_pos = 1 ;\
00018 while (rand_pos != 0) rand_tab [rand_pos++] = rand () ;
00019
00020
00021 static inline int RAND() {
00022 ++rand_pos;
00023 return rand_tab[rand_pos];
00024 }
00025
00026 #define RAND_CLOSE()\
00027 free (rand_tab);\
00028 rand_tab = 0;
00029
00030
00031
00032 #define iRAND(i) (RAND()%i)
00033
00034
00035
00036
00037 #endif