using System; public static class AcosLookupTable { public static readonly int COUNT; public static readonly int HALF_COUNT; public static readonly int[] table; static AcosLookupTable() { AcosLookupTable.COUNT = 1024; AcosLookupTable.HALF_COUNT = AcosLookupTable.COUNT >> 1; AcosLookupTable.table = new int[] { 31416, 30791, 30532, 30333, 30165, 30017, 29883, 29760, 29646, 29538, 29436, 29339, 29247, 29158, 29072, 28989, 28909, 28832, 28756, 28683, 28612, 28542, 28474, 28407, 28342, 28278, 28215, 28154, 28093, 28034, 27976, 27918, 27862, 27806, 27751, 27697, 27644, 27591, 27539, 27488, 27437, 27387, 27337, 27288, 27240, 27192, 27145, 27098, 27051, 27005, 26960, 26915, 26870, 26826, 26782, 26738, 26695, 26652, 26610, 26568, 26526, 26485, 26444, 26403, 26362, 26322, 26282, 26243, 26203, 26164, 26125, 26087, 26048, 26010, 25973, 25935, 25898, 25860, 25823, 25787, 25750, 25714, 25678, 25642, 25606, 25571, 25536, 25500, 25466, 25431, 25396, 25362, 25328, 25293, 25260, 25226, 25192, 25159, 25126, 25092, 25059, 25027, 24994, 24961, 24929, 24897, 24865, 24833, 24801, 24769, 24737, 24706, 24675, 24643, 24612, 24581, 24550, 24520, 24489, 24459, 24428, 24398, 24368, 24337, 24308, 24278, 24248, 24218, 24189, 24159, 24130, 24100, 24071, 24042, 24013, 23984, 23955, 23927, 23898, 23869, 23841, 23813, 23784, 23756, 23728, 23700, 23672, 23644, 23616, 23589, 23561, 23533, 23506, 23478, 23451, 23424, 23397, 23369, 23342, 23315, 23288, 23262, 23235, 23208, 23181, 23155, 23128, 23102, 23075, 23049, 23023, 22997, 22970, 22944, 22918, 22892, 22866, 22840, 22815, 22789, 22763, 22738, 22712, 22687, 22661, 22636, 22610, 22585, 22560, 22535, 22509, 22484, 22459, 22434, 22409, 22384, 22360, 22335, 22310, 22285, 22261, 22236, 22212, 22187, 22163, 22138, 22114, 22089, 22065, 22041, 22017, 21992, 21968, 21944, 21920, 21896, 21872, 21848, 21824, 21801, 21777, 21753, 21729, 21706, 21682, 21658, 21635, 21611, 21588, 21564, 21541, 21518, 21494, 21471, 21448, 21424, 21401, 21378, 21355, 21332, 21309, 21286, 21263, 21240, 21217, 21194, 21171, 21148, 21125, 21103, 21080, 21057, 21034, 21012, 20989, 20967, 20944, 20921, 20899, 20876, 20854, 20832, 20809, 20787, 20764, 20742, 20720, 20698, 20675, 20653, 20631, 20609, 20587, 20565, 20543, 20520, 20498, 20476, 20455, 20433, 20411, 20389, 20367, 20345, 20323, 20301, 20280, 20258, 20236, 20214, 20193, 20171, 20149, 20128, 20106, 20085, 20063, 20042, 20020, 19999, 19977, 19956, 19934, 19913, 19891, 19870, 19849, 19827, 19806, 19785, 19764, 19742, 19721, 19700, 19679, 19658, 19636, 19615, 19594, 19573, 19552, 19531, 19510, 19489, 19468, 19447, 19426, 19405, 19384, 19363, 19342, 19321, 19300, 19280, 19259, 19238, 19217, 19196, 19175, 19155, 19134, 19113, 19093, 19072, 19051, 19030, 19010, 18989, 18969, 18948, 18927, 18907, 18886, 18866, 18845, 18825, 18804, 18784, 18763, 18743, 18722, 18702, 18681, 18661, 18640, 18620, 18600, 18579, 18559, 18539, 18518, 18498, 18478, 18457, 18437, 18417, 18396, 18376, 18356, 18336, 18316, 18295, 18275, 18255, 18235, 18215, 18194, 18174, 18154, 18134, 18114, 18094, 18074, 18054, 18034, 18013, 17993, 17973, 17953, 17933, 17913, 17893, 17873, 17853, 17833, 17813, 17793, 17773, 17753, 17734, 17714, 17694, 17674, 17654, 17634, 17614, 17594, 17574, 17554, 17535, 17515, 17495, 17475, 17455, 17435, 17415, 17396, 17376, 17356, 17336, 17316, 17297, 17277, 17257, 17237, 17218, 17198, 17178, 17158, 17139, 17119, 17099, 17079, 17060, 17040, 17020, 17001, 16981, 16961, 16942, 16922, 16902, 16883, 16863, 16843, 16824, 16804, 16784, 16765, 16745, 16725, 16706, 16686, 16666, 16647, 16627, 16608, 16588, 16568, 16549, 16529, 16510, 16490, 16470, 16451, 16431, 16412, 16392, 16373, 16353, 16333, 16314, 16294, 16275, 16255, 16236, 16216, 16196, 16177, 16157, 16138, 16118, 16099, 16079, 16060, 16040, 16021, 16001, 15981, 15962, 15942, 15923, 15903, 15884, 15864, 15845, 15825, 15806, 15786, 15767, 15747, 15727, 15708, 15688, 15669, 15649, 15630, 15610, 15591, 15571, 15552, 15532, 15513, 15493, 15474, 15454, 15434, 15415, 15395, 15376, 15356, 15337, 15317, 15298, 15278, 15259, 15239, 15219, 15200, 15180, 15161, 15141, 15122, 15102, 15083, 15063, 15043, 15024, 15004, 14985, 14965, 14946, 14926, 14906, 14887, 14867, 14848, 14828, 14808, 14789, 14769, 14749, 14730, 14710, 14691, 14671, 14651, 14632, 14612, 14592, 14573, 14553, 14533, 14514, 14494, 14474, 14455, 14435, 14415, 14396, 14376, 14356, 14336, 14317, 14297, 14277, 14258, 14238, 14218, 14198, 14179, 14159, 14139, 14119, 14099, 14080, 14060, 14040, 14020, 14000, 13981, 13961, 13941, 13921, 13901, 13881, 13862, 13842, 13822, 13802, 13782, 13762, 13742, 13722, 13702, 13682, 13662, 13643, 13623, 13603, 13583, 13563, 13543, 13523, 13503, 13483, 13463, 13443, 13422, 13402, 13382, 13362, 13342, 13322, 13302, 13282, 13262, 13242, 13221, 13201, 13181, 13161, 13141, 13121, 13100, 13080, 13060, 13040, 13019, 12999, 12979, 12959, 12938, 12918, 12898, 12877, 12857, 12837, 12816, 12796, 12775, 12755, 12735, 12714, 12694, 12673, 12653, 12632, 12612, 12591, 12571, 12550, 12530, 12509, 12489, 12468, 12447, 12427, 12406, 12385, 12365, 12344, 12323, 12303, 12282, 12261, 12240, 12220, 12199, 12178, 12157, 12136, 12116, 12095, 12074, 12053, 12032, 12011, 11990, 11969, 11948, 11927, 11906, 11885, 11864, 11843, 11822, 11801, 11780, 11758, 11737, 11716, 11695, 11674, 11652, 11631, 11610, 11589, 11567, 11546, 11524, 11503, 11482, 11460, 11439, 11417, 11396, 11374, 11353, 11331, 11310, 11288, 11266, 11245, 11223, 11202, 11180, 11158, 11136, 11115, 11093, 11071, 11049, 11027, 11005, 10983, 10961, 10939, 10917, 10895, 10873, 10851, 10829, 10807, 10785, 10763, 10741, 10718, 10696, 10674, 10651, 10629, 10607, 10584, 10562, 10540, 10517, 10495, 10472, 10449, 10427, 10404, 10382, 10359, 10336, 10313, 10291, 10268, 10245, 10222, 10199, 10176, 10153, 10130, 10107, 10084, 10061, 10038, 10015, 9992, 9968, 9945, 9922, 9898, 9875, 9852, 9828, 9805, 9781, 9758, 9734, 9710, 9687, 9663, 9639, 9615, 9591, 9568, 9544, 9520, 9496, 9472, 9448, 9423, 9399, 9375, 9351, 9327, 9302, 9278, 9253, 9229, 9204, 9180, 9155, 9131, 9106, 9081, 9056, 9031, 9007, 8982, 8957, 8932, 8907, 8881, 8856, 8831, 8806, 8780, 8755, 8729, 8704, 8678, 8653, 8627, 8601, 8575, 8550, 8524, 8498, 8472, 8446, 8419, 8393, 8367, 8341, 8314, 8288, 8261, 8235, 8208, 8181, 8154, 8128, 8101, 8074, 8047, 8019, 7992, 7965, 7938, 7910, 7883, 7855, 7827, 7800, 7772, 7744, 7716, 7688, 7660, 7632, 7603, 7575, 7546, 7518, 7489, 7461, 7432, 7403, 7374, 7345, 7315, 7286, 7257, 7227, 7198, 7168, 7138, 7108, 7078, 7048, 7018, 6988, 6957, 6927, 6896, 6865, 6835, 6804, 6773, 6741, 6710, 6678, 6647, 6615, 6583, 6551, 6519, 6487, 6455, 6422, 6389, 6356, 6324, 6290, 6257, 6224, 6190, 6156, 6122, 6088, 6054, 6020, 5985, 5950, 5915, 5880, 5845, 5810, 5774, 5738, 5702, 5666, 5629, 5592, 5556, 5518, 5481, 5443, 5406, 5368, 5329, 5291, 5252, 5213, 5173, 5134, 5094, 5054, 5013, 4972, 4931, 4890, 4848, 4806, 4764, 4721, 4678, 4634, 4590, 4546, 4501, 4456, 4411, 4365, 4318, 4271, 4224, 4176, 4128, 4079, 4029, 3979, 3928, 3877, 3825, 3772, 3719, 3665, 3610, 3554, 3498, 3440, 3382, 3322, 3262, 3201, 3138, 3074, 3009, 2942, 2874, 2804, 2733, 2659, 2584, 2507, 2427, 2344, 2258, 2169, 2077, 1980, 1878, 1770, 1655, 1532, 1399, 1251, 1083, 884, 625, 0 }; /* DebugHelper.Assert(AcosLookupTable.table.Length == AcosLookupTable.COUNT + 1);*/ } }