- static float
- my_sin_table[257] =
- {
- 0.0000000000f, 0.00613588465f,0.0122715383f, 0.0184067299f,
- 0.0245412285f, 0.0306748032f, 0.0368072229f, 0.0429382569f,
- 0.0490676743f, 0.0551952443f, 0.0613207363f, 0.0674439195f,
- 0.0735645636f, 0.0796824379f, 0.0857973123f, 0.0919089564f,
- 0.0980171403f, 0.1041216340f, 0.1102222070f, 0.1163186310f,
- 0.1224106750f, 0.1284981110f, 0.1345807080f, 0.1406582390f,
- 0.1467304740f, 0.1527971850f, 0.1588581430f, 0.1649131200f,
- 0.1709618890f, 0.1770042200f, 0.1830398880f, 0.1890686640f,
- 0.1950903220f, 0.2011046350f, 0.2071113760f, 0.2131103200f,
- 0.2191012400f, 0.2250839110f, 0.2310581080f, 0.2370236060f,
- 0.2429801800f, 0.2489276060f, 0.2548656600f, 0.2607941180f,
- 0.2667127570f, 0.2726213550f, 0.2785196890f, 0.2844075370f,
- 0.2902846770f, 0.2961508880f, 0.3020059490f, 0.3078496400f,
- 0.3136817400f, 0.3195020310f, 0.3253102920f, 0.3311063060f,
- 0.3368898530f, 0.3426607170f, 0.3484186800f, 0.3541635250f,
- 0.3598950360f, 0.3656129980f, 0.3713171940f, 0.3770074100f,
- 0.3826834320f, 0.3883450470f, 0.3939920400f, 0.3996242000f,
- 0.4052413140f, 0.4108431710f, 0.4164295600f, 0.4220002710f,
- 0.4275550930f, 0.4330938190f, 0.4386162380f, 0.4441221440f,
- 0.4496113300f, 0.4550835870f, 0.4605387110f, 0.4659764960f,
- 0.4713967370f, 0.4767992300f, 0.4821837720f, 0.4875501600f,
- 0.4928981920f, 0.4982276670f, 0.5035383830f, 0.5088301420f,
- 0.5141027440f, 0.5193559900f, 0.5245896820f, 0.5298036250f,
- 0.5349976200f, 0.5401714730f, 0.5453249880f, 0.5504579730f,
- 0.5555702330f, 0.5606615760f, 0.5657318110f, 0.5707807460f,
- 0.5758081910f, 0.5808139580f, 0.5857978570f, 0.5907597020f,
- 0.5956993040f, 0.6006164790f, 0.6055110410f, 0.6103828060f,
- 0.6152315900f, 0.6200572110f, 0.6248594880f, 0.6296382390f,
- 0.6343932840f, 0.6391244450f, 0.6438315430f, 0.6485144010f,
- 0.6531728430f, 0.6578066930f, 0.6624157770f, 0.6669999220f,
- 0.6715589550f, 0.6760927030f, 0.6806009980f, 0.6850836680f,
- 0.6895405450f, 0.6939714610f, 0.6983762490f, 0.7027547440f,
- 0.7071067810f, 0.7114321960f, 0.7157308250f, 0.7200025080f,
- 0.7242470830f, 0.7284643900f, 0.7326542710f, 0.7368165690f,
- 0.7409511250f, 0.7450577850f, 0.7491363940f, 0.7531867990f,
- 0.7572088460f, 0.7612023850f, 0.7651672650f, 0.7691033370f,
- 0.7730104530f, 0.7768884660f, 0.7807372280f, 0.7845565970f,
- 0.7883464270f, 0.7921065770f, 0.7958369040f, 0.7995372690f,
- 0.8032075310f, 0.8068475530f, 0.8104571980f, 0.8140363300f,
- 0.8175848130f, 0.8211025150f, 0.8245893030f, 0.8280450450f,
- 0.8314696120f, 0.8348628750f, 0.8382247050f, 0.8415549770f,
- 0.8448535650f, 0.8481203450f, 0.8513551930f, 0.8545579880f,
- 0.8577286100f, 0.8608669380f, 0.8639728560f, 0.8670462460f,
- 0.8700869910f, 0.8730949780f, 0.8760700940f, 0.8790122260f,
- 0.8819212640f, 0.8847970980f, 0.8876396200f, 0.8904487230f,
- 0.8932243010f, 0.8959662500f, 0.8986744660f, 0.9013488470f,
- 0.9039892930f, 0.9065957040f, 0.9091679830f, 0.9117060320f,
- 0.9142097560f, 0.9166790600f, 0.9191138520f, 0.9215140390f,
- 0.9238795320f, 0.9262102420f, 0.9285060800f, 0.9307669610f,
- 0.9329927990f, 0.9351835100f, 0.9373390120f, 0.9394592240f,
- 0.9415440650f, 0.9435934580f, 0.9456073250f, 0.9475855910f,
- 0.9495281810f, 0.9514350210f, 0.9533060400f, 0.9551411680f,
- 0.9569403350f, 0.9587034750f, 0.9604305190f, 0.9621214040f,
- 0.9637760660f, 0.9653944420f, 0.9669764710f, 0.9685220940f,
- 0.9700312530f, 0.9715038910f, 0.9729399520f, 0.9743393830f,
- 0.9757021300f, 0.9770281420f, 0.9783173710f, 0.9795697660f,
- 0.9807852800f, 0.9819638690f, 0.9831054870f, 0.9842100920f,
- 0.9852776420f, 0.9863080970f, 0.9873014180f, 0.9882575680f,
- 0.9891765100f, 0.9900582100f, 0.9909026360f, 0.9917097540f,
- 0.9924795350f, 0.9932119490f, 0.9939069700f, 0.9945645710f,
- 0.9951847270f, 0.9957674150f, 0.9963126120f, 0.9968202990f,
- 0.9972904570f, 0.9977230670f, 0.9981181130f, 0.9984755800f,
- 0.9987954560f, 0.9990777280f, 0.9993223850f, 0.9995294180f,
- 0.9996988190f, 0.9998305820f, 0.9999247020f, 0.9999811760f,
- 1.0f
- };
- float my_sinf(float x)
- {
- int a = (0.5f + x * (1024.0 / (2 * M_PI)));
- int negate = a & 512;
- float r;
- a &= 511;
- if (a >= 256)
- a = 512-a;
- r = my_sin_table[a];
- if (negate)
- r = -r;
- return r;
- }