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