libg722_1
0.0.1
|
00001 /* 00002 * g722_1 - a library for the G.722.1 and Annex C codecs 00003 * 00004 * dct4_s.h 00005 * 00006 * Adapted by Steve Underwood <steveu@coppice.org> from the reference 00007 * code supplied with ITU G.722.1, which is: 00008 * 00009 * (C) 2004 Polycom, Inc. 00010 * All rights reserved. 00011 * 00012 * This program is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00015 */ 00016 00017 typedef struct 00018 { 00019 int16_t cosine; 00020 int16_t minus_sine; 00021 } cos_msin_t; 00022 00023 /*************************************************************************** 00024 The dct_core_s table was generated by the following code 00025 00026 for (i = 0; i < 10; ++i) 00027 { 00028 for (k = 0; k < 10; ++k) 00029 { 00030 dct_core_s[i][k] = (short) (FTOI(((.9*32768.)*cos(3.1415926*(k+0.5)*(i+0.5)/10.)))); 00031 } 00032 } 00033 ***************************************************************************/ 00034 static const int16_t dct_core_s[10][10] = 00035 { 00036 { 29400, 28676, 27246, 25145, 22425, 19153, 15409, 11286, 6885, 2314}, 00037 { 28676, 22425, 11286, -2314, -15409, -25145, -29400, -27246, -19153, -6885}, 00038 { 27246, 11286, -11286, -27246, -27246, -11286, 11286, 27246, 27246, 11286}, 00039 { 25145, -2314, -27246, -22425, 6885, 28676, 19153, -11286, -29400, -15409}, 00040 { 22425, -15409, -27246, 6885, 29400, 2314, -28676, -11286, 25145, 19153}, 00041 { 19153, -25145, -11286, 28676, 2314, -29400, 6885, 27246, -15409, -22425}, 00042 { 15409, -29400, 11286, 19153, -28676, 6885, 22425, -27246, 2314, 25145}, 00043 { 11286, -27246, 27246, -11286, -11286, 27246, -27246, 11286, 11286, -27246}, 00044 { 6885, -19153, 27246, -29400, 25145, -15409, 2314, 11286, -22425, 28676}, 00045 { 2314, -6885, 11286, -15409, 19153, -22425, 25145, -27246, 28676, -29400} 00046 }; 00047 00048 static const int16_t syn_bias_7khz[DCT_LENGTH] = 00049 { 00050 -4, 4, -5, -2, 0, -4, 6, 2, -2, -4, 00051 -3, 3, 0, 0, -2, 4, 0, 0, 3, -6, 00052 8, 5, 4, 5, -8, 0, -2, 0, 0, -3, 00053 3, 0, 0, 0, 1, -1, -2, 0, 0, 2, 00054 -2, -5, -2, 3, 2, -1, -1, -6, 3, 1, 00055 -7, 4, 4, 0, 1, 4, 1, 0, 1, -5, 00056 -1, 1, -6, 0, -1, -1, 3, 0, -2, 1, 00057 2, -4, 0, 9, 0, -3, 1, 1, 1, 0, 00058 -3, -2, -1, -4, -2, 0, 5, 2, -3, 5, 00059 0, -2, 4, 4, 0, -6, -4, 2, 0, 0, 00060 0, -1, -1, -2, 0, 6, 1, 0, 0, -1, 00061 0, -4, -1, 0, -4, 1, -1, -5, 0, 1, 00062 2, 4, 0, -8, -4, 0, -2, -2, 2, 5, 00063 -3, -1, 1, -4, 0, 0, 0, -1, -3, 0, 00064 -5, -4, 0, -2, 0, 7, 1, 0, 5, -2, 00065 -1, 2, 2, -2, 3, 7, -3, 4, 1, -4, 00066 0, 0, 3, -7, -5, 0, 0, 4, 0, -2, 00067 -1, 0, -5, 0, 2, 0, 11, 5, -1, 0, 00068 2, 2, -2, -2, 5, 4, -3, 1, 0, -2, 00069 1, 3, 2, 0, 1, 0, 0, 0, 5, 6, 00070 -2, -1, 0, 2, 3, 2, 0, -3, 4, 5, 00071 0, -1, 0, 3, 1, -2, -3, -2, -1, 2, 00072 -1, -1, -2, -7, 4, 6, -5, -6, -3, -4, 00073 0, 2, -5, -2, 3, 0, 0, 0, 2, -2, 00074 -4, 3, 3, 1, 0, 0, 4, -1, 8, 13, 00075 1, 2, 0, 2, 0, -1, 4, -3, 1, 0, 00076 -1, 3, 0, 0, -5, 0, 6, 2, 4, 5, 00077 2, -1, -1, 3, 6, 1, 1, 2, -4, 0, 00078 -1, -6, -2, -2, 2, 1, 2, 6, 2, 0, 00079 -2, -2, 0, -1, 2, 0, 0, 3, -2, 1, 00080 3, 1, 2, -1, -2, 2, 2, -4, 0, 0, 00081 -3, 0, -4, -3, 6, 7, 2, 2, 0, -3 00082 }; 00083 00084 static const int16_t dither[DCT_LENGTH] = 00085 { 00086 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 00087 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 00088 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 00089 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 00090 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 00091 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 00092 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 00093 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 00094 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 00095 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 00096 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 00097 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 00098 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 00099 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 00100 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 00101 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 00102 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 00103 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 00104 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 00105 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 00106 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 00107 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 00108 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 00109 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 00110 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 00111 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 00112 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 00113 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 00114 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 00115 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 00116 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 00117 1, 1, 1, 0, 1, 0, 0, 0, 1, 0 00118 }; 00119 00120 static const int16_t max_dither[MAX_DCT_LENGTH] = 00121 { 00122 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 00123 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 00124 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 00125 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 00126 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 00127 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 00128 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 00129 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 00130 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 00131 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 00132 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 00133 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 00134 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 00135 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 00136 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 00137 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 00138 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 00139 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 00140 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 00141 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 00142 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 00143 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 00144 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 00145 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 00146 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 00147 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 00148 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 00149 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 00150 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 00151 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 00152 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 00153 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 00154 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 00155 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 00156 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 00157 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 00158 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 00159 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 00160 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 00161 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 00162 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 00163 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 00164 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 00165 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 00166 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 00167 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 00168 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 00169 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 00170 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 00171 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 00172 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 00173 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 00174 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 00175 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 00176 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 00177 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 00178 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 00179 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 00180 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 00181 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 00182 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 00183 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 00184 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 00185 0, 1, 0, 1, 0, 1, 0, 0, 0, 0 00186 }; 00187 00188 00189 /******************************************************************************** 00190 The s_cos_min tables were generated by the following code: 00191 double angle, scale; 00192 int index; 00193 00194 for (index = 0;index < length;index++) 00195 { 00196 angle = scale * ((double)index + 0.5); 00197 table[index].cosine = (int16_t) (FTOI((18427)* cos(angle))); 00198 table[index].minus_sine = (int16_t) (FTOI((18427)*(-sin(angle)))); 00199 } 00200 ********************************************************************************/ 00201 00202 static const cos_msin_t s_cos_msin_2[DCT_LENGTH_DIV_32] = 00203 { 00204 {18413, -723}, 00205 {18299, -2166}, 00206 {18073, -3595}, 00207 {17735, -5002}, 00208 {17288, -6378}, 00209 {16734, -7715}, 00210 {16077, -9004}, 00211 {15321, -10237}, 00212 {14471, -11408}, 00213 {13531, -12508} 00214 }; 00215 00216 static const cos_msin_t s_cos_msin_4[DCT_LENGTH_DIV_16] = 00217 { 00218 {18423, -362}, 00219 {18395, -1085}, 00220 {18338, -1806}, 00221 {18253, -2525}, 00222 {18140, -3239}, 00223 {17999, -3949}, 00224 {17830, -4653}, 00225 {17634, -5349}, 00226 {17410, -6037}, 00227 {17159, -6716}, 00228 {16883, -7385}, 00229 {16580, -8042}, 00230 {16251, -8686}, 00231 {15898, -9318}, 00232 {15520, -9935}, 00233 {15118, -10536}, 00234 {14692, -11122}, 00235 {14244, -11690}, 00236 {13774, -12240}, 00237 {13283, -12772} 00238 }; 00239 00240 static const cos_msin_t s_cos_msin_8[DCT_LENGTH_DIV_8] = 00241 { 00242 {18426, -181}, 00243 {18419, -543}, 00244 {18405, -904}, 00245 {18384, -1265}, 00246 {18355, -1626}, 00247 {18320, -1986}, 00248 {18277, -2345}, 00249 {18228, -2704}, 00250 {18171, -3061}, 00251 {18107, -3417}, 00252 {18037, -3772}, 00253 {17959, -4126}, 00254 {17875, -4477}, 00255 {17783, -4827}, 00256 {17685, -5176}, 00257 {17580, -5522}, 00258 {17468, -5866}, 00259 {17350, -6208}, 00260 {17225, -6547}, 00261 {17093, -6884}, 00262 {16954, -7219}, 00263 {16809, -7550}, 00264 {16658, -7879}, 00265 {16500, -8204}, 00266 {16336, -8526}, 00267 {16165, -8846}, 00268 {15988, -9161}, 00269 {15805, -9473}, 00270 {15616, -9782}, 00271 {15421, -10087}, 00272 {15220, -10387}, 00273 {15013, -10684}, 00274 {14801, -10977}, 00275 {14582, -11265}, 00276 {14358, -11550}, 00277 {14129, -11829}, 00278 {13894, -12104}, 00279 {13654, -12375}, 00280 {13408, -12641}, 00281 {13157, -12901} 00282 }; 00283 00284 static const cos_msin_t s_cos_msin_16[DCT_LENGTH_DIV_4] = 00285 { 00286 {18427, -90}, 00287 {18425, -271}, 00288 {18421, -452}, 00289 {18416, -633}, 00290 {18409, -814}, 00291 {18400, -995}, 00292 {18389, -1175}, 00293 {18377, -1356}, 00294 {18363, -1536}, 00295 {18347, -1716}, 00296 {18329, -1896}, 00297 {18310, -2076}, 00298 {18288, -2256}, 00299 {18265, -2435}, 00300 {18241, -2614}, 00301 {18214, -2793}, 00302 {18186, -2972}, 00303 {18156, -3150}, 00304 {18124, -3328}, 00305 {18090, -3506}, 00306 {18055, -3684}, 00307 {18018, -3861}, 00308 {17979, -4037}, 00309 {17939, -4214}, 00310 {17897, -4390}, 00311 {17853, -4565}, 00312 {17807, -4740}, 00313 {17760, -4915}, 00314 {17710, -5089}, 00315 {17660, -5262}, 00316 {17607, -5436}, 00317 {17553, -5608}, 00318 {17497, -5780}, 00319 {17439, -5952}, 00320 {17380, -6123}, 00321 {17319, -6293}, 00322 {17257, -6463}, 00323 {17192, -6632}, 00324 {17126, -6800}, 00325 {17059, -6968}, 00326 {16990, -7135}, 00327 {16919, -7302}, 00328 {16846, -7467}, 00329 {16772, -7632}, 00330 {16696, -7797}, 00331 {16619, -7960}, 00332 {16540, -8123}, 00333 {16459, -8285}, 00334 {16377, -8446}, 00335 {16294, -8607}, 00336 {16208, -8766}, 00337 {16121, -8925}, 00338 {16033, -9083}, 00339 {15943, -9240}, 00340 {15852, -9396}, 00341 {15759, -9551}, 00342 {15664, -9705}, 00343 {15568, -9858}, 00344 {15471, -10011}, 00345 {15372, -10162}, 00346 {15271, -10313}, 00347 {15169, -10462}, 00348 {15066, -10610}, 00349 {14961, -10758}, 00350 {14854, -10904}, 00351 {14747, -11049}, 00352 {14637, -11194}, 00353 {14527, -11337}, 00354 {14415, -11479}, 00355 {14301, -11620}, 00356 {14187, -11760}, 00357 {14071, -11898}, 00358 {13953, -12036}, 00359 {13834, -12172}, 00360 {13714, -12308}, 00361 {13593, -12442}, 00362 {13470, -12575}, 00363 {13346, -12706}, 00364 {13220, -12837}, 00365 {13094, -12966} 00366 }; 00367 00368 static const cos_msin_t s_cos_msin_32[DCT_LENGTH_DIV_2] = 00369 { 00370 {18427, -45}, 00371 {18427, -136}, 00372 {18426, -226}, 00373 {18424, -317}, 00374 {18423, -407}, 00375 {18420, -497}, 00376 {18418, -588}, 00377 {18415, -678}, 00378 {18411, -769}, 00379 {18407, -859}, 00380 {18403, -949}, 00381 {18398, -1040}, 00382 {18392, -1130}, 00383 {18387, -1220}, 00384 {18380, -1310}, 00385 {18374, -1401}, 00386 {18367, -1491}, 00387 {18359, -1581}, 00388 {18351, -1671}, 00389 {18343, -1761}, 00390 {18334, -1851}, 00391 {18324, -1941}, 00392 {18315, -2031}, 00393 {18305, -2121}, 00394 {18294, -2211}, 00395 {18283, -2301}, 00396 {18271, -2390}, 00397 {18259, -2480}, 00398 {18247, -2570}, 00399 {18234, -2659}, 00400 {18221, -2749}, 00401 {18207, -2838}, 00402 {18193, -2927}, 00403 {18178, -3017}, 00404 {18163, -3106}, 00405 {18148, -3195}, 00406 {18132, -3284}, 00407 {18116, -3373}, 00408 {18099, -3462}, 00409 {18082, -3551}, 00410 {18064, -3639}, 00411 {18046, -3728}, 00412 {18027, -3816}, 00413 {18009, -3905}, 00414 {17989, -3993}, 00415 {17969, -4081}, 00416 {17949, -4170}, 00417 {17928, -4258}, 00418 {17907, -4346}, 00419 {17886, -4434}, 00420 {17864, -4521}, 00421 {17841, -4609}, 00422 {17818, -4696}, 00423 {17795, -4784}, 00424 {17772, -4871}, 00425 {17747, -4958}, 00426 {17723, -5045}, 00427 {17698, -5132}, 00428 {17672, -5219}, 00429 {17647, -5306}, 00430 {17620, -5392}, 00431 {17594, -5479}, 00432 {17567, -5565}, 00433 {17539, -5651}, 00434 {17511, -5737}, 00435 {17483, -5823}, 00436 {17454, -5909}, 00437 {17425, -5994}, 00438 {17395, -6080}, 00439 {17365, -6165}, 00440 {17335, -6250}, 00441 {17304, -6335}, 00442 {17272, -6420}, 00443 {17241, -6505}, 00444 {17208, -6590}, 00445 {17176, -6674}, 00446 {17143, -6758}, 00447 {17110, -6842}, 00448 {17076, -6926}, 00449 {17042, -7010}, 00450 {17007, -7093}, 00451 {16972, -7177}, 00452 {16937, -7260}, 00453 {16901, -7343}, 00454 {16864, -7426}, 00455 {16828, -7509}, 00456 {16791, -7591}, 00457 {16753, -7674}, 00458 {16715, -7756}, 00459 {16677, -7838}, 00460 {16638, -7919}, 00461 {16599, -8001}, 00462 {16560, -8082}, 00463 {16520, -8164}, 00464 {16480, -8245}, 00465 {16439, -8325}, 00466 {16398, -8406}, 00467 {16357, -8486}, 00468 {16315, -8567}, 00469 {16272, -8647}, 00470 {16230, -8726}, 00471 {16187, -8806}, 00472 {16143, -8885}, 00473 {16100, -8964}, 00474 {16055, -9043}, 00475 {16011, -9122}, 00476 {15966, -9200}, 00477 {15920, -9279}, 00478 {15875, -9357}, 00479 {15829, -9435}, 00480 {15782, -9512}, 00481 {15735, -9589}, 00482 {15688, -9667}, 00483 {15640, -9744}, 00484 {15592, -9820}, 00485 {15544, -9897}, 00486 {15495, -9973}, 00487 {15446, -10049}, 00488 {15396, -10124}, 00489 {15347, -10200}, 00490 {15296, -10275}, 00491 {15246, -10350}, 00492 {15195, -10425}, 00493 {15143, -10499}, 00494 {15092, -10573}, 00495 {15040, -10647}, 00496 {14987, -10721}, 00497 {14934, -10794}, 00498 {14881, -10868}, 00499 {14828, -10941}, 00500 {14774, -11013}, 00501 {14719, -11086}, 00502 {14665, -11158}, 00503 {14610, -11230}, 00504 {14555, -11301}, 00505 {14499, -11372}, 00506 {14443, -11444}, 00507 {14387, -11514}, 00508 {14330, -11585}, 00509 {14273, -11655}, 00510 {14216, -11725}, 00511 {14158, -11795}, 00512 {14100, -11864}, 00513 {14041, -11933}, 00514 {13983, -12002}, 00515 {13924, -12070}, 00516 {13864, -12138}, 00517 {13804, -12206}, 00518 {13744, -12274}, 00519 {13684, -12341}, 00520 {13623, -12408}, 00521 {13562, -12475}, 00522 {13501, -12541}, 00523 {13439, -12608}, 00524 {13377, -12673}, 00525 {13314, -12739}, 00526 {13252, -12804}, 00527 {13189, -12869}, 00528 {13125, -12934}, 00529 {13062, -12998} 00530 }; 00531 00532 static const cos_msin_t s_cos_msin_64[DCT_LENGTH] = 00533 { 00534 {18426, -21}, 00535 {18426, -66}, 00536 {18426, -110}, 00537 {18426, -154}, 00538 {18425, -198}, 00539 {18425, -242}, 00540 {18424, -286}, 00541 {18424, -331}, 00542 {18423, -374}, 00543 {18421, -419}, 00544 {18421, -463}, 00545 {18419, -507}, 00546 {18418, -552}, 00547 {18417, -595}, 00548 {18415, -639}, 00549 {18414, -684}, 00550 {18412, -728}, 00551 {18410, -772}, 00552 {18408, -816}, 00553 {18406, -860}, 00554 {18404, -904}, 00555 {18402, -949}, 00556 {18400, -992}, 00557 {18397, -1037}, 00558 {18394, -1081}, 00559 {18392, -1125}, 00560 {18389, -1169}, 00561 {18387, -1213}, 00562 {18384, -1257}, 00563 {18380, -1301}, 00564 {18378, -1345}, 00565 {18374, -1389}, 00566 {18371, -1433}, 00567 {18367, -1477}, 00568 {18364, -1521}, 00569 {18360, -1566}, 00570 {18356, -1609}, 00571 {18352, -1653}, 00572 {18348, -1697}, 00573 {18344, -1742}, 00574 {18339, -1785}, 00575 {18335, -1829}, 00576 {18331, -1873}, 00577 {18326, -1917}, 00578 {18322, -1961}, 00579 {18317, -2005}, 00580 {18312, -2049}, 00581 {18307, -2092}, 00582 {18302, -2137}, 00583 {18297, -2180}, 00584 {18292, -2224}, 00585 {18286, -2268}, 00586 {18281, -2312}, 00587 {18275, -2356}, 00588 {18270, -2399}, 00589 {18264, -2443}, 00590 {18258, -2487}, 00591 {18252, -2531}, 00592 {18246, -2574}, 00593 {18240, -2618}, 00594 {18233, -2662}, 00595 {18227, -2706}, 00596 {18220, -2749}, 00597 {18214, -2793}, 00598 {18207, -2836}, 00599 {18200, -2880}, 00600 {18193, -2924}, 00601 {18186, -2967}, 00602 {18179, -3011}, 00603 {18172, -3055}, 00604 {18164, -3098}, 00605 {18157, -3142}, 00606 {18149, -3185}, 00607 {18141, -3229}, 00608 {18134, -3272}, 00609 {18126, -3316}, 00610 {18118, -3359}, 00611 {18109, -3403}, 00612 {18101, -3446}, 00613 {18094, -3489}, 00614 {18085, -3533}, 00615 {18076, -3576}, 00616 {18068, -3619}, 00617 {18059, -3663}, 00618 {18050, -3706}, 00619 {18041, -3749}, 00620 {18032, -3792}, 00621 {18023, -3836}, 00622 {18014, -3879}, 00623 {18005, -3922}, 00624 {17995, -3965}, 00625 {17986, -4008}, 00626 {17975, -4051}, 00627 {17966, -4094}, 00628 {17956, -4138}, 00629 {17946, -4180}, 00630 {17936, -4224}, 00631 {17926, -4266}, 00632 {17916, -4309}, 00633 {17905, -4353}, 00634 {17895, -4395}, 00635 {17884, -4438}, 00636 {17874, -4481}, 00637 {17863, -4524}, 00638 {17852, -4567}, 00639 {17841, -4609}, 00640 {17830, -4652}, 00641 {17819, -4695}, 00642 {17807, -4738}, 00643 {17796, -4780}, 00644 {17784, -4823}, 00645 {17772, -4865}, 00646 {17761, -4908}, 00647 {17749, -4951}, 00648 {17738, -4993}, 00649 {17725, -5036}, 00650 {17713, -5078}, 00651 {17701, -5121}, 00652 {17689, -5163}, 00653 {17676, -5205}, 00654 {17664, -5248}, 00655 {17651, -5290}, 00656 {17638, -5333}, 00657 {17626, -5375}, 00658 {17613, -5417}, 00659 {17599, -5459}, 00660 {17586, -5501}, 00661 {17573, -5544}, 00662 {17560, -5586}, 00663 {17546, -5627}, 00664 {17533, -5670}, 00665 {17519, -5712}, 00666 {17505, -5753}, 00667 {17492, -5795}, 00668 {17478, -5837}, 00669 {17464, -5879}, 00670 {17450, -5921}, 00671 {17435, -5963}, 00672 {17421, -6005}, 00673 {17406, -6046}, 00674 {17392, -6088}, 00675 {17377, -6130}, 00676 {17363, -6172}, 00677 {17348, -6213}, 00678 {17333, -6254}, 00679 {17318, -6296}, 00680 {17303, -6338}, 00681 {17288, -6379}, 00682 {17272, -6420}, 00683 {17257, -6462}, 00684 {17241, -6503}, 00685 {17225, -6545}, 00686 {17210, -6586}, 00687 {17194, -6627}, 00688 {17178, -6668}, 00689 {17162, -6709}, 00690 {17145, -6750}, 00691 {17130, -6791}, 00692 {17113, -6832}, 00693 {17097, -6874}, 00694 {17080, -6915}, 00695 {17064, -6956}, 00696 {17047, -6996}, 00697 {17030, -7037}, 00698 {17013, -7078}, 00699 {16996, -7119}, 00700 {16979, -7159}, 00701 {16962, -7200}, 00702 {16945, -7241}, 00703 {16927, -7281}, 00704 {16910, -7322}, 00705 {16892, -7362}, 00706 {16874, -7403}, 00707 {16856, -7444}, 00708 {16838, -7484}, 00709 {16821, -7524}, 00710 {16802, -7564}, 00711 {16784, -7605}, 00712 {16766, -7645}, 00713 {16748, -7685}, 00714 {16729, -7725}, 00715 {16711, -7765}, 00716 {16692, -7805}, 00717 {16674, -7845}, 00718 {16654, -7885}, 00719 {16635, -7925}, 00720 {16616, -7964}, 00721 {16597, -8004}, 00722 {16578, -8044}, 00723 {16559, -8084}, 00724 {16539, -8124}, 00725 {16520, -8164}, 00726 {16500, -8203}, 00727 {16480, -8242}, 00728 {16461, -8282}, 00729 {16441, -8322}, 00730 {16421, -8361}, 00731 {16401, -8400}, 00732 {16380, -8440}, 00733 {16360, -8479}, 00734 {16340, -8518}, 00735 {16319, -8557}, 00736 {16299, -8597}, 00737 {16278, -8635}, 00738 {16257, -8674}, 00739 {16237, -8713}, 00740 {16215, -8752}, 00741 {16195, -8791}, 00742 {16173, -8829}, 00743 {16152, -8868}, 00744 {16131, -8907}, 00745 {16110, -8946}, 00746 {16088, -8985}, 00747 {16067, -9023}, 00748 {16045, -9061}, 00749 {16023, -9100}, 00750 {16001, -9138}, 00751 {15979, -9176}, 00752 {15957, -9215}, 00753 {15935, -9253}, 00754 {15913, -9291}, 00755 {15891, -9329}, 00756 {15868, -9367}, 00757 {15846, -9405}, 00758 {15823, -9443}, 00759 {15800, -9481}, 00760 {15778, -9519}, 00761 {15755, -9557}, 00762 {15732, -9595}, 00763 {15709, -9632}, 00764 {15686, -9670}, 00765 {15662, -9708}, 00766 {15639, -9745}, 00767 {15615, -9782}, 00768 {15592, -9820}, 00769 {15569, -9857}, 00770 {15544, -9894}, 00771 {15521, -9932}, 00772 {15497, -9969}, 00773 {15473, -10006}, 00774 {15449, -10043}, 00775 {15425, -10080}, 00776 {15401, -10117}, 00777 {15377, -10154}, 00778 {15352, -10191}, 00779 {15327, -10227}, 00780 {15303, -10264}, 00781 {15278, -10301}, 00782 {15254, -10337}, 00783 {15229, -10374}, 00784 {15204, -10411}, 00785 {15180, -10447}, 00786 {15154, -10483}, 00787 {15129, -10519}, 00788 {15104, -10556}, 00789 {15078, -10592}, 00790 {15053, -10628}, 00791 {15027, -10664}, 00792 {15002, -10700}, 00793 {14976, -10736}, 00794 {14950, -10772}, 00795 {14924, -10808}, 00796 {14898, -10844}, 00797 {14872, -10879}, 00798 {14846, -10915}, 00799 {14820, -10950}, 00800 {14794, -10985}, 00801 {14767, -11021}, 00802 {14741, -11056}, 00803 {14714, -11092}, 00804 {14687, -11127}, 00805 {14661, -11162}, 00806 {14635, -11197}, 00807 {14607, -11232}, 00808 {14581, -11267}, 00809 {14554, -11302}, 00810 {14526, -11337}, 00811 {14499, -11372}, 00812 {14472, -11407}, 00813 {14444, -11441}, 00814 {14417, -11476}, 00815 {14389, -11511}, 00816 {14362, -11545}, 00817 {14334, -11579}, 00818 {14306, -11614}, 00819 {14278, -11648}, 00820 {14251, -11682}, 00821 {14222, -11716}, 00822 {14194, -11750}, 00823 {14166, -11784}, 00824 {14137, -11818}, 00825 {14109, -11852}, 00826 {14081, -11886}, 00827 {14053, -11919}, 00828 {14023, -11953}, 00829 {13995, -11987}, 00830 {13966, -12020}, 00831 {13937, -12054}, 00832 {13909, -12087}, 00833 {13879, -12120}, 00834 {13851, -12153}, 00835 {13821, -12187}, 00836 {13792, -12220}, 00837 {13763, -12253}, 00838 {13733, -12286}, 00839 {13704, -12319}, 00840 {13674, -12351}, 00841 {13645, -12385}, 00842 {13615, -12417}, 00843 {13585, -12450}, 00844 {13555, -12482}, 00845 {13525, -12514}, 00846 {13495, -12546}, 00847 {13465, -12579}, 00848 {13435, -12611}, 00849 {13405, -12644}, 00850 {13374, -12676}, 00851 {13345, -12708}, 00852 {13314, -12739}, 00853 {13283, -12772} 00854 }; 00855 00856 static const cos_msin_t *s_cos_msin_table[] = 00857 { 00858 s_cos_msin_2, 00859 s_cos_msin_4, 00860 s_cos_msin_8, 00861 s_cos_msin_16, 00862 s_cos_msin_32, 00863 s_cos_msin_64 00864 }; 00865 00866 /*- End of file ------------------------------------------------------------*/