From ee48867446b9888287e9eaa304b014b5f6a54736 Mon Sep 17 00:00:00 2001 From: krimtonz <33664508+krimtonz@users.noreply.github.com> Date: Sat, 18 Apr 2020 22:28:24 -0500 Subject: Math Files (#76) * math3d wip * math3d wip * wip * wip * wip * wip * final update before pr * run format.sh * fix merge conflicts * tharo suggestions update * fig formatting suggestion * math3d pr updates * use sFactorialTbl in sys_math --- src/code/sys_math.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/code/sys_math.c (limited to 'src/code/sys_math.c') diff --git a/src/code/sys_math.c b/src/code/sys_math.c new file mode 100644 index 000000000..25af276ec --- /dev/null +++ b/src/code/sys_math.c @@ -0,0 +1,48 @@ +#include +#include +f32 sFactorialTbl[] = { 1.0f, 1.0f, 2.0f, 6.0f, 24.0f, 120.0f, 720.0f, + 5040.0f, 40320.0f, 362880.0f, 3628800.0f, 39916800.0f, 479001600.0f }; + +f32 func_800CA540(f32 arg0) { + f32 ret = 1.0f; + s32 i; + for (i = arg0; i > 1; i--) { + ret *= i; + } + return ret; +} + +#ifdef NON_MATCHING +f32 func_800CA63C(u32 arg0) { + f32 ret; + s32 i; + if (arg0 > 12) { + ret = sFactorialTbl[12]; + for (i = 13; i < (s32)arg0; i++) { + ret *= i; + } + } else { + ret = sFactorialTbl[arg0]; + } + return ret; +} +#else +#pragma GLOBAL_ASM("asm/non_matchings/code/sys_math/func_800CA63C.s") +#endif + +f32 func_800CA6FC(f32 arg0, s32 arg1) { + f32 ret = 1.0f; + while (arg1 > 0) { + arg1--; + ret *= arg0; + } + return ret; +} + +f32 func_800CA720(f32 arg0) { + return sins((s16)(arg0 * (32767.0f / M_PI))) * SHT_MINV; +} + +f32 func_800CA774(f32 arg0) { + return coss((s16)(arg0 * (32767.0f / M_PI))) * SHT_MINV; +} -- cgit v1.2.3