/*********************************************************************** ** ** 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 };