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