Sign in
mojo
/
mojo-tools
/
7d579155cc597aa3befcbfad66eef54bda06b57c
/
.
/
fusl
/
src
/
prng
/
rand_r.c
blob: c011454ae73a40fc0ba86f9d9b7506c29d0d280e [
file
] [
log
] [
blame
]
#include
<stdlib.h>
static
unsigned
temper
(
unsigned
x
)
{
x
^=
x
>>
11
;
x
^=
x
<<
7
&
0x9D2C5680
;
x
^=
x
<<
15
&
0xEFC60000
;
x
^=
x
>>
18
;
return
x
;
}
int
rand_r
(
unsigned
*
seed
)
{
return
temper
(*
seed
=
*
seed
*
1103515245
+
12345
)
/
2
;
}