float sine[360] = { 0.000000, 0.017449, 0.034893, 0.052326, 0.069743, 0.087139, 0.104509, 0.121846, 0.139147, 0.156405, 0.173616, 0.190773, 0.207873, 0.224909, 0.241877, 0.258771, 0.275587, 0.292318, 0.308961, 0.325509, 0.341958, 0.358303, 0.374539, 0.390661, 0.406664, 0.422544, 0.438294, 0.453911, 0.469390, 0.484726, 0.499914, 0.514951, 0.529830, 0.544548, 0.559100, 0.573482, 0.587689, 0.601718, 0.615563, 0.629221, 0.642687, 0.655957, 0.669028, 0.681895, 0.694554, 0.707002, 0.719235, 0.731248, 0.743039, 0.754604, 0.765939, 0.777040, 0.787905, 0.798530, 0.808912, 0.819048, 0.828934, 0.838568, 0.847947, 0.857067, 0.865927, 0.874522, 0.882852, 0.890912, 0.898702, 0.906217, 0.913457, 0.920419, 0.927100, 0.933499, 0.939614, 0.945442, 0.950983, 0.956234, 0.961195, 0.965862, 0.970235, 0.974313, 0.978094, 0.981578, 0.984762, 0.987647, 0.990230, 0.992513, 0.994493, 0.996170, 0.997544, 0.998614, 0.999381, 0.999843, 1.000000, 0.999853, 0.999401, 0.998645, 0.997586, 0.996222, 0.994555, 0.992585, 0.990313, 0.987739, 0.984865, 0.981691, 0.978217, 0.974446, 0.970379, 0.966015, 0.961358, 0.956408, 0.951166, 0.945635, 0.939816, 0.933711, 0.927322, 0.920650, 0.913698, 0.906468, 0.898961, 0.891181, 0.883130, 0.874810, 0.866223, 0.857372, 0.848261, 0.838891, 0.829266, 0.819388, 0.809261, 0.798887, 0.788270, 0.777413, 0.766320, 0.754992, 0.743436, 0.731652, 0.719646, 0.707421, 0.694980, 0.682328, 0.669468, 0.656404, 0.643141, 0.629681, 0.616030, 0.602191, 0.588169, 0.573967, 0.559591, 0.545045, 0.530332, 0.515459, 0.500428, 0.485244, 0.469913, 0.454439, 0.438827, 0.423081, 0.407206, 0.391207, 0.375089, 0.358857, 0.342515, 0.326069, 0.309524, 0.292885, 0.276156, 0.259344, 0.242452, 0.225487, 0.208453, 0.191355, 0.174199, 0.156991, 0.139734, 0.122435, 0.105098, 0.087730, 0.070335, 0.052918, 0.035485, 0.018042, 0.000593, -0.016857, -0.034301, -0.051734, -0.069152, -0.086549, -0.103919, -0.121258, -0.138560, -0.155820, -0.173032, -0.190192, -0.207293, -0.224332, -0.241302, -0.258199, -0.275017, -0.291751, -0.308397, -0.324949, -0.341401, -0.357750, -0.373990, -0.390116, -0.406123, -0.422006, -0.437761, -0.453383, -0.468867, -0.484208, -0.499401, -0.514442, -0.529327, -0.544051, -0.558609, -0.572996, -0.587210, -0.601244, -0.615096, -0.628760, -0.642233, -0.655510, -0.668587, -0.681461, -0.694128, -0.706583, -0.718823, -0.730844, -0.742642, -0.754215, -0.765557, -0.776667, -0.787540, -0.798174, -0.808564, -0.818708, -0.828603, -0.838245, -0.847633, -0.856762, -0.865630, -0.874235, -0.882573, -0.890643, -0.898442, -0.905967, -0.913216, -0.920187, -0.926878, -0.933286, -0.939411, -0.945249, -0.950800, -0.956061, -0.961031, -0.965708, -0.970091, -0.974179, -0.977971, -0.981464, -0.984659, -0.987554, -0.990148, -0.992440, -0.994431, -0.996118, -0.997503, -0.998583, -0.999360, -0.999832, -1.000000, -0.999863, -0.999422, -0.998676, -0.997627, -0.996273, -0.994616, -0.992657, -0.990395, -0.987832, -0.984967, -0.981803, -0.978340, -0.974579, -0.970522, -0.966168, -0.961521, -0.956581, -0.951349, -0.945828, -0.940019, -0.933923, -0.927544, -0.920881, -0.913939, -0.906718, -0.899221, -0.891450, -0.883408, -0.875097, -0.866519, -0.857677, -0.848575, -0.839213, -0.829597, -0.819728, -0.809609, -0.799243, -0.788635, -0.777786, -0.766700, -0.755381, -0.743832, -0.732056, -0.720058, -0.707840, -0.695406, -0.682761, -0.669908, -0.656851, -0.643594, -0.630141, -0.616497, -0.602664, -0.588648, -0.574453, -0.560082, -0.545542, -0.530835, -0.515966, -0.500941, -0.485763, -0.470436, -0.454967, -0.439359, -0.423618, -0.407747, -0.391752, -0.375638, -0.359410, -0.343072, -0.326630, -0.310088, -0.293452, -0.276726, -0.259916, -0.243027, -0.226064, -0.209032, -0.191937, -0.174783, -0.157576, -0.140321, -0.123023, -0.105688, -0.088320, -0.070926, -0.053510, -0.036077, -0.018634, }; float cosine[360] = { 1.000000, 0.999848, 0.999391, 0.998630, 0.997565, 0.996196, 0.994524, 0.992549, 0.990272, 0.987693, 0.984813, 0.981634, 0.978156, 0.974380, 0.970307, 0.965939, 0.961276, 0.956321, 0.951075, 0.945539, 0.939715, 0.933605, 0.927211, 0.920534, 0.913578, 0.906343, 0.898832, 0.891047, 0.882991, 0.874666, 0.866075, 0.857220, 0.848104, 0.838730, 0.829100, 0.819218, 0.809087, 0.798709, 0.788088, 0.777227, 0.766129, 0.754798, 0.743237, 0.731450, 0.719440, 0.707212, 0.694767, 0.682112, 0.669248, 0.656181, 0.642914, 0.629451, 0.615796, 0.601954, 0.587929, 0.573725, 0.559346, 0.544796, 0.530081, 0.515205, 0.500171, 0.484985, 0.469652, 0.454175, 0.438561, 0.422812, 0.406935, 0.390934, 0.374814, 0.358580, 0.342237, 0.325789, 0.309242, 0.292602, 0.275872, 0.259058, 0.242165, 0.225198, 0.208163, 0.191064, 0.173908, 0.156698, 0.139440, 0.122141, 0.104804, 0.087435, 0.070039, 0.052622, 0.035189, 0.017745, 0.000296, -0.017153, -0.034597, -0.052030, -0.069448, -0.086844, -0.104214, -0.121552, -0.138854, -0.156113, -0.173324, -0.190483, -0.207583, -0.224621, -0.241590, -0.258485, -0.275302, -0.292035, -0.308679, -0.325229, -0.341680, -0.358027, -0.374265, -0.390389, -0.406394, -0.422275, -0.438028, -0.453647, -0.469128, -0.484467, -0.499658, -0.514697, -0.529579, -0.544299, -0.558854, -0.573239, -0.587450, -0.601481, -0.615329, -0.628990, -0.642460, -0.655733, -0.668808, -0.681678, -0.694341, -0.706792, -0.719029, -0.731046, -0.742841, -0.754409, -0.765748, -0.776854, -0.787723, -0.798352, -0.808738, -0.818878, -0.828769, -0.838407, -0.847790, -0.856915, -0.865778, -0.874379, -0.882713, -0.890778, -0.898572, -0.906092, -0.913336, -0.920303, -0.926989, -0.933393, -0.939512, -0.945346, -0.950892, -0.956148, -0.961113, -0.965785, -0.970163, -0.974246, -0.978032, -0.981521, -0.984710, -0.987600, -0.990189, -0.992477, -0.994462, -0.996144, -0.997523, -0.998599, -0.999370, -0.999837, -1.000000, -0.999858, -0.999412, -0.998661, -0.997606, -0.996248, -0.994586, -0.992621, -0.990354, -0.987786, -0.984916, -0.981747, -0.978279, -0.974513, -0.970450, -0.966092, -0.961439, -0.956494, -0.951258, -0.945732, -0.939918, -0.933817, -0.927433, -0.920766, -0.913818, -0.906593, -0.899091, -0.891316, -0.883269, -0.874953, -0.866371, -0.857525, -0.848418, -0.839052, -0.829431, -0.819558, -0.809435, -0.799065, -0.788452, -0.777600, -0.766510, -0.755187, -0.743634, -0.731854, -0.719852, -0.707630, -0.695193, -0.682545, -0.669688, -0.656628, -0.643368, -0.629911, -0.616263, -0.602428, -0.588408, -0.574210, -0.559837, -0.545293, -0.530584, -0.515712, -0.500684, -0.485503, -0.470175, -0.454703, -0.439093, -0.423349, -0.407476, -0.391480, -0.375364, -0.359133, -0.342794, -0.326349, -0.309806, -0.293168, -0.276441, -0.259630, -0.242740, -0.225775, -0.208743, -0.191646, -0.174491, -0.157283, -0.140027, -0.122729, -0.105393, -0.088025, -0.070630, -0.053214, -0.035781, -0.018338, -0.000889, 0.016560, 0.034004, 0.051438, 0.068856, 0.086254, 0.103625, 0.120964, 0.138267, 0.155527, 0.172740, 0.189901, 0.207003, 0.224043, 0.241014, 0.257913, 0.274732, 0.291468, 0.308115, 0.324668, 0.341123, 0.357473, 0.373715, 0.389843, 0.405852, 0.421738, 0.437495, 0.453119, 0.468605, 0.483948, 0.499144, 0.514188, 0.529076, 0.543802, 0.558363, 0.572754, 0.586970, 0.601007, 0.614862, 0.628529, 0.642005, 0.655286, 0.668367, 0.681244, 0.693914, 0.706373, 0.718617, 0.730641, 0.742444, 0.754020, 0.765367, 0.776480, 0.787358, 0.797995, 0.808389, 0.818538, 0.828437, 0.838084, 0.847475, 0.856609, 0.865482, 0.874091, 0.882434, 0.890508, 0.898311, 0.905841, 0.913095, 0.920071, 0.926766, 0.933180, 0.939309, 0.945152, 0.950708, 0.955974, 0.960949, 0.965631, 0.970020, 0.974112, 0.977909, 0.981407, 0.984607, 0.987507, 0.990106, 0.992404, 0.994399, 0.996092, 0.997482, 0.998567, 0.999349, 0.999826, };