t_ftan.c 31.8 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515
fixed_t finetangent[4096] =
{
	INT32_MIN, -85445642, -42722796, -28481836, -21361347, -17089048, -14240842, -12206405,
	-10680573, -9493811, -8544398, -7767602, -7120270, -6572525, -6103026, -5696125,
	-5340085, -5025930, -4746679, -4496821, -4271947, -4068489, -3883524, -3714643,
	-3559833, -3417407, -3285935, -3164201, -3051161, -2945916, -2847685, -2755792,
	-2669640, -2588709, -2512537, -2440718, -2372887, -2308722, -2247933, -2190260,
	-2135471, -2083353, -2033716, -1986387, -1941209, -1898038, -1856743, -1817205,
	-1779313, -1742967, -1708075, -1674550, -1642314, -1611294, -1581422, -1552635,
	-1524876, -1498091, -1472229, -1447242, -1423088, -1399726, -1377116, -1355224,
	-1334015, -1313459, -1293525, -1274185, -1255414, -1237186, -1219479, -1202270,
	-1185538, -1169265, -1153430, -1138018, -1123011, -1108393, -1094149, -1080266,
	-1066729, -1053527, -1040645, -1028074, -1015802, -1003818, -992112, -980675,
	-969498, -958571, -947887, -937438, -927215, -917211, -907420, -897835,
	-888449, -879257, -870251, -861428, -852780, -844303, -835992, -827843,
	-819849, -812008, -804314, -796763, -789353, -782077, -774934, -767919,
	-761030, -754261, -747612, -741077, -734655, -728343, -722137, -716035,
	-710035, -704133, -698328, -692618, -686999, -681469, -676027, -670671,
	-665398, -660206, -655094, -650060, -645102, -640218, -635407, -630667,
	-625996, -621393, -616857, -612386, -607978, -603633, -599348, -595124,
	-590957, -586848, -582795, -578797, -574853, -570962, -567122, -563332,
	-559593, -555902, -552259, -548662, -545112, -541606, -538145, -534727,
	-531351, -528018, -524725, -521472, -518259, -515084, -511948, -508849,
	-505787, -502760, -499769, -496813, -493891, -491003, -488148, -485325,
	-482534, -479774, -477045, -474347, -471678, -469038, -466428, -463845,
	-461291, -458764, -456264, -453791, -451343, -448922, -446526, -444154,
	-441807, -439485, -437186, -434910, -432658, -430428, -428221, -426035,
	-423871, -421729, -419608, -417507, -415427, -413367, -411327, -409306,
	-407305, -405323, -403359, -401414, -399487, -397578, -395686, -393812,
	-391956, -390116, -388293, -386486, -384696, -382921, -381163, -379420,
	-377693, -375981, -374283, -372601, -370933, -369280, -367641, -366016,
	-364404, -362807, -361223, -359652, -358094, -356550, -355018, -353499,
	-351993, -350499, -349017, -347547, -346089, -344643, -343208, -341785,
	-340373, -338973, -337583, -336204, -334837, -333480, -332133, -330797,
	-329471, -328156, -326850, -325554, -324269, -322993, -321726, -320469,
	-319222, -317984, -316754, -315535, -314324, -313121, -311928, -310743,
	-309567, -308400, -307240, -306090, -304947, -303812, -302686, -301567,
	-300457, -299354, -298259, -297171, -296091, -295018, -293953, -292895,
	-291845, -290801, -289765, -288735, -287713, -286697, -285688, -284686,
	-283691, -282702, -281719, -280743, -279774, -278811, -277854, -276903,
	-275959, -275020, -274088, -273161, -272241, -271326, -270417, -269514,
	-268616, -267724, -266838, -265957, -265082, -264212, -263347, -262488,
	-261634, -260785, -259941, -259103, -258270, -257441, -256618, -255799,
	-254986, -254177, -253373, -252574, -251779, -250989, -250204, -249423,
	-248647, -247876, -247109, -246346, -245588, -244834, -244084, -243338,
	-242597, -241860, -241128, -240399, -239674, -238954, -238237, -237525,
	-236816, -236112, -235411, -234714, -234021, -233331, -232646, -231964,
	-231286, -230611, -229940, -229273, -228610, -227949, -227293, -226640,
	-225990, -225344, -224701, -224061, -223425, -222792, -222163, -221536,
	-220913, -220294, -219677, -219064, -218453, -217846, -217242, -216641,
	-216043, -215448, -214856, -214267, -213681, -213097, -212517, -211940,
	-211365, -210793, -210225, -209658, -209095, -208535, -207977, -207422,
	-206869, -206319, -205772, -205228, -204686, -204147, -203610, -203076,
	-202544, -202015, -201488, -200964, -200442, -199923, -199406, -198892,
	-198380, -197870, -197363, -196858, -196355, -195855, -195357, -194861,
	-194367, -193876, -193387, -192900, -192416, -191933, -191453, -190975,
	-190499, -190025, -189553, -189083, -188615, -188150, -187686, -187225,
	-186765, -186308, -185852, -185399, -184947, -184498, -184050, -183604,
	-183160, -182718, -182278, -181840, -181404, -180969, -180537, -180106,
	-179677, -179250, -178824, -178401, -177979, -177559, -177140, -176724,
	-176309, -175896, -175484, -175074, -174666, -174260, -173855, -173452,
	-173050, -172650, -172252, -171855, -171460, -171066, -170674, -170284,
	-169895, -169508, -169122, -168738, -168355, -167974, -167594, -167216,
	-166839, -166464, -166090, -165718, -165347, -164977, -164609, -164242,
	-163877, -163513, -163151, -162790, -162430, -162072, -161715, -161359,
	-161005, -160652, -160300, -159950, -159601, -159253, -158906, -158561,
	-158217, -157875, -157533, -157193, -156855, -156517, -156181, -155845,
	-155512, -155179, -154847, -154517, -154188, -153860, -153533, -153208,
	-152883, -152560, -152238, -151917, -151597, -151279, -150961, -150645,
	-150329, -150015, -149702, -149390, -149079, -148769, -148461, -148153,
	-147846, -147541, -147236, -146933, -146630, -146329, -146029, -145729,
	-145431, -145134, -144837, -144542, -144248, -143955, -143662, -143371,
	-143081, -142791, -142503, -142215, -141929, -141643, -141359, -141075,
	-140792, -140511, -140230, -139950, -139671, -139393, -139115, -138839,
	-138564, -138289, -138016, -137743, -137471, -137200, -136930, -136661,
	-136392, -136125, -135858, -135592, -135327, -135063, -134799, -134537,
	-134275, -134014, -133754, -133495, -133237, -132979, -132722, -132466,
	-132211, -131957, -131703, -131450, -131198, -130947, -130696, -130446,
	-130197, -129949, -129701, -129455, -129209, -128963, -128719, -128475,
	-128232, -127990, -127748, -127507, -127267, -127027, -126789, -126551,
	-126313, -126077, -125841, -125605, -125371, -125137, -124904, -124671,
	-124439, -124208, -123978, -123748, -123519, -123290, -123062, -122835,
	-122609, -122383, -122158, -121933, -121709, -121486, -121263, -121041,
	-120820, -120599, -120379, -120159, -119940, -119722, -119504, -119287,
	-119071, -118855, -118639, -118425, -118211, -117997, -117784, -117572,
	-117360, -117149, -116938, -116728, -116519, -116310, -116102, -115894,
	-115687, -115480, -115274, -115069, -114864, -114659, -114455, -114252,
	-114049, -113847, -113645, -113444, -113244, -113043, -112844, -112645,
	-112446, -112248, -112051, -111854, -111658, -111462, -111266, -111071,
	-110877, -110683, -110490, -110297, -110104, -109912, -109721, -109530,
	-109340, -109150, -108960, -108771, -108583, -108395, -108207, -108020,
	-107834, -107648, -107462, -107277, -107092, -106908, -106724, -106541,
	-106358, -106175, -105993, -105812, -105631, -105450, -105270, -105090,
	-104911, -104732, -104554, -104376, -104198, -104021, -103844, -103668,
	-103492, -103317, -103142, -102967, -102793, -102619, -102446, -102273,
	-102101, -101929, -101757, -101586, -101415, -101244, -101074, -100905,
	-100736, -100567, -100398, -100230, -100063, -99895, -99729, -99562,
	-99396, -99230, -99065, -98900, -98735, -98571, -98408, -98244,
	-98081, -97918, -97756, -97594, -97433, -97271, -97111, -96950,
	-96790, -96630, -96471, -96312, -96153, -95995, -95837, -95680,
	-95522, -95365, -95209, -95053, -94897, -94741, -94586, -94431,
	-94277, -94123, -93969, -93816, -93663, -93510, -93357, -93205,
	-93053, -92902, -92751, -92600, -92450, -92300, -92150, -92000,
	-91851, -91702, -91554, -91406, -91258, -91110, -90963, -90816,
	-90669, -90523, -90377, -90231, -90086, -89941, -89796, -89651,
	-89507, -89363, -89220, -89077, -88934, -88791, -88648, -88506,
	-88365, -88223, -88082, -87941, -87800, -87660, -87520, -87380,
	-87241, -87101, -86963, -86824, -86686, -86547, -86410, -86272,
	-86135, -85998, -85861, -85725, -85589, -85453, -85317, -85182,
	-85047, -84912, -84778, -84643, -84509, -84376, -84242, -84109,
	-83976, -83843, -83711, -83579, -83447, -83315, -83184, -83053,
	-82922, -82791, -82661, -82531, -82401, -82271, -82142, -82013,
	-81884, -81756, -81627, -81499, -81371, -81244, -81116, -80989,
	-80862, -80735, -80609, -80483, -80357, -80231, -80106, -79980,
	-79855, -79731, -79606, -79482, -79358, -79234, -79110, -78987,
	-78864, -78741, -78618, -78495, -78373, -78251, -78129, -78008,
	-77886, -77765, -77644, -77524, -77403, -77283, -77163, -77043,
	-76923, -76804, -76685, -76566, -76447, -76328, -76210, -76092,
	-75974, -75856, -75739, -75621, -75504, -75387, -75271, -75154,
	-75038, -74922, -74806, -74690, -74575, -74460, -74345, -74230,
	-74115, -74001, -73886, -73772, -73659, -73545, -73431, -73318,
	-73205, -73092, -72979, -72867, -72755, -72643, -72531, -72419,
	-72307, -72196, -72085, -71974, -71863, -71752, -71642, -71532,
	-71422, -71312, -71202, -71093, -70983, -70874, -70765, -70656,
	-70548, -70439, -70331, -70223, -70115, -70007, -69900, -69793,
	-69685, -69578, -69472, -69365, -69258, -69152, -69046, -68940,
	-68834, -68728, -68623, -68518, -68413, -68308, -68203, -68098,
	-67994, -67889, -67785, -67681, -67578, -67474, -67371, -67267,
	-67164, -67061, -66958, -66856, -66753, -66651, -66549, -66447,
	-66345, -66243, -66141, -66040, -65939, -65838, -65737, -65636,
	-65536, -65435, -65335, -65235, -65135, -65035, -64935, -64836,
	-64736, -64637, -64538, -64439, -64340, -64241, -64143, -64045,
	-63946, -63848, -63750, -63653, -63555, -63458, -63360, -63263,
	-63166, -63069, -62972, -62876, -62779, -62683, -62587, -62491,
	-62395, -62299, -62204, -62108, -62013, -61918, -61822, -61728,
	-61633, -61538, -61444, -61349, -61255, -61161, -61067, -60973,
	-60879, -60786, -60692, -60599, -60506, -60413, -60320, -60227,
	-60134, -60042, -59950, -59857, -59765, -59673, -59581, -59489,
	-59398, -59306, -59215, -59124, -59033, -58942, -58851, -58760,
	-58669, -58579, -58489, -58398, -58308, -58218, -58128, -58039,
	-57949, -57859, -57770, -57681, -57592, -57503, -57414, -57325,
	-57236, -57148, -57059, -56971, -56883, -56795, -56707, -56619,
	-56531, -56444, -56356, -56269, -56181, -56094, -56007, -55920,
	-55834, -55747, -55660, -55574, -55487, -55401, -55315, -55229,
	-55143, -55057, -54972, -54886, -54801, -54715, -54630, -54545,
	-54460, -54375, -54290, -54205, -54121, -54036, -53952, -53868,
	-53784, -53699, -53615, -53532, -53448, -53364, -53281, -53197,
	-53114, -53031, -52948, -52865, -52782, -52699, -52616, -52533,
	-52451, -52369, -52286, -52204, -52122, -52040, -51958, -51876,
	-51794, -51713, -51631, -51550, -51469, -51387, -51306, -51225,
	-51144, -51063, -50983, -50902, -50822, -50741, -50661, -50581,
	-50500, -50420, -50340, -50260, -50181, -50101, -50021, -49942,
	-49862, -49783, -49704, -49625, -49546, -49467, -49388, -49309,
	-49230, -49152, -49073, -48995, -48917, -48838, -48760, -48682,
	-48604, -48526, -48449, -48371, -48293, -48216, -48138, -48061,
	-47984, -47907, -47830, -47753, -47676, -47599, -47522, -47445,
	-47369, -47292, -47216, -47140, -47063, -46987, -46911, -46835,
	-46759, -46684, -46608, -46532, -46457, -46381, -46306, -46230,
	-46155, -46080, -46005, -45930, -45855, -45780, -45705, -45631,
	-45556, -45482, -45407, -45333, -45259, -45184, -45110, -45036,
	-44962, -44888, -44815, -44741, -44667, -44594, -44520, -44447,
	-44373, -44300, -44227, -44154, -44081, -44008, -43935, -43862,
	-43789, -43717, -43644, -43571, -43499, -43427, -43354, -43282,
	-43210, -43138, -43066, -42994, -42922, -42850, -42779, -42707,
	-42635, -42564, -42492, -42421, -42350, -42279, -42207, -42136,
	-42065, -41994, -41923, -41853, -41782, -41711, -41641, -41570,
	-41500, -41429, -41359, -41289, -41219, -41148, -41078, -41008,
	-40939, -40869, -40799, -40729, -40660, -40590, -40520, -40451,
	-40382, -40312, -40243, -40174, -40105, -40036, -39967, -39898,
	-39829, -39760, -39691, -39623, -39554, -39486, -39417, -39349,
	-39280, -39212, -39144, -39076, -39007, -38939, -38871, -38804,
	-38736, -38668, -38600, -38532, -38465, -38397, -38330, -38262,
	-38195, -38128, -38060, -37993, -37926, -37859, -37792, -37725,
	-37658, -37591, -37525, -37458, -37391, -37325, -37258, -37192,
	-37125, -37059, -36993, -36926, -36860, -36794, -36728, -36662,
	-36596, -36530, -36464, -36398, -36333, -36267, -36201, -36136,
	-36070, -36005, -35939, -35874, -35809, -35743, -35678, -35613,
	-35548, -35483, -35418, -35353, -35288, -35223, -35159, -35094,
	-35029, -34965, -34900, -34836, -34771, -34707, -34642, -34578,
	-34514, -34450, -34386, -34322, -34257, -34194, -34130, -34066,
	-34002, -33938, -33874, -33811, -33747, -33684, -33620, -33557,
	-33493, -33430, -33366, -33303, -33240, -33177, -33114, -33051,
	-32988, -32925, -32862, -32799, -32736, -32673, -32610, -32548,
	-32485, -32422, -32360, -32297, -32235, -32173, -32110, -32048,
	-31986, -31923, -31861, -31799, -31737, -31675, -31613, -31551,
	-31489, -31427, -31366, -31304, -31242, -31180, -31119, -31057,
	-30996, -30934, -30873, -30811, -30750, -30689, -30627, -30566,
	-30505, -30444, -30383, -30322, -30261, -30200, -30139, -30078,
	-30017, -29956, -29896, -29835, -29774, -29714, -29653, -29593,
	-29532, -29472, -29411, -29351, -29291, -29230, -29170, -29110,
	-29050, -28989, -28929, -28869, -28809, -28749, -28689, -28630,
	-28570, -28510, -28450, -28390, -28331, -28271, -28212, -28152,
	-28092, -28033, -27974, -27914, -27855, -27795, -27736, -27677,
	-27618, -27559, -27499, -27440, -27381, -27322, -27263, -27204,
	-27145, -27087, -27028, -26969, -26910, -26851, -26793, -26734,
	-26675, -26617, -26558, -26500, -26441, -26383, -26325, -26266,
	-26208, -26150, -26091, -26033, -25975, -25917, -25859, -25801,
	-25743, -25685, -25627, -25569, -25511, -25453, -25395, -25337,
	-25280, -25222, -25164, -25106, -25049, -24991, -24934, -24876,
	-24819, -24761, -24704, -24646, -24589, -24532, -24474, -24417,
	-24360, -24303, -24246, -24188, -24131, -24074, -24017, -23960,
	-23903, -23846, -23789, -23733, -23676, -23619, -23562, -23505,
	-23449, -23392, -23335, -23279, -23222, -23166, -23109, -23053,
	-22996, -22940, -22883, -22827, -22770, -22714, -22658, -22602,
	-22545, -22489, -22433, -22377, -22321, -22265, -22209, -22153,
	-22097, -22041, -21985, -21929, -21873, -21817, -21761, -21705,
	-21650, -21594, -21538, -21483, -21427, -21371, -21316, -21260,
	-21205, -21149, -21094, -21038, -20983, -20927, -20872, -20817,
	-20761, -20706, -20651, -20595, -20540, -20485, -20430, -20375,
	-20320, -20264, -20209, -20154, -20099, -20044, -19989, -19935,
	-19880, -19825, -19770, -19715, -19660, -19605, -19551, -19496,
	-19441, -19387, -19332, -19277, -19223, -19168, -19114, -19059,
	-19005, -18950, -18896, -18841, -18787, -18732, -18678, -18624,
	-18569, -18515, -18461, -18407, -18352, -18298, -18244, -18190,
	-18136, -18082, -18028, -17974, -17919, -17865, -17811, -17758,
	-17704, -17650, -17596, -17542, -17488, -17434, -17380, -17327,
	-17273, -17219, -17165, -17112, -17058, -17004, -16951, -16897,
	-16843, -16790, -16736, -16683, -16629, -16576, -16522, -16469,
	-16415, -16362, -16309, -16255, -16202, -16149, -16095, -16042,
	-15989, -15935, -15882, -15829, -15776, -15723, -15670, -15616,
	-15563, -15510, -15457, -15404, -15351, -15298, -15245, -15192,
	-15139, -15086, -15033, -14980, -14927, -14875, -14822, -14769,
	-14716, -14663, -14611, -14558, -14505, -14452, -14400, -14347,
	-14294, -14242, -14189, -14136, -14084, -14031, -13979, -13926,
	-13874, -13821, -13769, -13716, -13664, -13611, -13559, -13506,
	-13454, -13402, -13349, -13297, -13245, -13192, -13140, -13088,
	-13035, -12983, -12931, -12879, -12827, -12774, -12722, -12670,
	-12618, -12566, -12514, -12462, -12409, -12357, -12305, -12253,
	-12201, -12149, -12097, -12045, -11993, -11941, -11890, -11838,
	-11786, -11734, -11682, -11630, -11578, -11526, -11475, -11423,
	-11371, -11319, -11268, -11216, -11164, -11112, -11061, -11009,
	-10957, -10906, -10854, -10802, -10751, -10699, -10647, -10596,
	-10544, -10493, -10441, -10390, -10338, -10287, -10235, -10184,
	-10132, -10081, -10029, -9978, -9926, -9875, -9824, -9772,
	-9721, -9669, -9618, -9567, -9515, -9464, -9413, -9362,
	-9310, -9259, -9208, -9156, -9105, -9054, -9003, -8952,
	-8900, -8849, -8798, -8747, -8696, -8645, -8593, -8542,
	-8491, -8440, -8389, -8338, -8287, -8236, -8185, -8134,
	-8083, -8032, -7981, -7930, -7879, -7828, -7777, -7726,
	-7675, -7624, -7573, -7522, -7471, -7420, -7369, -7318,
	-7267, -7216, -7166, -7115, -7064, -7013, -6962, -6911,
	-6861, -6810, -6759, -6708, -6657, -6607, -6556, -6505,
	-6454, -6403, -6353, -6302, -6251, -6201, -6150, -6099,
	-6048, -5998, -5947, -5896, -5846, -5795, -5744, -5694,
	-5643, -5592, -5542, -5491, -5441, -5390, -5339, -5289,
	-5238, -5188, -5137, -5086, -5036, -4985, -4935, -4884,
	-4834, -4783, -4733, -4682, -4632, -4581, -4531, -4480,
	-4430, -4379, -4329, -4278, -4228, -4177, -4127, -4076,
	-4026, -3975, -3925, -3874, -3824, -3774, -3723, -3673,
	-3622, -3572, -3521, -3471, -3421, -3370, -3320, -3269,
	-3219, -3169, -3118, -3068, -3018, -2967, -2917, -2866,
	-2816, -2766, -2715, -2665, -2615, -2564, -2514, -2464,
	-2413, -2363, -2313, -2262, -2212, -2162, -2111, -2061,
	-2011, -1960, -1910, -1860, -1810, -1759, -1709, -1659,
	-1608, -1558, -1508, -1457, -1407, -1357, -1307, -1256,
	-1206, -1156, -1105, -1055, -1005, -955, -904, -854,
	-804, -754, -703, -653, -603, -552, -502, -452,
	-402, -351, -301, -251, -201, -150, -100, -50,
	0, 50, 100, 150, 201, 251, 301, 351,
	402, 452, 502, 552, 603, 653, 703, 754,
	804, 854, 904, 955, 1005, 1055, 1105, 1156,
	1206, 1256, 1307, 1357, 1407, 1457, 1508, 1558,
	1608, 1659, 1709, 1759, 1810, 1860, 1910, 1960,
	2011, 2061, 2111, 2162, 2212, 2262, 2313, 2363,
	2413, 2464, 2514, 2564, 2615, 2665, 2715, 2766,
	2816, 2866, 2917, 2967, 3018, 3068, 3118, 3169,
	3219, 3269, 3320, 3370, 3421, 3471, 3521, 3572,
	3622, 3673, 3723, 3774, 3824, 3874, 3925, 3975,
	4026, 4076, 4127, 4177, 4228, 4278, 4329, 4379,
	4430, 4480, 4531, 4581, 4632, 4682, 4733, 4783,
	4834, 4884, 4935, 4985, 5036, 5086, 5137, 5188,
	5238, 5289, 5339, 5390, 5441, 5491, 5542, 5592,
	5643, 5694, 5744, 5795, 5846, 5896, 5947, 5998,
	6048, 6099, 6150, 6201, 6251, 6302, 6353, 6403,
	6454, 6505, 6556, 6607, 6657, 6708, 6759, 6810,
	6861, 6911, 6962, 7013, 7064, 7115, 7166, 7216,
	7267, 7318, 7369, 7420, 7471, 7522, 7573, 7624,
	7675, 7726, 7777, 7828, 7879, 7930, 7981, 8032,
	8083, 8134, 8185, 8236, 8287, 8338, 8389, 8440,
	8491, 8542, 8593, 8645, 8696, 8747, 8798, 8849,
	8900, 8952, 9003, 9054, 9105, 9156, 9208, 9259,
	9310, 9362, 9413, 9464, 9515, 9567, 9618, 9669,
	9721, 9772, 9824, 9875, 9926, 9978, 10029, 10081,
	10132, 10184, 10235, 10287, 10338, 10390, 10441, 10493,
	10544, 10596, 10647, 10699, 10751, 10802, 10854, 10906,
	10957, 11009, 11061, 11112, 11164, 11216, 11268, 11319,
	11371, 11423, 11475, 11526, 11578, 11630, 11682, 11734,
	11786, 11838, 11890, 11941, 11993, 12045, 12097, 12149,
	12201, 12253, 12305, 12357, 12409, 12462, 12514, 12566,
	12618, 12670, 12722, 12774, 12827, 12879, 12931, 12983,
	13035, 13088, 13140, 13192, 13245, 13297, 13349, 13402,
	13454, 13506, 13559, 13611, 13664, 13716, 13769, 13821,
	13874, 13926, 13979, 14031, 14084, 14136, 14189, 14242,
	14294, 14347, 14400, 14452, 14505, 14558, 14611, 14663,
	14716, 14769, 14822, 14875, 14927, 14980, 15033, 15086,
	15139, 15192, 15245, 15298, 15351, 15404, 15457, 15510,
	15563, 15616, 15670, 15723, 15776, 15829, 15882, 15935,
	15989, 16042, 16095, 16149, 16202, 16255, 16309, 16362,
	16415, 16469, 16522, 16576, 16629, 16683, 16736, 16790,
	16843, 16897, 16951, 17004, 17058, 17112, 17165, 17219,
	17273, 17327, 17380, 17434, 17488, 17542, 17596, 17650,
	17704, 17758, 17811, 17865, 17919, 17974, 18028, 18082,
	18136, 18190, 18244, 18298, 18352, 18407, 18461, 18515,
	18569, 18624, 18678, 18732, 18787, 18841, 18896, 18950,
	19005, 19059, 19114, 19168, 19223, 19277, 19332, 19387,
	19441, 19496, 19551, 19605, 19660, 19715, 19770, 19825,
	19880, 19935, 19989, 20044, 20099, 20154, 20209, 20264,
	20320, 20375, 20430, 20485, 20540, 20595, 20651, 20706,
	20761, 20817, 20872, 20927, 20983, 21038, 21094, 21149,
	21205, 21260, 21316, 21371, 21427, 21483, 21538, 21594,
	21650, 21705, 21761, 21817, 21873, 21929, 21985, 22041,
	22097, 22153, 22209, 22265, 22321, 22377, 22433, 22489,
	22545, 22602, 22658, 22714, 22770, 22827, 22883, 22940,
	22996, 23053, 23109, 23166, 23222, 23279, 23335, 23392,
	23449, 23505, 23562, 23619, 23676, 23733, 23789, 23846,
	23903, 23960, 24017, 24074, 24131, 24188, 24246, 24303,
	24360, 24417, 24474, 24532, 24589, 24646, 24704, 24761,
	24819, 24876, 24934, 24991, 25049, 25106, 25164, 25222,
	25280, 25337, 25395, 25453, 25511, 25569, 25627, 25685,
	25743, 25801, 25859, 25917, 25975, 26033, 26091, 26150,
	26208, 26266, 26325, 26383, 26441, 26500, 26558, 26617,
	26675, 26734, 26793, 26851, 26910, 26969, 27028, 27087,
	27145, 27204, 27263, 27322, 27381, 27440, 27499, 27559,
	27618, 27677, 27736, 27795, 27855, 27914, 27974, 28033,
	28092, 28152, 28212, 28271, 28331, 28390, 28450, 28510,
	28570, 28630, 28689, 28749, 28809, 28869, 28929, 28989,
	29050, 29110, 29170, 29230, 29291, 29351, 29411, 29472,
	29532, 29593, 29653, 29714, 29774, 29835, 29896, 29956,
	30017, 30078, 30139, 30200, 30261, 30322, 30383, 30444,
	30505, 30566, 30627, 30689, 30750, 30811, 30873, 30934,
	30996, 31057, 31119, 31180, 31242, 31304, 31366, 31427,
	31489, 31551, 31613, 31675, 31737, 31799, 31861, 31923,
	31986, 32048, 32110, 32173, 32235, 32297, 32360, 32422,
	32485, 32548, 32610, 32673, 32736, 32799, 32862, 32925,
	32988, 33051, 33114, 33177, 33240, 33303, 33366, 33430,
	33493, 33557, 33620, 33684, 33747, 33811, 33874, 33938,
	34002, 34066, 34130, 34194, 34257, 34322, 34386, 34450,
	34514, 34578, 34642, 34707, 34771, 34836, 34900, 34965,
	35029, 35094, 35159, 35223, 35288, 35353, 35418, 35483,
	35548, 35613, 35678, 35743, 35809, 35874, 35939, 36005,
	36070, 36136, 36201, 36267, 36333, 36398, 36464, 36530,
	36596, 36662, 36728, 36794, 36860, 36926, 36993, 37059,
	37125, 37192, 37258, 37325, 37391, 37458, 37525, 37591,
	37658, 37725, 37792, 37859, 37926, 37993, 38060, 38128,
	38195, 38262, 38330, 38397, 38465, 38532, 38600, 38668,
	38736, 38804, 38871, 38939, 39007, 39076, 39144, 39212,
	39280, 39349, 39417, 39486, 39554, 39623, 39691, 39760,
	39829, 39898, 39967, 40036, 40105, 40174, 40243, 40312,
	40382, 40451, 40520, 40590, 40660, 40729, 40799, 40869,
	40939, 41008, 41078, 41148, 41219, 41289, 41359, 41429,
	41500, 41570, 41641, 41711, 41782, 41853, 41923, 41994,
	42065, 42136, 42207, 42279, 42350, 42421, 42492, 42564,
	42635, 42707, 42779, 42850, 42922, 42994, 43066, 43138,
	43210, 43282, 43354, 43427, 43499, 43571, 43644, 43717,
	43789, 43862, 43935, 44008, 44081, 44154, 44227, 44300,
	44373, 44447, 44520, 44594, 44667, 44741, 44815, 44888,
	44962, 45036, 45110, 45184, 45259, 45333, 45407, 45482,
	45556, 45631, 45705, 45780, 45855, 45930, 46005, 46080,
	46155, 46230, 46306, 46381, 46457, 46532, 46608, 46684,
	46759, 46835, 46911, 46987, 47063, 47140, 47216, 47292,
	47369, 47445, 47522, 47599, 47676, 47753, 47830, 47907,
	47984, 48061, 48138, 48216, 48293, 48371, 48449, 48526,
	48604, 48682, 48760, 48838, 48917, 48995, 49073, 49152,
	49230, 49309, 49388, 49467, 49546, 49625, 49704, 49783,
	49862, 49942, 50021, 50101, 50181, 50260, 50340, 50420,
	50500, 50581, 50661, 50741, 50822, 50902, 50983, 51063,
	51144, 51225, 51306, 51387, 51469, 51550, 51631, 51713,
	51794, 51876, 51958, 52040, 52122, 52204, 52286, 52369,
	52451, 52533, 52616, 52699, 52782, 52865, 52948, 53031,
	53114, 53197, 53281, 53364, 53448, 53532, 53615, 53699,
	53784, 53868, 53952, 54036, 54121, 54205, 54290, 54375,
	54460, 54545, 54630, 54715, 54801, 54886, 54972, 55057,
	55143, 55229, 55315, 55401, 55487, 55574, 55660, 55747,
	55834, 55920, 56007, 56094, 56181, 56269, 56356, 56444,
	56531, 56619, 56707, 56795, 56883, 56971, 57059, 57148,
	57236, 57325, 57414, 57503, 57592, 57681, 57770, 57859,
	57949, 58039, 58128, 58218, 58308, 58398, 58489, 58579,
	58669, 58760, 58851, 58942, 59033, 59124, 59215, 59306,
	59398, 59489, 59581, 59673, 59765, 59857, 59950, 60042,
	60134, 60227, 60320, 60413, 60506, 60599, 60692, 60786,
	60879, 60973, 61067, 61161, 61255, 61349, 61444, 61538,
	61633, 61728, 61822, 61918, 62013, 62108, 62204, 62299,
	62395, 62491, 62587, 62683, 62779, 62876, 62972, 63069,
	63166, 63263, 63360, 63458, 63555, 63653, 63750, 63848,
	63946, 64045, 64143, 64241, 64340, 64439, 64538, 64637,
	64736, 64836, 64935, 65035, 65135, 65235, 65335, 65435,
	65536, 65636, 65737, 65838, 65939, 66040, 66141, 66243,
	66345, 66447, 66549, 66651, 66753, 66856, 66958, 67061,
	67164, 67267, 67371, 67474, 67578, 67681, 67785, 67889,
	67994, 68098, 68203, 68308, 68413, 68518, 68623, 68728,
	68834, 68940, 69046, 69152, 69258, 69365, 69472, 69578,
	69685, 69793, 69900, 70007, 70115, 70223, 70331, 70439,
	70548, 70656, 70765, 70874, 70983, 71093, 71202, 71312,
	71422, 71532, 71642, 71752, 71863, 71974, 72085, 72196,
	72307, 72419, 72531, 72643, 72755, 72867, 72979, 73092,
	73205, 73318, 73431, 73545, 73659, 73772, 73886, 74001,
	74115, 74230, 74345, 74460, 74575, 74690, 74806, 74922,
	75038, 75154, 75271, 75387, 75504, 75621, 75739, 75856,
	75974, 76092, 76210, 76328, 76447, 76566, 76685, 76804,
	76923, 77043, 77163, 77283, 77403, 77524, 77644, 77765,
	77886, 78008, 78129, 78251, 78373, 78495, 78618, 78741,
	78864, 78987, 79110, 79234, 79358, 79482, 79606, 79731,
	79855, 79980, 80106, 80231, 80357, 80483, 80609, 80735,
	80862, 80989, 81116, 81244, 81371, 81499, 81627, 81756,
	81884, 82013, 82142, 82271, 82401, 82531, 82661, 82791,
	82922, 83053, 83184, 83315, 83447, 83579, 83711, 83843,
	83976, 84109, 84242, 84376, 84509, 84643, 84778, 84912,
	85047, 85182, 85317, 85453, 85589, 85725, 85861, 85998,
	86135, 86272, 86410, 86547, 86686, 86824, 86963, 87101,
	87241, 87380, 87520, 87660, 87800, 87941, 88082, 88223,
	88365, 88506, 88648, 88791, 88934, 89077, 89220, 89363,
	89507, 89651, 89796, 89941, 90086, 90231, 90377, 90523,
	90669, 90816, 90963, 91110, 91258, 91406, 91554, 91702,
	91851, 92000, 92150, 92300, 92450, 92600, 92751, 92902,
	93053, 93205, 93357, 93510, 93663, 93816, 93969, 94123,
	94277, 94431, 94586, 94741, 94897, 95053, 95209, 95365,
	95522, 95680, 95837, 95995, 96153, 96312, 96471, 96630,
	96790, 96950, 97111, 97271, 97433, 97594, 97756, 97918,
	98081, 98244, 98408, 98571, 98735, 98900, 99065, 99230,
	99396, 99562, 99729, 99895, 100063, 100230, 100398, 100567,
	100736, 100905, 101074, 101244, 101415, 101586, 101757, 101929,
	102101, 102273, 102446, 102619, 102793, 102967, 103142, 103317,
	103492, 103668, 103844, 104021, 104198, 104376, 104554, 104732,
	104911, 105090, 105270, 105450, 105631, 105812, 105993, 106175,
	106358, 106541, 106724, 106908, 107092, 107277, 107462, 107648,
	107834, 108020, 108207, 108395, 108583, 108771, 108960, 109150,
	109340, 109530, 109721, 109912, 110104, 110297, 110490, 110683,
	110877, 111071, 111266, 111462, 111658, 111854, 112051, 112248,
	112446, 112645, 112844, 113043, 113244, 113444, 113645, 113847,
	114049, 114252, 114455, 114659, 114864, 115069, 115274, 115480,
	115687, 115894, 116102, 116310, 116519, 116728, 116938, 117149,
	117360, 117572, 117784, 117997, 118211, 118425, 118639, 118855,
	119071, 119287, 119504, 119722, 119940, 120159, 120379, 120599,
	120820, 121041, 121263, 121486, 121709, 121933, 122158, 122383,
	122609, 122835, 123062, 123290, 123519, 123748, 123978, 124208,
	124439, 124671, 124904, 125137, 125371, 125605, 125841, 126077,
	126313, 126551, 126789, 127027, 127267, 127507, 127748, 127990,
	128232, 128475, 128719, 128963, 129209, 129455, 129701, 129949,
	130197, 130446, 130696, 130947, 131198, 131450, 131703, 131957,
	132211, 132466, 132722, 132979, 133237, 133495, 133754, 134014,
	134275, 134537, 134799, 135063, 135327, 135592, 135858, 136125,
	136392, 136661, 136930, 137200, 137471, 137743, 138016, 138289,
	138564, 138839, 139115, 139393, 139671, 139950, 140230, 140511,
	140792, 141075, 141359, 141643, 141929, 142215, 142503, 142791,
	143081, 143371, 143662, 143955, 144248, 144542, 144837, 145134,
	145431, 145729, 146029, 146329, 146630, 146933, 147236, 147541,
	147846, 148153, 148461, 148769, 149079, 149390, 149702, 150015,
	150329, 150645, 150961, 151279, 151597, 151917, 152238, 152560,
	152883, 153208, 153533, 153860, 154188, 154517, 154847, 155179,
	155512, 155845, 156181, 156517, 156855, 157193, 157533, 157875,
	158217, 158561, 158906, 159253, 159601, 159950, 160300, 160652,
	161005, 161359, 161715, 162072, 162430, 162790, 163151, 163513,
	163877, 164242, 164609, 164977, 165347, 165718, 166090, 166464,
	166839, 167216, 167594, 167974, 168355, 168738, 169122, 169508,
	169895, 170284, 170674, 171066, 171460, 171855, 172252, 172650,
	173050, 173452, 173855, 174260, 174666, 175074, 175484, 175896,
	176309, 176724, 177140, 177559, 177979, 178401, 178824, 179250,
	179677, 180106, 180537, 180969, 181404, 181840, 182278, 182718,
	183160, 183604, 184050, 184498, 184947, 185399, 185852, 186308,
	186765, 187225, 187686, 188150, 188615, 189083, 189553, 190025,
	190499, 190975, 191453, 191933, 192416, 192900, 193387, 193876,
	194367, 194861, 195357, 195855, 196355, 196858, 197363, 197870,
	198380, 198892, 199406, 199923, 200442, 200964, 201488, 202015,
	202544, 203076, 203610, 204147, 204686, 205228, 205772, 206319,
	206869, 207422, 207977, 208535, 209095, 209658, 210225, 210793,
	211365, 211940, 212517, 213097, 213681, 214267, 214856, 215448,
	216043, 216641, 217242, 217846, 218453, 219064, 219677, 220294,
	220913, 221536, 222163, 222792, 223425, 224061, 224701, 225344,
	225990, 226640, 227293, 227949, 228610, 229273, 229940, 230611,
	231286, 231964, 232646, 233331, 234021, 234714, 235411, 236112,
	236816, 237525, 238237, 238954, 239674, 240399, 241128, 241860,
	242597, 243338, 244084, 244834, 245588, 246346, 247109, 247876,
	248647, 249423, 250204, 250989, 251779, 252574, 253373, 254177,
	254986, 255799, 256618, 257441, 258270, 259103, 259941, 260785,
	261634, 262488, 263347, 264212, 265082, 265957, 266838, 267724,
	268616, 269514, 270417, 271326, 272241, 273161, 274088, 275020,
	275959, 276903, 277854, 278811, 279774, 280743, 281719, 282702,
	283691, 284686, 285688, 286697, 287713, 288735, 289765, 290801,
	291845, 292895, 293953, 295018, 296091, 297171, 298259, 299354,
	300457, 301567, 302686, 303812, 304947, 306090, 307240, 308400,
	309567, 310743, 311928, 313121, 314324, 315535, 316754, 317984,
	319222, 320469, 321726, 322993, 324269, 325554, 326850, 328156,
	329471, 330797, 332133, 333480, 334837, 336204, 337583, 338973,
	340373, 341785, 343208, 344643, 346089, 347547, 349017, 350499,
	351993, 353499, 355018, 356550, 358094, 359652, 361223, 362807,
	364404, 366016, 367641, 369280, 370933, 372601, 374283, 375981,
	377693, 379420, 381163, 382921, 384696, 386486, 388293, 390116,
	391956, 393812, 395686, 397578, 399487, 401414, 403359, 405323,
	407305, 409306, 411327, 413367, 415427, 417507, 419608, 421729,
	423871, 426035, 428221, 430428, 432658, 434910, 437186, 439485,
	441807, 444154, 446526, 448922, 451343, 453791, 456264, 458764,
	461291, 463845, 466428, 469038, 471678, 474347, 477045, 479774,
	482534, 485325, 488148, 491003, 493891, 496813, 499769, 502760,
	505787, 508849, 511948, 515084, 518259, 521472, 524725, 528018,
	531351, 534727, 538145, 541606, 545112, 548662, 552259, 555902,
	559593, 563332, 567122, 570962, 574853, 578797, 582795, 586848,
	590957, 595124, 599348, 603633, 607978, 612386, 616857, 621393,
	625996, 630667, 635407, 640218, 645102, 650060, 655094, 660206,
	665398, 670671, 676027, 681469, 686999, 692618, 698328, 704133,
	710035, 716035, 722137, 728343, 734655, 741077, 747612, 754261,
	761030, 767919, 774934, 782077, 789353, 796763, 804314, 812008,
	819849, 827843, 835992, 844303, 852780, 861428, 870251, 879257,
	888449, 897835, 907420, 917211, 927215, 937438, 947887, 958571,
	969498, 980675, 992112, 1003818, 1015802, 1028074, 1040645, 1053527,
	1066729, 1080266, 1094149, 1108393, 1123011, 1138018, 1153430, 1169265,
	1185538, 1202270, 1219479, 1237186, 1255414, 1274185, 1293525, 1313459,
	1334015, 1355224, 1377116, 1399726, 1423088, 1447242, 1472229, 1498091,
	1524876, 1552635, 1581422, 1611294, 1642314, 1674550, 1708075, 1742967,
	1779313, 1817205, 1856743, 1898038, 1941209, 1986387, 2033716, 2083353,
	2135471, 2190260, 2247933, 2308722, 2372887, 2440718, 2512537, 2588709,
	2669640, 2755792, 2847685, 2945916, 3051161, 3164201, 3285935, 3417407,
	3559833, 3714643, 3883524, 4068489, 4271947, 4496821, 4746679, 5025930,
	5340085, 5696125, 6103026, 6572525, 7120270, 7767602, 8544398, 9493811,
	10680573, 12206405, 14240842, 17089048, 21361347, 28481836, 42722796, 85445642
};