From 2bdcaf319b1d74ffbaccf08a58336f804761beab Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Thu, 9 Jul 2026 23:51:55 -0400 Subject: Refactor into monorepo --- gastro/src/trig.c | 268 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 268 insertions(+) create mode 100644 gastro/src/trig.c (limited to 'gastro/src/trig.c') diff --git a/gastro/src/trig.c b/gastro/src/trig.c new file mode 100644 index 0000000..7f838c1 --- /dev/null +++ b/gastro/src/trig.c @@ -0,0 +1,268 @@ +#include + +static gastro_fix SIN_TABLE[256] = { + 0x0, + 0x648, + 0xc8f, + 0x12d5, + 0x1917, + 0x1f56, + 0x2590, + 0x2bc4, + 0x31f1, + 0x3817, + 0x3e33, + 0x4447, + 0x4a50, + 0x504d, + 0x563e, + 0x5c22, + 0x61f7, + 0x67bd, + 0x6d74, + 0x7319, + 0x78ad, + 0x7e2e, + 0x839c, + 0x88f5, + 0x8e39, + 0x9368, + 0x987f, + 0x9d7f, + 0xa267, + 0xa736, + 0xabeb, + 0xb085, + 0xb504, + 0xb968, + 0xbdae, + 0xc1d8, + 0xc5e4, + 0xc9d1, + 0xcd9f, + 0xd14d, + 0xd4db, + 0xd848, + 0xdb94, + 0xdebe, + 0xe1c5, + 0xe4aa, + 0xe76b, + 0xea09, + 0xec83, + 0xeed8, + 0xf109, + 0xf314, + 0xf4fa, + 0xf6ba, + 0xf853, + 0xf9c7, + 0xfb14, + 0xfc3b, + 0xfd3a, + 0xfe13, + 0xfec4, + 0xff4e, + 0xffb1, + 0xffec, + 0xffff, + 0xffec, + 0xffb1, + 0xff4e, + 0xfec4, + 0xfe13, + 0xfd3a, + 0xfc3b, + 0xfb14, + 0xf9c7, + 0xf853, + 0xf6ba, + 0xf4fa, + 0xf314, + 0xf109, + 0xeed8, + 0xec83, + 0xea09, + 0xe76b, + 0xe4aa, + 0xe1c5, + 0xdebe, + 0xdb94, + 0xd848, + 0xd4db, + 0xd14d, + 0xcd9f, + 0xc9d1, + 0xc5e4, + 0xc1d8, + 0xbdae, + 0xb968, + 0xb504, + 0xb085, + 0xabeb, + 0xa736, + 0xa267, + 0x9d7f, + 0x987f, + 0x9368, + 0x8e39, + 0x88f5, + 0x839c, + 0x7e2e, + 0x78ad, + 0x7319, + 0x6d74, + 0x67bd, + 0x61f7, + 0x5c22, + 0x563e, + 0x504d, + 0x4a50, + 0x4447, + 0x3e33, + 0x3817, + 0x31f1, + 0x2bc4, + 0x2590, + 0x1f56, + 0x1917, + 0x12d5, + 0xc8f, + 0x648, + 0x0, + (i64) 0xfffffffffffff9b8, + (i64) 0xfffffffffffff371, + (i64) 0xffffffffffffed2b, + (i64) 0xffffffffffffe6e9, + (i64) 0xffffffffffffe0aa, + (i64) 0xffffffffffffda70, + (i64) 0xffffffffffffd43c, + (i64) 0xffffffffffffce0f, + (i64) 0xffffffffffffc7e9, + (i64) 0xffffffffffffc1cd, + (i64) 0xffffffffffffbbb9, + (i64) 0xffffffffffffb5b0, + (i64) 0xffffffffffffafb3, + (i64) 0xffffffffffffa9c2, + (i64) 0xffffffffffffa3de, + (i64) 0xffffffffffff9e09, + (i64) 0xffffffffffff9843, + (i64) 0xffffffffffff928c, + (i64) 0xffffffffffff8ce7, + (i64) 0xffffffffffff8753, + (i64) 0xffffffffffff81d2, + (i64) 0xffffffffffff7c64, + (i64) 0xffffffffffff770b, + (i64) 0xffffffffffff71c7, + (i64) 0xffffffffffff6c98, + (i64) 0xffffffffffff6781, + (i64) 0xffffffffffff6281, + (i64) 0xffffffffffff5d99, + (i64) 0xffffffffffff58ca, + (i64) 0xffffffffffff5415, + (i64) 0xffffffffffff4f7b, + (i64) 0xffffffffffff4afc, + (i64) 0xffffffffffff4698, + (i64) 0xffffffffffff4252, + (i64) 0xffffffffffff3e28, + (i64) 0xffffffffffff3a1c, + (i64) 0xffffffffffff362f, + (i64) 0xffffffffffff3261, + (i64) 0xffffffffffff2eb3, + (i64) 0xffffffffffff2b25, + (i64) 0xffffffffffff27b8, + (i64) 0xffffffffffff246c, + (i64) 0xffffffffffff2142, + (i64) 0xffffffffffff1e3b, + (i64) 0xffffffffffff1b56, + (i64) 0xffffffffffff1895, + (i64) 0xffffffffffff15f7, + (i64) 0xffffffffffff137d, + (i64) 0xffffffffffff1128, + (i64) 0xffffffffffff0ef7, + (i64) 0xffffffffffff0cec, + (i64) 0xffffffffffff0b06, + (i64) 0xffffffffffff0946, + (i64) 0xffffffffffff07ad, + (i64) 0xffffffffffff0639, + (i64) 0xffffffffffff04ec, + (i64) 0xffffffffffff03c5, + (i64) 0xffffffffffff02c6, + (i64) 0xffffffffffff01ed, + (i64) 0xffffffffffff013c, + (i64) 0xffffffffffff00b2, + (i64) 0xffffffffffff004f, + (i64) 0xffffffffffff0014, + (i64) 0xffffffffffff0001, + (i64) 0xffffffffffff0014, + (i64) 0xffffffffffff004f, + (i64) 0xffffffffffff00b2, + (i64) 0xffffffffffff013c, + (i64) 0xffffffffffff01ed, + (i64) 0xffffffffffff02c6, + (i64) 0xffffffffffff03c5, + (i64) 0xffffffffffff04ec, + (i64) 0xffffffffffff0639, + (i64) 0xffffffffffff07ad, + (i64) 0xffffffffffff0946, + (i64) 0xffffffffffff0b06, + (i64) 0xffffffffffff0cec, + (i64) 0xffffffffffff0ef7, + (i64) 0xffffffffffff1128, + (i64) 0xffffffffffff137d, + (i64) 0xffffffffffff15f7, + (i64) 0xffffffffffff1895, + (i64) 0xffffffffffff1b56, + (i64) 0xffffffffffff1e3b, + (i64) 0xffffffffffff2142, + (i64) 0xffffffffffff246c, + (i64) 0xffffffffffff27b8, + (i64) 0xffffffffffff2b25, + (i64) 0xffffffffffff2eb3, + (i64) 0xffffffffffff3261, + (i64) 0xffffffffffff362f, + (i64) 0xffffffffffff3a1c, + (i64) 0xffffffffffff3e28, + (i64) 0xffffffffffff4252, + (i64) 0xffffffffffff4698, + (i64) 0xffffffffffff4afc, + (i64) 0xffffffffffff4f7b, + (i64) 0xffffffffffff5415, + (i64) 0xffffffffffff58ca, + (i64) 0xffffffffffff5d99, + (i64) 0xffffffffffff6281, + (i64) 0xffffffffffff6781, + (i64) 0xffffffffffff6c98, + (i64) 0xffffffffffff71c7, + (i64) 0xffffffffffff770b, + (i64) 0xffffffffffff7c64, + (i64) 0xffffffffffff81d2, + (i64) 0xffffffffffff8753, + (i64) 0xffffffffffff8ce7, + (i64) 0xffffffffffff928c, + (i64) 0xffffffffffff9843, + (i64) 0xffffffffffff9e09, + (i64) 0xffffffffffffa3de, + (i64) 0xffffffffffffa9c2, + (i64) 0xffffffffffffafb3, + (i64) 0xffffffffffffb5b0, + (i64) 0xffffffffffffbbb9, + (i64) 0xffffffffffffc1cd, + (i64) 0xffffffffffffc7e9, + (i64) 0xffffffffffffce0f, + (i64) 0xffffffffffffd43c, + (i64) 0xffffffffffffda70, + (i64) 0xffffffffffffe0aa, + (i64) 0xffffffffffffe6e9, + (i64) 0xffffffffffffed2b, + (i64) 0xfffffffffffff371, + (i64) 0xfffffffffffff9b8 +}; + +gastro_fix gastro_sin(u8 turns) { + return SIN_TABLE[turns]; +} + +gastro_fix gastro_cos(u8 turns) { + return SIN_TABLE[(u8) (turns + 64)]; +} -- cgit v1.3.1