Index: fusl/src/prng/__rand48_step.c |
diff --git a/fusl/src/prng/__rand48_step.c b/fusl/src/prng/__rand48_step.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..961d30fc9161e48dde6fc64a9c8aa10f19f5eee5 |
--- /dev/null |
+++ b/fusl/src/prng/__rand48_step.c |
@@ -0,0 +1,13 @@ |
+#include <stdint.h> |
+ |
+uint64_t __rand48_step(unsigned short *xi, unsigned short *lc) |
+{ |
+ uint64_t a, x; |
+ x = xi[0] | xi[1]+0U<<16 | xi[2]+0ULL<<32; |
+ a = lc[0] | lc[1]+0U<<16 | lc[2]+0ULL<<32; |
+ x = a*x + lc[3]; |
+ xi[0] = x; |
+ xi[1] = x>>16; |
+ xi[2] = x>>32; |
+ return x & 0xffffffffffffull; |
+} |