1#ifndef JMATRIGONOMETRIC_H
2#define JMATRIGONOMETRIC_H
11 extern double asin(
double);
12 extern double atan(
double);
37template<
int N,
typename T>
45 for (
int i = 0;
i < 1 << N;
i++) {
56 return -
table[(
u16)(-(T)(1 << N) *
v) & ((1 << N) - 1)].first;
58 return table[(
u16)((T)(1 << N) *
v) & ((1 << N) - 1)].first;
62 if (degree < (T)0.0) {
63 return -
table[(
u16)(-((T)(1 << N) / (T)360.0) * degree) & ((1 << N) - 1)].first;
65 return table[(
u16)(((T)(1 << N) / (T)360.0) * degree) & ((1 << N) - 1)].first;
69 if (degree < (T)0.0) {
72 return table[(
u16)(((T)(1 << N) / (T)360.0) * degree) & ((1 << N) - 1)].second;
76 if (radian < (T)0.0) {
87template<
int N,
typename T>
98 for (
int i = 0;
i < (
u32)N;
i++) {
110template<
int N,
typename T>
120 for (
int i = 0;
i < 1024;
i++) {
130 }
else if (
x <= -1.0f) {
132 }
else if (
x < 0.0f) {
f32 JMASinShort(s16 v)
Definition JMATrigonometric.h:156
f32 JMASinLap(f32 v)
Definition JMATrigonometric.h:167
f32 JMASinDegree(f32 degree)
Definition JMATrigonometric.h:171
f32 JMASSin(s16 v)
Definition JMATrigonometric.h:163
f32 JMACosShort(s16 v)
Definition JMATrigonometric.h:153
f32 JMACosDegree(f32 degree)
Definition JMATrigonometric.h:175
f32 JMASinRadian(f32 radian)
Definition JMATrigonometric.h:179
f32 JMASCos(s16 v)
Definition JMATrigonometric.h:160
double asin(double)
Definition w_asin.c:3
double x double x
Definition e_atan2.c:58
int i
Definition e_log.c:92
double v
Definition e_pow.c:114
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
double f64
Definition types.h:26
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
Definition JMATrigonometric.cpp:11
TAtanTable< 1024, f32 > atanTable_
TSinCosTable< 13, f32 > sincosTable_
f32 acosDegree(f32 x)
Definition JMATrigonometric.h:148
TAsinAcosTable< 1024, f32 > asinAcosTable_
double cos(double x) double cos(x) double x
double sin(double x) double sin(x) double x
static f32 RADIAN_TO_DEGREE_FACTOR()
Definition JMATrigonometric.h:30
static f32 RADIAN_DEG180()
Definition JMATrigonometric.h:28
static f32 RADIAN_DEG360()
Definition JMATrigonometric.h:29
static f32 RADIAN_DEG090()
Definition JMATrigonometric.h:27
Definition JMATrigonometric.h:19
Definition JMATrigonometric.h:111
void init()
Definition JMATrigonometric.h:119
TAsinAcosTable()
Definition JMATrigonometric.h:115
T acosDegree(T x) const
Definition JMATrigonometric.h:139
T table[N+1]
Definition JMATrigonometric.h:112
T acos_(T x) const
Definition JMATrigonometric.h:127
u8 pad[0x1C]
Definition JMATrigonometric.h:113
Definition JMATrigonometric.h:88
T table[N+1]
Definition JMATrigonometric.h:89
u8 pad[0x1C]
Definition JMATrigonometric.h:90
TAtanTable()
Definition JMATrigonometric.h:92
void init()
Definition JMATrigonometric.h:96
Definition JMATrigonometric.h:38
T sinDegree(T degree) const
Definition JMATrigonometric.h:61
T cosShort(s16 v) const
Definition JMATrigonometric.h:52
T cosDegree(T degree) const
Definition JMATrigonometric.h:68
T sinShort(s16 v) const
Definition JMATrigonometric.h:51
T sinLap(T v) const
Definition JMATrigonometric.h:54
T sinRadian(T radian) const
Definition JMATrigonometric.h:75
std::pair< T, T > table[1<< N]
Definition JMATrigonometric.h:39
TSinCosTable()
Definition JMATrigonometric.h:41
void init()
Definition JMATrigonometric.h:44
double asin(double x)
Definition w_asin.c:3