Select Git revision
fx_s2308_longlong.c
-
Choi Jinyoung authoredChoi Jinyoung authored
fx_s2308_longlong.c 1020 B
#include "fx_s2308_longlong.h"
typedef int fx_s2308 ;
const fx_s2308 fx_s2308_SinTable[92] =
{
0,4,8,13,17,22,26,31,35,40,
44,48,53,57,61,66,70,74,79,83,
87,91,95,100,104,108,112,116,120,124,
128,131,135,139,143,146,150,154,157,161,
164,167,171,174,177,181,184,187,190,193,
196,198,201,204,207,209,212,214,217,219,
221,223,226,228,230,232,233,235,237,238,
240,242,243,244,246,247,248,249,250,251,
252,252,253,254,254,255,255,255,255,255,256,255
};
fx_s2308 fx_s2308_sind(fx_s2308 fa)
{
int sign = 1;
fixed32 ret0, diff;
int idx;
if ( fa < 0 )
{
sign = -1;
fa *= -1;
}
fa = fa % FX32_360;
if ( fa >= FX32_180 )
{
sign *= -1;
fa -= FX32_180;
}
if ( fa > FX32_90 )
fa = FX32_180 - fa;
idx = fa>>8;
ret0 = fx_s2308_SinTable[idx];
diff = fx_s2308_SinTable[idx+1]-ret0;
return ( sign *( ret0 + ((diff*(fa&0x00FF))>>8)));
}