summaryrefslogtreecommitdiff
path: root/src/libultra_code_O2/sins.c
blob: 4b538f67dcf96388e0b8ce53283d9951b6691567 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "ultra64.h"
#include "sintable.c"

s16 sins(u16 x) {
    s16 value;

    x >>= 4;

    if (x & 0x400) {
        value = sintable[0x3FF - (x & 0x3FF)];
    } else {
        value = sintable[x & 0x3FF];
    }

    if (x & 0x800) {
        return -value;
    } else {
        return value;
    }
}