diff --git a/la_random.cc b/la_random.cc index 7bca304..2b21eb2 100644 --- a/la_random.cc +++ b/la_random.cc @@ -5,7 +5,7 @@ namespace LA { WEAK_SYMBOL double randdouble() {return random()/(1.+RAND_MAX);} WEAK_SYMBOL double randdoublesigned() {return 2.*random()/(1.+RAND_MAX)-1.;} -WEAK_SYMBOL int randint32() {return random();} -WEAK_SYMBOL uint64_t randint64() {uint64_t r = random(); r<<=32; r|= random(); return r; } +WEAK_SYMBOL unsigned int randint32() {unsigned int r = random(); r<<=1; r^= random(); return r;} +WEAK_SYMBOL uint64_t randint64() {uint64_t r = random(); r<<=31; r|= random(); r<<=2; r|= random()&3; return r; } //random() gives 31 bits }//namespace diff --git a/la_random.h b/la_random.h index ad4bb58..639633b 100644 --- a/la_random.h +++ b/la_random.h @@ -7,7 +7,7 @@ namespace LA { extern double randdouble(); extern double randdoublesigned(); -extern int randint32(); +extern unsigned int randint32(); extern uint64_t randint64(); //RANDOM numbers defaulting to standard library but switchable to user's functions