D-Modem/pjproject-2.11.1/third_party/g7221/decode/dct4_s.h
2021-10-29 14:41:03 -04:00

857 lines
23 KiB
C

/***********************************************************************
**
** ITU-T G.722.1 (2005-05) - Fixed point implementation for main body and Annex C
** > Software Release 2.1 (2008-06)
** (Simple repackaging; no change from 2005-05 Release 2.0 code)
**
** © 2004 Polycom, Inc.
**
** All rights reserved.
**
***********************************************************************/
/***********************************************************************
Filename: dct4_s.h
Purpose: Contains tables used by dct4_s.c
Design Notes:
***********************************************************************/
/***************************************************************************
Include files
***************************************************************************/
typedef struct
{
Word16 cosine;
Word16 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.))));
}
}
***************************************************************************/
Word16 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 }
};
Word16 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};
Word16 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};
Word16 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))));
}
********************************************************************************/
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 }
};
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 }
};
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 }
};
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 }
};
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 }
};
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}
};
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
};