freeswitch/libs/libg722_1/src/dct4_s.h

871 lines
22 KiB
C

/*
* g722_1 - a library for the G.722.1 and Annex C codecs
*
* dct4_s.h
*
* Adapted by Steve Underwood <steveu@coppice.org> from the reference
* code supplied with ITU G.722.1, which is:
*
* © 2004 Polycom, Inc.
* All rights reserved.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* $Id: dct4_s.h,v 1.4 2008/09/25 15:56:31 steveu Exp $
*/
typedef struct
{
int16_t cosine;
int16_t minus_sine;
} cos_msin_t;
/***************************************************************************
The dct_core_s table was generated by the following code
for (i = 0; i < 10; ++i)
{
for (k = 0; k < 10; ++k)
{
dct_core_s[i][k] = (short) (FTOI(((.9*32768.)*cos(3.1415926*(k+0.5)*(i+0.5)/10.))));
}
}
***************************************************************************/
static const int16_t dct_core_s[10][10] =
{
{ 29400, 28676, 27246, 25145, 22425, 19153, 15409, 11286, 6885, 2314},
{ 28676, 22425, 11286, -2314, -15409, -25145, -29400, -27246, -19153, -6885},
{ 27246, 11286, -11286, -27246, -27246, -11286, 11286, 27246, 27246, 11286},
{ 25145, -2314, -27246, -22425, 6885, 28676, 19153, -11286, -29400, -15409},
{ 22425, -15409, -27246, 6885, 29400, 2314, -28676, -11286, 25145, 19153},
{ 19153, -25145, -11286, 28676, 2314, -29400, 6885, 27246, -15409, -22425},
{ 15409, -29400, 11286, 19153, -28676, 6885, 22425, -27246, 2314, 25145},
{ 11286, -27246, 27246, -11286, -11286, 27246, -27246, 11286, 11286, -27246},
{ 6885, -19153, 27246, -29400, 25145, -15409, 2314, 11286, -22425, 28676},
{ 2314, -6885, 11286, -15409, 19153, -22425, 25145, -27246, 28676, -29400}
};
static const int16_t syn_bias_7khz[DCT_LENGTH] =
{
-4, 4, -5, -2, 0, -4, 6, 2, -2, -4,
-3, 3, 0, 0, -2, 4, 0, 0, 3, -6,
8, 5, 4, 5, -8, 0, -2, 0, 0, -3,
3, 0, 0, 0, 1, -1, -2, 0, 0, 2,
-2, -5, -2, 3, 2, -1, -1, -6, 3, 1,
-7, 4, 4, 0, 1, 4, 1, 0, 1, -5,
-1, 1, -6, 0, -1, -1, 3, 0, -2, 1,
2, -4, 0, 9, 0, -3, 1, 1, 1, 0,
-3, -2, -1, -4, -2, 0, 5, 2, -3, 5,
0, -2, 4, 4, 0, -6, -4, 2, 0, 0,
0, -1, -1, -2, 0, 6, 1, 0, 0, -1,
0, -4, -1, 0, -4, 1, -1, -5, 0, 1,
2, 4, 0, -8, -4, 0, -2, -2, 2, 5,
-3, -1, 1, -4, 0, 0, 0, -1, -3, 0,
-5, -4, 0, -2, 0, 7, 1, 0, 5, -2,
-1, 2, 2, -2, 3, 7, -3, 4, 1, -4,
0, 0, 3, -7, -5, 0, 0, 4, 0, -2,
-1, 0, -5, 0, 2, 0, 11, 5, -1, 0,
2, 2, -2, -2, 5, 4, -3, 1, 0, -2,
1, 3, 2, 0, 1, 0, 0, 0, 5, 6,
-2, -1, 0, 2, 3, 2, 0, -3, 4, 5,
0, -1, 0, 3, 1, -2, -3, -2, -1, 2,
-1, -1, -2, -7, 4, 6, -5, -6, -3, -4,
0, 2, -5, -2, 3, 0, 0, 0, 2, -2,
-4, 3, 3, 1, 0, 0, 4, -1, 8, 13,
1, 2, 0, 2, 0, -1, 4, -3, 1, 0,
-1, 3, 0, 0, -5, 0, 6, 2, 4, 5,
2, -1, -1, 3, 6, 1, 1, 2, -4, 0,
-1, -6, -2, -2, 2, 1, 2, 6, 2, 0,
-2, -2, 0, -1, 2, 0, 0, 3, -2, 1,
3, 1, 2, -1, -2, 2, 2, -4, 0, 0,
-3, 0, -4, -3, 6, 7, 2, 2, 0, -3
};
static const int16_t dither[DCT_LENGTH] =
{
1, 0, 0, 0, 1, 0, 0, 1, 1, 1,
1, 0, 0, 0, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 0, 1, 1, 0, 0, 0,
1, 0, 0, 1, 0, 1, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0, 1, 0, 0, 0,
1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
0, 0, 1, 0, 0, 0, 1, 0, 0, 1,
1, 1, 1, 1, 1, 0, 1, 0, 0, 1,
1, 0, 0, 1, 0, 0, 0, 1, 0, 1,
0, 0, 1, 1, 0, 1, 0, 1, 1, 1,
1, 0, 0, 0, 0, 1, 1, 1, 1, 1,
0, 0, 0, 1, 0, 1, 0, 0, 0, 1,
1, 1, 0, 0, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 0, 1, 1, 1, 0,
1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
1, 0, 1, 1, 1, 1, 0, 0, 0, 0,
1, 1, 0, 1, 0, 0, 1, 0, 0, 1,
0, 0, 0, 1, 1, 0, 0, 1, 1, 1,
1, 0, 0, 0, 0, 0, 1, 1, 1, 1,
1, 0, 0, 1, 1, 0, 1, 1, 0, 0,
1, 1, 1, 0, 1, 1, 0, 1, 0, 1,
0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
0, 1, 1, 1, 1, 0, 1, 1, 1, 0,
1, 1, 1, 0, 1, 1, 1, 0, 1, 0,
1, 1, 0, 0, 1, 0, 0, 1, 0, 1,
0, 1, 1, 0, 1, 0, 1, 0, 1, 1,
1, 0, 1, 0, 1, 0, 1, 1, 1, 1,
0, 1, 0, 0, 0, 1, 0, 0, 0, 1,
1, 0, 0, 0, 1, 0, 0, 1, 0, 1,
1, 0, 1, 1, 0, 0, 1, 1, 0, 1,
1, 0, 1, 1, 1, 1, 1, 1, 0, 1,
1, 1, 1, 0, 1, 0, 0, 0, 1, 0
};
static const int16_t max_dither[MAX_DCT_LENGTH] =
{
1, 0, 1, 0, 1, 1, 0, 1, 0, 1,
1, 1, 0, 0, 0, 0, 0, 1, 1, 1,
1, 1, 1, 0, 1, 1, 0, 0, 0, 1,
0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 1, 0, 1, 1, 1, 1,
0, 1, 0, 1, 1, 1, 1, 1, 1, 0,
1, 0, 1, 1, 0, 1, 0, 0, 0, 1,
0, 1, 1, 1, 1, 1, 0, 1, 1, 0,
0, 0, 1, 1, 0, 0, 0, 1, 1, 1,
1, 0, 1, 1, 1, 1, 1, 0, 0, 0,
1, 0, 1, 0, 1, 0, 0, 0, 1, 1,
0, 1, 1, 1, 1, 1, 1, 0, 1, 0,
0, 0, 1, 0, 1, 0, 0, 0, 1, 0,
0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 1, 0, 1, 0, 0, 0, 1,
0, 1, 0, 0, 1, 1, 1, 1, 0, 1,
1, 0, 0, 0, 1, 1, 0, 1, 0, 1,
0, 1, 0, 1, 0, 1, 1, 1, 0, 1,
1, 0, 0, 1, 1, 1, 1, 0, 1, 1,
1, 1, 1, 0, 1, 1, 0, 0, 0, 0,
1, 0, 1, 0, 0, 0, 0, 1, 1, 0,
1, 1, 0, 0, 0, 0, 1, 0, 0, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 0, 1, 1, 1, 0, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 0, 0,
1, 1, 1, 1, 1, 1, 0, 1, 1, 1,
0, 0, 1, 1, 0, 1, 0, 1, 0, 1,
0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
0, 1, 1, 1, 0, 1, 0, 1, 0, 0,
0, 1, 0, 1, 1, 0, 0, 0, 1, 0,
1, 1, 0, 0, 1, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 1, 0, 0, 1, 1,
1, 1, 1, 0, 1, 0, 0, 0, 1, 0,
0, 1, 1, 1, 0, 1, 0, 1, 0, 0,
1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
0, 1, 1, 0, 1, 1, 1, 0, 1, 1,
0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
1, 1, 0, 0, 0, 1, 1, 1, 1, 0,
0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
0, 1, 0, 0, 0, 1, 1, 0, 0, 1,
0, 0, 1, 1, 0, 1, 0, 1, 0, 1,
1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
1, 0, 1, 0, 1, 0, 0, 1, 0, 0,
0, 1, 0, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 0, 0, 0, 1, 1, 1, 0,
1, 1, 1, 0, 1, 1, 1, 0, 0, 0,
0, 0, 1, 0, 0, 1, 0, 0, 0, 1,
0, 0, 0, 1, 1, 0, 0, 1, 0, 1,
1, 1, 1, 1, 0, 0, 1, 0, 1, 0,
0, 1, 0, 1, 1, 1, 1, 1, 1, 0,
0, 0, 1, 0, 1, 0, 0, 1, 0, 1,
1, 0, 1, 0, 1, 1, 0, 0, 1, 1,
1, 1, 1, 0, 1, 0, 0, 1, 1, 1,
0, 1, 0, 1, 0, 1, 0, 0, 0, 1,
1, 0, 0, 1, 0, 0, 1, 1, 0, 1,
1, 0, 1, 0, 1, 1, 0, 0, 1, 1,
0, 0, 0, 1, 0, 1, 1, 1, 0, 0,
1, 0, 1, 0, 1, 1, 0, 0, 0, 1,
1, 0, 1, 0, 0, 1, 1, 1, 0, 1,
0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
0, 1, 1, 1, 1, 0, 0, 0, 1, 0,
0, 1, 0, 1, 0, 1, 0, 0, 0, 0
};
/********************************************************************************
The s_cos_min tables were generated by the following code:
double angle, scale;
int index;
for (index = 0;index < length;index++)
{
angle = scale * ((double)index + 0.5);
table[index].cosine = (short) (FTOI((18427)* cos(angle)));
table[index].minus_sine = (short) (FTOI((18427)*(-sin(angle))));
}
********************************************************************************/
static const cos_msin_t s_cos_msin_2[DCT_LENGTH_DIV_32] =
{
{18413, -723},
{18299, -2166},
{18073, -3595},
{17735, -5002},
{17288, -6378},
{16734, -7715},
{16077, -9004},
{15321, -10237},
{14471, -11408},
{13531, -12508}
};
static const cos_msin_t s_cos_msin_4[DCT_LENGTH_DIV_16] =
{
{18423, -362},
{18395, -1085},
{18338, -1806},
{18253, -2525},
{18140, -3239},
{17999, -3949},
{17830, -4653},
{17634, -5349},
{17410, -6037},
{17159, -6716},
{16883, -7385},
{16580, -8042},
{16251, -8686},
{15898, -9318},
{15520, -9935},
{15118, -10536},
{14692, -11122},
{14244, -11690},
{13774, -12240},
{13283, -12772}
};
static const cos_msin_t s_cos_msin_8[DCT_LENGTH_DIV_8] =
{
{18426, -181},
{18419, -543},
{18405, -904},
{18384, -1265},
{18355, -1626},
{18320, -1986},
{18277, -2345},
{18228, -2704},
{18171, -3061},
{18107, -3417},
{18037, -3772},
{17959, -4126},
{17875, -4477},
{17783, -4827},
{17685, -5176},
{17580, -5522},
{17468, -5866},
{17350, -6208},
{17225, -6547},
{17093, -6884},
{16954, -7219},
{16809, -7550},
{16658, -7879},
{16500, -8204},
{16336, -8526},
{16165, -8846},
{15988, -9161},
{15805, -9473},
{15616, -9782},
{15421, -10087},
{15220, -10387},
{15013, -10684},
{14801, -10977},
{14582, -11265},
{14358, -11550},
{14129, -11829},
{13894, -12104},
{13654, -12375},
{13408, -12641},
{13157, -12901}
};
static const cos_msin_t s_cos_msin_16[DCT_LENGTH_DIV_4] =
{
{18427, -90},
{18425, -271},
{18421, -452},
{18416, -633},
{18409, -814},
{18400, -995},
{18389, -1175},
{18377, -1356},
{18363, -1536},
{18347, -1716},
{18329, -1896},
{18310, -2076},
{18288, -2256},
{18265, -2435},
{18241, -2614},
{18214, -2793},
{18186, -2972},
{18156, -3150},
{18124, -3328},
{18090, -3506},
{18055, -3684},
{18018, -3861},
{17979, -4037},
{17939, -4214},
{17897, -4390},
{17853, -4565},
{17807, -4740},
{17760, -4915},
{17710, -5089},
{17660, -5262},
{17607, -5436},
{17553, -5608},
{17497, -5780},
{17439, -5952},
{17380, -6123},
{17319, -6293},
{17257, -6463},
{17192, -6632},
{17126, -6800},
{17059, -6968},
{16990, -7135},
{16919, -7302},
{16846, -7467},
{16772, -7632},
{16696, -7797},
{16619, -7960},
{16540, -8123},
{16459, -8285},
{16377, -8446},
{16294, -8607},
{16208, -8766},
{16121, -8925},
{16033, -9083},
{15943, -9240},
{15852, -9396},
{15759, -9551},
{15664, -9705},
{15568, -9858},
{15471, -10011},
{15372, -10162},
{15271, -10313},
{15169, -10462},
{15066, -10610},
{14961, -10758},
{14854, -10904},
{14747, -11049},
{14637, -11194},
{14527, -11337},
{14415, -11479},
{14301, -11620},
{14187, -11760},
{14071, -11898},
{13953, -12036},
{13834, -12172},
{13714, -12308},
{13593, -12442},
{13470, -12575},
{13346, -12706},
{13220, -12837},
{13094, -12966}
};
static const cos_msin_t s_cos_msin_32[DCT_LENGTH_DIV_2] =
{
{18427, -45},
{18427, -136},
{18426, -226},
{18424, -317},
{18423, -407},
{18420, -497},
{18418, -588},
{18415, -678},
{18411, -769},
{18407, -859},
{18403, -949},
{18398, -1040},
{18392, -1130},
{18387, -1220},
{18380, -1310},
{18374, -1401},
{18367, -1491},
{18359, -1581},
{18351, -1671},
{18343, -1761},
{18334, -1851},
{18324, -1941},
{18315, -2031},
{18305, -2121},
{18294, -2211},
{18283, -2301},
{18271, -2390},
{18259, -2480},
{18247, -2570},
{18234, -2659},
{18221, -2749},
{18207, -2838},
{18193, -2927},
{18178, -3017},
{18163, -3106},
{18148, -3195},
{18132, -3284},
{18116, -3373},
{18099, -3462},
{18082, -3551},
{18064, -3639},
{18046, -3728},
{18027, -3816},
{18009, -3905},
{17989, -3993},
{17969, -4081},
{17949, -4170},
{17928, -4258},
{17907, -4346},
{17886, -4434},
{17864, -4521},
{17841, -4609},
{17818, -4696},
{17795, -4784},
{17772, -4871},
{17747, -4958},
{17723, -5045},
{17698, -5132},
{17672, -5219},
{17647, -5306},
{17620, -5392},
{17594, -5479},
{17567, -5565},
{17539, -5651},
{17511, -5737},
{17483, -5823},
{17454, -5909},
{17425, -5994},
{17395, -6080},
{17365, -6165},
{17335, -6250},
{17304, -6335},
{17272, -6420},
{17241, -6505},
{17208, -6590},
{17176, -6674},
{17143, -6758},
{17110, -6842},
{17076, -6926},
{17042, -7010},
{17007, -7093},
{16972, -7177},
{16937, -7260},
{16901, -7343},
{16864, -7426},
{16828, -7509},
{16791, -7591},
{16753, -7674},
{16715, -7756},
{16677, -7838},
{16638, -7919},
{16599, -8001},
{16560, -8082},
{16520, -8164},
{16480, -8245},
{16439, -8325},
{16398, -8406},
{16357, -8486},
{16315, -8567},
{16272, -8647},
{16230, -8726},
{16187, -8806},
{16143, -8885},
{16100, -8964},
{16055, -9043},
{16011, -9122},
{15966, -9200},
{15920, -9279},
{15875, -9357},
{15829, -9435},
{15782, -9512},
{15735, -9589},
{15688, -9667},
{15640, -9744},
{15592, -9820},
{15544, -9897},
{15495, -9973},
{15446, -10049},
{15396, -10124},
{15347, -10200},
{15296, -10275},
{15246, -10350},
{15195, -10425},
{15143, -10499},
{15092, -10573},
{15040, -10647},
{14987, -10721},
{14934, -10794},
{14881, -10868},
{14828, -10941},
{14774, -11013},
{14719, -11086},
{14665, -11158},
{14610, -11230},
{14555, -11301},
{14499, -11372},
{14443, -11444},
{14387, -11514},
{14330, -11585},
{14273, -11655},
{14216, -11725},
{14158, -11795},
{14100, -11864},
{14041, -11933},
{13983, -12002},
{13924, -12070},
{13864, -12138},
{13804, -12206},
{13744, -12274},
{13684, -12341},
{13623, -12408},
{13562, -12475},
{13501, -12541},
{13439, -12608},
{13377, -12673},
{13314, -12739},
{13252, -12804},
{13189, -12869},
{13125, -12934},
{13062, -12998}
};
static const cos_msin_t s_cos_msin_64[DCT_LENGTH] =
{
{18426, -21},
{18426, -66},
{18426, -110},
{18426, -154},
{18425, -198},
{18425, -242},
{18424, -286},
{18424, -331},
{18423, -374},
{18421, -419},
{18421, -463},
{18419, -507},
{18418, -552},
{18417, -595},
{18415, -639},
{18414, -684},
{18412, -728},
{18410, -772},
{18408, -816},
{18406, -860},
{18404, -904},
{18402, -949},
{18400, -992},
{18397, -1037},
{18394, -1081},
{18392, -1125},
{18389, -1169},
{18387, -1213},
{18384, -1257},
{18380, -1301},
{18378, -1345},
{18374, -1389},
{18371, -1433},
{18367, -1477},
{18364, -1521},
{18360, -1566},
{18356, -1609},
{18352, -1653},
{18348, -1697},
{18344, -1742},
{18339, -1785},
{18335, -1829},
{18331, -1873},
{18326, -1917},
{18322, -1961},
{18317, -2005},
{18312, -2049},
{18307, -2092},
{18302, -2137},
{18297, -2180},
{18292, -2224},
{18286, -2268},
{18281, -2312},
{18275, -2356},
{18270, -2399},
{18264, -2443},
{18258, -2487},
{18252, -2531},
{18246, -2574},
{18240, -2618},
{18233, -2662},
{18227, -2706},
{18220, -2749},
{18214, -2793},
{18207, -2836},
{18200, -2880},
{18193, -2924},
{18186, -2967},
{18179, -3011},
{18172, -3055},
{18164, -3098},
{18157, -3142},
{18149, -3185},
{18141, -3229},
{18134, -3272},
{18126, -3316},
{18118, -3359},
{18109, -3403},
{18101, -3446},
{18094, -3489},
{18085, -3533},
{18076, -3576},
{18068, -3619},
{18059, -3663},
{18050, -3706},
{18041, -3749},
{18032, -3792},
{18023, -3836},
{18014, -3879},
{18005, -3922},
{17995, -3965},
{17986, -4008},
{17975, -4051},
{17966, -4094},
{17956, -4138},
{17946, -4180},
{17936, -4224},
{17926, -4266},
{17916, -4309},
{17905, -4353},
{17895, -4395},
{17884, -4438},
{17874, -4481},
{17863, -4524},
{17852, -4567},
{17841, -4609},
{17830, -4652},
{17819, -4695},
{17807, -4738},
{17796, -4780},
{17784, -4823},
{17772, -4865},
{17761, -4908},
{17749, -4951},
{17738, -4993},
{17725, -5036},
{17713, -5078},
{17701, -5121},
{17689, -5163},
{17676, -5205},
{17664, -5248},
{17651, -5290},
{17638, -5333},
{17626, -5375},
{17613, -5417},
{17599, -5459},
{17586, -5501},
{17573, -5544},
{17560, -5586},
{17546, -5627},
{17533, -5670},
{17519, -5712},
{17505, -5753},
{17492, -5795},
{17478, -5837},
{17464, -5879},
{17450, -5921},
{17435, -5963},
{17421, -6005},
{17406, -6046},
{17392, -6088},
{17377, -6130},
{17363, -6172},
{17348, -6213},
{17333, -6254},
{17318, -6296},
{17303, -6338},
{17288, -6379},
{17272, -6420},
{17257, -6462},
{17241, -6503},
{17225, -6545},
{17210, -6586},
{17194, -6627},
{17178, -6668},
{17162, -6709},
{17145, -6750},
{17130, -6791},
{17113, -6832},
{17097, -6874},
{17080, -6915},
{17064, -6956},
{17047, -6996},
{17030, -7037},
{17013, -7078},
{16996, -7119},
{16979, -7159},
{16962, -7200},
{16945, -7241},
{16927, -7281},
{16910, -7322},
{16892, -7362},
{16874, -7403},
{16856, -7444},
{16838, -7484},
{16821, -7524},
{16802, -7564},
{16784, -7605},
{16766, -7645},
{16748, -7685},
{16729, -7725},
{16711, -7765},
{16692, -7805},
{16674, -7845},
{16654, -7885},
{16635, -7925},
{16616, -7964},
{16597, -8004},
{16578, -8044},
{16559, -8084},
{16539, -8124},
{16520, -8164},
{16500, -8203},
{16480, -8242},
{16461, -8282},
{16441, -8322},
{16421, -8361},
{16401, -8400},
{16380, -8440},
{16360, -8479},
{16340, -8518},
{16319, -8557},
{16299, -8597},
{16278, -8635},
{16257, -8674},
{16237, -8713},
{16215, -8752},
{16195, -8791},
{16173, -8829},
{16152, -8868},
{16131, -8907},
{16110, -8946},
{16088, -8985},
{16067, -9023},
{16045, -9061},
{16023, -9100},
{16001, -9138},
{15979, -9176},
{15957, -9215},
{15935, -9253},
{15913, -9291},
{15891, -9329},
{15868, -9367},
{15846, -9405},
{15823, -9443},
{15800, -9481},
{15778, -9519},
{15755, -9557},
{15732, -9595},
{15709, -9632},
{15686, -9670},
{15662, -9708},
{15639, -9745},
{15615, -9782},
{15592, -9820},
{15569, -9857},
{15544, -9894},
{15521, -9932},
{15497, -9969},
{15473, -10006},
{15449, -10043},
{15425, -10080},
{15401, -10117},
{15377, -10154},
{15352, -10191},
{15327, -10227},
{15303, -10264},
{15278, -10301},
{15254, -10337},
{15229, -10374},
{15204, -10411},
{15180, -10447},
{15154, -10483},
{15129, -10519},
{15104, -10556},
{15078, -10592},
{15053, -10628},
{15027, -10664},
{15002, -10700},
{14976, -10736},
{14950, -10772},
{14924, -10808},
{14898, -10844},
{14872, -10879},
{14846, -10915},
{14820, -10950},
{14794, -10985},
{14767, -11021},
{14741, -11056},
{14714, -11092},
{14687, -11127},
{14661, -11162},
{14635, -11197},
{14607, -11232},
{14581, -11267},
{14554, -11302},
{14526, -11337},
{14499, -11372},
{14472, -11407},
{14444, -11441},
{14417, -11476},
{14389, -11511},
{14362, -11545},
{14334, -11579},
{14306, -11614},
{14278, -11648},
{14251, -11682},
{14222, -11716},
{14194, -11750},
{14166, -11784},
{14137, -11818},
{14109, -11852},
{14081, -11886},
{14053, -11919},
{14023, -11953},
{13995, -11987},
{13966, -12020},
{13937, -12054},
{13909, -12087},
{13879, -12120},
{13851, -12153},
{13821, -12187},
{13792, -12220},
{13763, -12253},
{13733, -12286},
{13704, -12319},
{13674, -12351},
{13645, -12385},
{13615, -12417},
{13585, -12450},
{13555, -12482},
{13525, -12514},
{13495, -12546},
{13465, -12579},
{13435, -12611},
{13405, -12644},
{13374, -12676},
{13345, -12708},
{13314, -12739},
{13283, -12772}
};
static const cos_msin_t *s_cos_msin_table[] =
{
s_cos_msin_2,
s_cos_msin_4,
s_cos_msin_8,
s_cos_msin_16,
s_cos_msin_32,
s_cos_msin_64
};
/*- End of file ------------------------------------------------------------*/