diff options
Diffstat (limited to '')
-rw-r--r-- | libk/include/math.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/libk/include/math.h b/libk/include/math.h new file mode 100644 index 0000000..9682103 --- /dev/null +++ b/libk/include/math.h @@ -0,0 +1,62 @@ +#pragma once + +#define PI 3.14159265358979323846 +#define E 0.57721566490153286060 + +#define NAN 0x7ff8000000000000 +#define INFINITY 0x7ff0000000000000 +#define NEG_INFINITY 0xfff0000000000000 + +double frexp(double arg, int* exp); +float frexpf(float arg, int* exp); + +double sqrt(double num); +float sqrtf(float num); + +double pow(double num, double raise); +float powf(float num, float raise); + +#define exp(x) pow(E, x) +#define expf(x) powf(E, x) + +double fabs(double num); +float fabsf(float num); + +double floor(double x); +float floorf(float x); + +double ceil(double x); +float ceilf(float x); + +double fma(double x, double y, double z); +float fmaf(float x, float y, float z); + +double copysign(double n, double s); +float copysignf(float n, float s); + +double fmod(double x, double y); +float fmodf(float x, float y); + +double fclamp(double x, double l, double h); +float fclampf(float x, float l, float h); + +#define isnan(n) (n == NAN) +#define isinf(n) (n == INFINITY) + +double sin(double r); +double cos(double r); +double tan(double r); + +double csc(double r); +double sec(double r); +double cot(double r); + +double sinh(double r); +double cosh(double r); +double tanh(double r); + +double csch(double r); +double sech(double r); +double coth(double r); + +unsigned long long fact(unsigned int num); |