diff options
author | Tyler Murphy <=> | 2023-07-16 02:54:32 -0400 |
---|---|---|
committer | Tyler Murphy <=> | 2023-07-16 02:54:32 -0400 |
commit | fbf131b5c043b27e0b1543374bb144e3e426f723 (patch) | |
tree | 07f0ab2fc107b36621d5ae95480e6a91e332548b /libk/src/math/trig.c | |
download | finix-fbf131b5c043b27e0b1543374bb144e3e426f723.tar.gz finix-fbf131b5c043b27e0b1543374bb144e3e426f723.tar.bz2 finix-fbf131b5c043b27e0b1543374bb144e3e426f723.zip |
initial
Diffstat (limited to 'libk/src/math/trig.c')
-rw-r--r-- | libk/src/math/trig.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/libk/src/math/trig.c b/libk/src/math/trig.c new file mode 100644 index 0000000..f234d69 --- /dev/null +++ b/libk/src/math/trig.c @@ -0,0 +1,62 @@ +#include <math.h> + +double sin(double r) { + r = fmod(r + PI, PI * 2) - PI; + double d = r; + float mult = -1; + for (int i = 3; i < 11; i+= 2, mult = -mult) { + d += (pow(r, i)/fact(i)) * mult; + } + return d; +} + +double cos(double r) { + r = fmod(r + PI, PI * 2) - PI; + double d = 1; + float mult = -1; + for (int i = 2; i < 10; i+= 2, mult = -mult) { + d += (pow(r, i)/fact(i)) * mult; + } + return d; +} + +double tan(double r) { + return sin(r) / cos(r); +} + +double csc(double r) { + return 1 / sin(r); +} + +double sec(double r) { + return 1 / cos(r); +} + +double cot(double r) { + return cos(r) / sin(r); +} + +double sinh(double r) { + return (pow(E, r) - pow(E, -r)) / 2; +} + +double cosh(double r) { + return (pow(E, r) + pow(E, -r)) / 2; +} + +double tanh(double r) { + return sinh(r) / cosh(r); +} + +double csch(double r) { + return 1 / sinh(r); +} + +double sech(double r) { + return 1 / cosh(r); +} + +double coth(double r) { + return cosh(r) / sinh(r); +} + |