Files
ac-decomp/src/libc64/qrand.c
T
2023-03-06 08:28:43 +00:00

26 lines
621 B
C

#include "libc64/qrand.h"
static u32 __qrand_idum = 1;
static u32 __qrand_itemp;
u32 qrand(void){
__qrand_idum = __qrand_idum * 0x19660D + 0x3C6EF35F;
return __qrand_idum;
}
void sqrand(u32 seed){
__qrand_idum = seed;
}
float fqrand(void){
__qrand_idum = __qrand_idum * 0x19660D + 0x3C6EF35F;
__qrand_itemp = __qrand_idum >> 9 | 0x3F800000;
__qrand_itemp = __qrand_itemp;
return *(float*)&__qrand_itemp - 1.0f;
}
double fqrand2(void){
__qrand_idum = __qrand_idum * 0x19660D + 0x3C6EF35F;
__qrand_itemp = __qrand_idum >> 9 | 0x3F800000;
return *(float*)&__qrand_itemp - 1.5f;
}