summaryrefslogtreecommitdiff
path: root/src/math.c
blob: 573e04950cfc7f789431a94be7bae7aa870c9235 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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);