diff options
Diffstat (limited to 'src/math.c')
-rw-r--r-- | src/math.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/math.c b/src/math.c new file mode 100644 index 0000000..573e049 --- /dev/null +++ b/src/math.c @@ -0,0 +1,31 @@ +#include "math.h" +#include <stdint.h> + +static uint64_t seed; + +void srand(unsigned int s) { + seed = s-1; +} + +int rand() { + seed = 6364136223846793005ULL*seed + 1; + return seed>>33; +} + +double fabs(double x) { + union {double f; uint64_t i;} u = {x}; + u.i &= -1ULL/2; + return u.f; +} + +double sin(double x); +double cos(double x); +double tan(double x); +double asin(double x); +double acos(double x); +double floor(double x); +double ceil(double x); +double fmod(double x, double y); +double sqrt(double x); +double log(double x); +double exp(double x); |