summaryrefslogtreecommitdiff
path: root/src/libultra_code_O2/sinf.c
diff options
context:
space:
mode:
authorTharo <17233964+Thar0@users.noreply.github.com>2021-12-01 00:08:57 +0000
committerGitHub <noreply@github.com>2021-11-30 19:08:57 -0500
commitf1d183d6feac23275306bfa2dee939d123702765 (patch)
treec20585c17dea94561f7c4cfcff572e39bc033a3e /src/libultra_code_O2/sinf.c
parenteabc91881761a82856cca3fab9a4749c60ea1fe7 (diff)
libultra files and directories restructure (#1038)
* Restructure files, begin header restructure * Format * us2dex * Fix parallel spelling Co-authored-by: JoshDuMan <40190173+JoshDuMan@users.noreply.github.com> * Use OS_K0_TO_PHYSICAL in place of VIRTUAL_TO_PHYSICAL in osAiSetNextBuffer * Uppercase hex, exception vector address defines * Interrupt flags 1 Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Interrupt flags 2 Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> Co-authored-by: JoshDuMan <40190173+JoshDuMan@users.noreply.github.com> Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
Diffstat (limited to 'src/libultra_code_O2/sinf.c')
-rw-r--r--src/libultra_code_O2/sinf.c64
1 files changed, 0 insertions, 64 deletions
diff --git a/src/libultra_code_O2/sinf.c b/src/libultra_code_O2/sinf.c
deleted file mode 100644
index bb7f58e72..000000000
--- a/src/libultra_code_O2/sinf.c
+++ /dev/null
@@ -1,64 +0,0 @@
-#include "global.h"
-#include "ultra64.h"
-
-static const du P[] = {
- { 0x3FF00000, 0x00000000 }, { 0xBFC55554, 0xBC83656D }, { 0x3F8110ED, 0x3804C2A0 },
- { 0xBF29F6FF, 0xEEA56814 }, { 0x3EC5DBDF, 0x0E314BFE },
-};
-
-static const du rpi = { 0x3FD45F30, 0x6DC9C883 };
-
-static const du pihi = { 0x400921FB, 0x50000000 };
-
-static const du pilo = { 0x3E6110B4, 0x611A6263 };
-
-static const fu zero = { 0x00000000 };
-
-f32 sinf(f32 x) {
- f64 dx;
- f64 xSq;
- f64 polyApprox;
- f64 dn;
- s32 n;
- f64 result;
- s32 ix = *(s32*)&x;
- s32 xpt = (ix >> 22);
-
- xpt &= 0x1FF;
-
- if (xpt < 0xFF) {
- dx = x;
-
- if (xpt >= 0xE6) {
- xSq = SQ(dx);
- polyApprox = ((P[4].d * xSq + P[3].d) * xSq + P[2].d) * xSq + P[1].d;
- result = dx + (dx * xSq) * polyApprox;
- return (f32)result;
- }
- return x;
- }
-
- if (xpt < 0x136) {
- dx = x;
- dn = dx * rpi.d;
- n = ROUND(dn);
- dn = n;
-
- dx -= dn * pihi.d;
- dx -= dn * pilo.d;
- xSq = SQ(dx);
-
- polyApprox = ((P[4].d * xSq + P[3].d) * xSq + P[2].d) * xSq + P[1].d;
- result = dx + (dx * xSq) * polyApprox;
-
- if (!(n & 1)) {
- return (f32)result;
- }
- return -(f32)result;
- }
-
- if (x != x) {
- return __libm_qnan_f;
- }
- return zero.f;
-}