1 #include "goom_tools.h"
2 #include <stdlib.h>
3 
goom_random_init(int i)4 GoomRandom *goom_random_init(int i) {
5 	GoomRandom *grandom = (GoomRandom*)malloc(sizeof(GoomRandom));
6 	srand (i);
7 	grandom->pos = 1;
8 	goom_random_update_array(grandom, GOOM_NB_RAND);
9 	return grandom;
10 }
11 
goom_random_free(GoomRandom * grandom)12 void goom_random_free(GoomRandom *grandom) {
13 	free(grandom);
14 }
15 
goom_random_update_array(GoomRandom * grandom,int numberOfValuesToChange)16 void goom_random_update_array(GoomRandom *grandom, int numberOfValuesToChange) {
17 	while (numberOfValuesToChange > 0) {
18 #if RAND_MAX < 0x10000
19 		grandom->array[grandom->pos++] = ((rand()<<16)+rand()) / 127;
20 #else
21 		grandom->array[grandom->pos++] = rand() / 127;
22 #endif
23 		numberOfValuesToChange--;
24 	}
25 }
26