diff --git a/functions/functions.vcxproj b/functions/functions.vcxproj index 8713129640..f378eb733e 100644 --- a/functions/functions.vcxproj +++ b/functions/functions.vcxproj @@ -17,6 +17,7 @@ + diff --git a/functions/functions.vcxproj.filters b/functions/functions.vcxproj.filters index 0ba0ea2307..c736b4f6e0 100644 --- a/functions/functions.vcxproj.filters +++ b/functions/functions.vcxproj.filters @@ -36,6 +36,9 @@ Source Files + + Test Files + diff --git a/functions/sin_cos_test.cpp b/functions/sin_cos_test.cpp new file mode 100644 index 0000000000..5c2b93f57c --- /dev/null +++ b/functions/sin_cos_test.cpp @@ -0,0 +1,85 @@ +#include "numerics/sin_cos.hpp" + +#include +#include +#include + +#include "boost/multiprecision/cpp_int.hpp" +#include "functions/multiprecision.hpp" +#include "glog/logging.h" +#include "gtest/gtest.h" +#include "numerics/next.hpp" +#include "quantities/numbers.hpp" + +// This test lives in `functions` to avoid pulling `boost` into `numerics`. +namespace principia { +namespace numerics { +namespace _sin_cos { + +using namespace boost::multiprecision; +using namespace principia::numerics::_next; + +class SinCosTest : public ::testing::Test {}; + +TEST_F(SinCosTest, Random) { + std::mt19937_64 random(42); + // TODO(phl): Negative angles. + std::uniform_real_distribution<> uniformly_at(0, π / 4); + + cpp_bin_float_50 max_sin_ulps_error = 0; + cpp_bin_float_50 max_cos_ulps_error = 0; + double worst_sin_argument = 0; + double worst_cos_argument = 0; + +#if _DEBUG + static constexpr std::int64_t iterations = 100; +#else + static constexpr std::int64_t iterations = 400'000; +#endif + + for (std::int64_t i = 0; i < iterations; ++i) { + double const principia_argument = uniformly_at(random); + auto const boost_argument = cpp_rational(principia_argument); + { + auto const boost_sin = + functions::_multiprecision::Sin(boost_argument); + double const principia_sin = Sin(principia_argument); + auto const sin_error = + abs(boost_sin - static_cast(principia_sin)); + auto const ulp = NextUp(principia_sin) - principia_sin; + auto const sin_ulps_error = sin_error / ulp; + if (sin_ulps_error > max_sin_ulps_error) { + max_sin_ulps_error = sin_ulps_error; + worst_sin_argument = principia_argument; + } + } + { + auto const boost_cos = + functions::_multiprecision::Cos(boost_argument); + double const principia_cos = Cos(principia_argument); + auto const cos_error = + abs(boost_cos - static_cast(principia_cos)); + auto const ulp = NextUp(principia_cos) - principia_cos; + auto const cos_ulps_error = cos_error / ulp; + if (cos_ulps_error > max_cos_ulps_error) { + max_cos_ulps_error = cos_ulps_error; + worst_cos_argument = principia_argument; + } + } + } + + // This implementation is not quite correctly rounded, but not far from it. + EXPECT_LE(max_sin_ulps_error, 0.500002); + EXPECT_LE(max_cos_ulps_error, 0.500002); + + LOG(ERROR) << "Sin error: " << max_sin_ulps_error << std::setprecision(25) + << " ulps for argument: " << worst_sin_argument + << " value: " << Sin(worst_sin_argument); + LOG(ERROR) << "Cos error: " << max_cos_ulps_error << std::setprecision(25) + << " ulps for argument: " << worst_cos_argument + << " value: " << Cos(worst_cos_argument); +} + +} // namespace _sin_cos +} // namespace numerics +} // namespace principia diff --git a/mathematica/accurate_tables.wl b/mathematica/accurate_tables.wl index 23b29a195a..0ca7dd6fff 100644 --- a/mathematica/accurate_tables.wl +++ b/mathematica/accurate_tables.wl @@ -31,7 +31,7 @@ (*group=5,*) (*i=IntegerPart[N[x,100]],*) (*f=FractionalPart[N[x,100]]},*) -(* StringJoin[If[signed,If[x<0,"-","+"],""],"0x",IntegerString[i,16],".",StringRiffle[StringPartition[IntegerString[Round[f*16^(group*groups)],16,group*groups],UpTo[groups]],"'"]]]*) +(* StringJoin[If[signed,If[x<0,"-","+"],""],"0x",IntegerString[i,16],".",StringRiffle[StringPartition[IntegerString[Round[f*16^(group*groups)],16,group*groups],UpTo[groups]],"'"],"p0"]]*) (* ::Text:: *) @@ -43,6 +43,7 @@ (*Module[{indices=Flatten[Position[ListQ/@Table[sincos`accurateTables[i],{i,0,500}],True]]-1,min,max,width},min=Min[indices];max=Max[indices];width=Ceiling[Log10[max]];*) (*"#pragma once*) (**) +(*#include *) (*#include *) (**) (*namespace principia {*) @@ -56,8 +57,8 @@ (* double cos_x;*) (*};*) (**) -(*constexpr std::array ToString[max + 1] <> "> SinCosAccurateTable{\n" <>*) -(*StringRiffle[Join[Table[" /*"<>StringPadLeft[ToString[i],width]<>"*/{.x = std::numeric_limits::signaling_NaN(),\n"<>StringRepeat[" ",width+9]<>".sin_x = std::numeric_limits::signaling_NaN(),\n"<>StringRepeat[" ",width+9]<>".cos_x = std::numeric_limits::signaling_NaN()",{i,0,min-1}],Table[" /*"<>StringPadLeft[ToString[i],width]<>"*/{.x = " <> hexFloatLiteral[sincos`accurateTables[i][[1]],False] <> ",\n"<>StringRepeat[" ",width+9]<>".sin_x = " <> hexFloatLiteral[sincos`accurateTables[i][[2]],False] <> ",\n"<>StringRepeat[" ",width+9]<>".cos_x = "<> hexFloatLiteral[sincos`accurateTables[i][[3]],False], {i,indices}]],"},\n"]<>"}};*) +(*constexpr std::array ToString[max + 1] <> "> SinCosAccurateTable{{\n" <>*) +(*StringRiffle[Join[Table[" /*"<>StringPadLeft[ToString[i],width]<>"*/{.x = std::numeric_limits::signaling_NaN(),\n"<>StringRepeat[" ",width+9]<>".sin_x = std::numeric_limits::signaling_NaN(),\n"<>StringRepeat[" ",width+9]<>".cos_x = std::numeric_limits::signaling_NaN()",{i,0,min-1}],Table[" /*"<>StringPadLeft[ToString[i],width]<>"*/{.x = " <> hexFloatLiteral[sincos`accurateTables[i][[1]],False] <> ",\n"<>StringRepeat[" ",width+9]<>".sin_x = " <> hexFloatLiteral[sincos`accurateTables[i][[2]],False] <> ",\n"<>StringRepeat[" ",width+9]<>".cos_x = "<> hexFloatLiteral[sincos`accurateTables[i][[3]],False], {i,indices}]],"},\n"]<>"}}};*) (**) (*} // namespace internal*) (**) diff --git a/numerics/accurate_tables.mathematica.h b/numerics/accurate_tables.mathematica.h index fa5d795cc7..51018bdc85 100644 --- a/numerics/accurate_tables.mathematica.h +++ b/numerics/accurate_tables.mathematica.h @@ -1,5 +1,6 @@ #pragma once +#include #include namespace principia { @@ -13,1216 +14,1216 @@ struct SinCosAccurateValues { double cos_x; }; -constexpr std::array SinCosAccurateTable{ +constexpr std::array SinCosAccurateTable{{ /* 0*/{.x = std::numeric_limits::signaling_NaN(), .sin_x = std::numeric_limits::signaling_NaN(), .cos_x = std::numeric_limits::signaling_NaN()}, - /* 1*/{.x = 0x0.00800'02c2b'8f8aa'00000'00000, - .sin_x = 0x0.00800'026d6'34c0e'7ffff'c57aa, - .cos_x = 0x0.ffffd'fffea'94e00'001a7'df26f}, - /* 2*/{.x = 0x0.00fff'fb609'f34ce'00000'00000, - .sin_x = 0x0.00fff'f8b5f'6fbf4'ffffe'81bbf, - .cos_x = 0x0.ffff8'00054'a09ff'ffe4b'78ed6}, - /* 3*/{.x = 0x0.01800'00e83'1277c'00000'00000, - .sin_x = 0x0.017ff'f7e83'12578'00002'625fe, - .cos_x = 0x0.fffee'00020'3b680'000bb'14eba}, - /* 4*/{.x = 0x0.01fff'f89f5'69a7a'00000'00000, - .sin_x = 0x0.01fff'e34a1'44ab2'ffffd'a11a2, - .cos_x = 0x0.fffe0'00196'bf080'00176'ab15c}, - /* 5*/{.x = 0x0.02800'090c9'c7fce'00000'00000, - .sin_x = 0x0.027ff'df61e'29316'00004'99669, - .cos_x = 0x0.fffce'00036'b32ff'ffe5f'bb3bf}, - /* 6*/{.x = 0x0.02fff'ff679'2895a'00000'00000, - .sin_x = 0x0.02fff'b767b'59da4'00003'13933, - .cos_x = 0x0.fffb8'0037c'93580'00017'5105b}, - /* 7*/{.x = 0x0.03800'0c1d8'ba882'00000'00000, - .sin_x = 0x0.037ff'99c83'225d4'00005'93b72, - .cos_x = 0x0.fff9e'0039a'36aff'ffeee'bf33f}, - /* 8*/{.x = 0x0.03fff'ebdd4'60cb6'00000'00000, - .sin_x = 0x0.03fff'4133c'4ff26'00004'4fcc2, - .cos_x = 0x0.fff80'00fb3'453ff'ffe7e'e7305}, - /* 9*/{.x = 0x0.04800'1177d'e462c'00000'00000, - .sin_x = 0x0.047ff'1e782'372a3'ffff2'e8bfc, - .cos_x = 0x0.fff5e'00c2c'4df00'00118'2bb96}, - /* 10*/{.x = 0x0.04fff'ff646'8c134'00000'00000, - .sin_x = 0x0.04ffe'b210b'bae64'00000'8f85a, - .cos_x = 0x0.fff38'01a3b'336ff'fff74'fc0f7}, - /* 11*/{.x = 0x0.05800'0632d'1f30c'00000'00000, - .sin_x = 0x0.057fe'4a8a6'89278'0000d'cc498, - .cos_x = 0x0.fff0e'023ff'16b7f'ffff2'68aba}, - /* 12*/{.x = 0x0.05fff'dfdf8'ea7e0'00000'00000, - .sin_x = 0x0.05ffd'9fe5d'db1a4'00009'57cd1, - .cos_x = 0x0.ffee0'0420b'9f680'0010a'bdce4}, - /* 13*/{.x = 0x0.06800'00800'adc5c'00000'00000, - .sin_x = 0x0.067fd'2430b'5fe10'0000d'0562c, - .cos_x = 0x0.ffeae'04a2c'3ef00'00010'e027e}, - /* 14*/{.x = 0x0.06fff'f49c7'9e288'00000'00000, - .sin_x = 0x0.06ffc'61fba'71e5b'ffffc'181b2, - .cos_x = 0x0.ffe78'06905'68fff'ffe3e'213cf}, - /* 15*/{.x = 0x0.077ff'fb5f3'adb28'00000'00000, - .sin_x = 0x0.077fb'966c1'901dc'0000c'b0416, - .cos_x = 0x0.ffe3e'08600'50d80'00055'a3ffb}, - /* 16*/{.x = 0x0.07fff'fdde5'56a60'00000'00000, - .sin_x = 0x0.07ffa'a89a5'53fff'ffff5'f954d, - .cos_x = 0x0.ffe00'0abba'08800'00164'1dc8b}, - /* 17*/{.x = 0x0.08800'1123c'dbd98'00000'00000, - .sin_x = 0x0.087f9'ab8dd'3de28'0001d'48eda, - .cos_x = 0x0.ffdbe'0d064'069ff'fff3c'94f38}, - /* 18*/{.x = 0x0.08fff'fc14b'48998'00000'00000, - .sin_x = 0x0.08ff8'64341'436b7'ffffb'14c9d, - .cos_x = 0x0.ffd78'11391'5a8ff'ffeb7'a3104}, - /* 19*/{.x = 0x0.097ff'f214e'89f40'00000'00000, - .sin_x = 0x0.097f7'03ea5'40567'ffff8'cee6d, - .cos_x = 0x0.ffd2e'15b9f'c6eff'fff39'82204}, - /* 20*/{.x = 0x0.09fff'f0cd8'1dda8'00000'00000, - .sin_x = 0x0.09ff5'8659e'3cff0'00009'4f7bc, - .cos_x = 0x0.ffce0'1aa24'2de80'0016d'19d40}, - /* 21*/{.x = 0x0.0a7ff'f406b'd2580'00000'00000, - .sin_x = 0x0.0a7f3'e54bc'98210'0001e'c606b, - .cos_x = 0x0.ffc8e'20249'be080'00073'157f9}, - /* 22*/{.x = 0x0.0afff'dabcd'e7c88'00000'00000, - .sin_x = 0x0.0aff1'fdc43'7afc8'0000f'774b3, - .cos_x = 0x0.ffc38'27b9d'2dfff'ffffb'4f0f4}, - /* 23*/{.x = 0x0.0b800'01001'49fa0'00000'00000, - .sin_x = 0x0.0b7f0'29bde'8a127'ffff5'cc15c, - .cos_x = 0x0.ffbde'2d7fc'1f37f'ffe39'2604a}, - /* 24*/{.x = 0x0.0bfff'f1a6f'2baa0'00000'00000, - .sin_x = 0x0.0bfed'f22c9'372e8'00008'15134, - .cos_x = 0x0.ffb80'36ab1'94480'00141'72416}, - /* 25*/{.x = 0x0.0c7ff'ffc53'5c218'00000'00000, - .sin_x = 0x0.0c7eb'a80ee'22830'0000d'6e220, - .cos_x = 0x0.ffb1e'3f959'e2080'00114'd3f8b}, - /* 26*/{.x = 0x0.0d000'1e952'4c278'00000'00000, - .sin_x = 0x0.0cfe9'3ca1c'11b78'0001b'a7ec4, - .cos_x = 0x0.ffab8'48d1a'072ff'fff12'e3b7f}, - /* 27*/{.x = 0x0.0d7ff'ee419'bfcd0'00000'00000, - .sin_x = 0x0.0d7e6'4e317'3a927'ffff7'e6f17, - .cos_x = 0x0.ffa4e'576cc'05eff'ffe0e'af9ba}, - /* 28*/{.x = 0x0.0dfff'e6022'951c8'00000'00000, - .sin_x = 0x0.0dfe3'51ced'f47af'fffe9'24978, - .cos_x = 0x0.ff9e0'6573d'053ff'fffa6'ded02}, - /* 29*/{.x = 0x0.0e800'00522'39838'00000'00000, - .sin_x = 0x0.0e7e0'3ff52'7cccf'fffea'2e8a4, - .cos_x = 0x0.ff96e'73163'd8d80'0011e'574b3}, - /* 30*/{.x = 0x0.0efff'f144f'b5978'00000'00000, - .sin_x = 0x0.0efdc'cad6e'dc88f'fffea'aeef0, - .cos_x = 0x0.ff8f8'84aef'82d00'00070'd8acd}, - /* 31*/{.x = 0x0.0f7ff'f8781'75110'00000'00000, - .sin_x = 0x0.0f7d9'2ff83'812b0'0000d'f8417, - .cos_x = 0x0.ff87e'96bff'f5180'000ca'd7ee6}, - /* 32*/{.x = 0x0.0ffff'fe9de'7b858'00000'00000, - .sin_x = 0x0.0ffd5'56160'32c8f'ffff7'f7b41, - .cos_x = 0x0.ff800'aabb1'83e00'00190'9f6d4}, - /* 33*/{.x = 0x0.10800'0511a'a8250'00000'00000, - .sin_x = 0x0.107d1'3c8be'0bd1f'ffffa'286b8, - .cos_x = 0x0.ff77e'c0aaf'3caff'fff0a'2400a}, - /* 34*/{.x = 0x0.10fff'f8ec4'c0cb0'00000'00000, - .sin_x = 0x0.10fcc'ce7e6'35a2f'fffd4'371da, - .cos_x = 0x0.ff6f8'd9f0b'3de7f'fffbc'2e01e}, - /* 35*/{.x = 0x0.117ff'f49c7'e3fe0'00000'00000, - .sin_x = 0x0.117c8'244f6'3988f'fffcb'e3215, - .cos_x = 0x0.ff66e'f4fb7'33180'00107'05281}, - /* 36*/{.x = 0x0.11fff'f8bfa'98c00'00000'00000, - .sin_x = 0x0.11fc3'3c9c4'885a0'00016'7c0ba, - .cos_x = 0x0.ff5e1'11d6e'25b80'00061'66298}, - /* 37*/{.x = 0x0.12800'211f2'089a0'00000'00000, - .sin_x = 0x0.127be'311c2'af590'0002b'84cb2, - .cos_x = 0x0.ff54f'2e983'b837f'fffe7'c5faa}, - /* 38*/{.x = 0x0.13000'24363'3b940'00000'00000, - .sin_x = 0x0.12fb8'b67b7'b10b0'0003d'df8b7, - .cos_x = 0x0.ff4b9'50a15'2e280'001eb'2d1ef}, - /* 39*/{.x = 0x0.137ff'f351d'57080'00000'00000, - .sin_x = 0x0.137b2'bc178'95ab0'00001'710d2, - .cos_x = 0x0.ff41f'796dc'2eb80'00072'fffcb}, - /* 40*/{.x = 0x0.13fff'd507a'25100'00000'00000, - .sin_x = 0x0.13fac'86564'74c8f'ffff3'c1b1e, - .cos_x = 0x0.ff381'a3ef7'f137f'fff01'e9620}, - /* 41*/{.x = 0x0.14800'3b502'7b330'00000'00000, - .sin_x = 0x0.147a6'84d23'8f71f'fffda'd87e1, - .cos_x = 0x0.ff2df'c7144'1a000'0008c'f4644}, - /* 42*/{.x = 0x0.14fff'c8ac5'73f40'00000'00000, - .sin_x = 0x0.14f9f'592ac'37f50'0001a'a3516, - .cos_x = 0x0.ff239'fee17'aeb80'001df'97344}, - /* 43*/{.x = 0x0.15800'075ad'138f0'00000'00000, - .sin_x = 0x0.15798'8a572'95760'0002b'9e51b, - .cos_x = 0x0.ff190'2bb29'cd77f'fffe2'11724}, - /* 44*/{.x = 0x0.16000'000e6'4d440'00000'00000, - .sin_x = 0x0.15f91'1fdf6'2ae7f'fffdb'488e2, - .cos_x = 0x0.ff0e2'61e2f'daf00'00017'86c80}, - /* 45*/{.x = 0x0.16800'37715'33740'00000'00000, - .sin_x = 0x0.16789'9bf56'013df'fffed'eb381, - .cos_x = 0x0.ff030'96618'7a780'00064'e49ff}, - /* 46*/{.x = 0x0.16fff'f1b75'4ff40'00000'00000, - .sin_x = 0x0.16f81'41885'd5ae0'00019'87349, - .cos_x = 0x0.fef7a'd9d69'06b7f'ffe5d'bfa98}, - /* 47*/{.x = 0x0.17800'15e4f'55ba0'00000'00000, - .sin_x = 0x0.17778'f4b6c'5d690'00001'e44cf, - .cos_x = 0x0.feec1'17fd2'4f2ff'fff2e'e4414}, - /* 48*/{.x = 0x0.18000'25637'052c0'00000'00000, - .sin_x = 0x0.17f70'356bb'd60f0'00014'bcccc, - .cos_x = 0x0.fee03'5c3f3'37380'000cf'1f4ed}, - /* 49*/{.x = 0x0.187ff'e355b'99ba0'00000'00000, - .sin_x = 0x0.18766'c5168'c64b0'00031'aedaf, - .cos_x = 0x0.fed41'acbbf'19a7f'ffe6a'f238f}, - /* 50*/{.x = 0x0.19000'03521'fab30'00000'00000, - .sin_x = 0x0.18f5d'54808'3cad0'00023'318db, - .cos_x = 0x0.fec7b'f89b0'22f00'00180'5a62d}, - /* 51*/{.x = 0x0.197ff'fe6f5'c8130'00000'00000, - .sin_x = 0x0.19753'5b5fa'a8b50'00026'72b3d, - .cos_x = 0x0.febb2'4ce60'1227f'fff40'48ec4}, - /* 52*/{.x = 0x0.19fff'da121'1d000'00000'00000, - .sin_x = 0x0.19f48'dd197'80b60'00005'e861b, - .cos_x = 0x0.feae4'a97a6'8397f'fff21'00658}, - /* 53*/{.x = 0x0.1a7ff'f27c4'8d920'00000'00000, - .sin_x = 0x0.1a73e'3378f'7f41f'fffd9'd8df8, - .cos_x = 0x0.fea13'05322'0ddff'fff2a'70f87}, - /* 54*/{.x = 0x0.1afff'f444a'6f750'00000'00000, - .sin_x = 0x0.1af33'0984c'039af'fffcd'ed251, - .cos_x = 0x0.fe93d'68aed'48c7f'ffe21'c7ab1}, - /* 55*/{.x = 0x0.1b7ff'fcc02'a0c30'00000'00000, - .sin_x = 0x0.1b727'7a6cd'a5d4f'fffde'cd2a9, - .cos_x = 0x0.fe863'd1229'9a480'0007d'34aa1}, - /* 56*/{.x = 0x0.1bfff'f24a7'27eb0'00000'00000, - .sin_x = 0x0.1bf1b'6ab5e'eb5a0'00005'094c7, - .cos_x = 0x0.fe786'41866'47d7f'fffaa'106e7}, - /* 57*/{.x = 0x0.1c800'000d8'0aa70'00000'00000, - .sin_x = 0x0.1c70f'034bb'1d0ef'fffc5'3fd71, - .cos_x = 0x0.fe6a4'b5623'4bb00'00143'bc214}, - /* 58*/{.x = 0x0.1d000'03035'0cd40'00000'00000, - .sin_x = 0x0.1cf02'1f60a'a4c30'00025'b1df8, - .cos_x = 0x0.fe5bf'30bfd'42eff'fff54'9d65d}, - /* 59*/{.x = 0x0.1d800'53237'58ed0'00000'00000, - .sin_x = 0x0.1d6f5'145c1'8c56f'fffca'255e7, - .cos_x = 0x0.fe4d5'a9cb7'2f900'0005b'a1583}, - /* 60*/{.x = 0x0.1e000'35f57'54270'00000'00000, - .sin_x = 0x0.1dee7'2702d'45480'00030'735d1, - .cos_x = 0x0.fe3e8'3619c'e0400'001d4'0b595}, - /* 61*/{.x = 0x0.1e7ff'f5492'ddf60'00000'00000, - .sin_x = 0x0.1e6d8'9eb55'43430'00038'7ee1f, - .cos_x = 0x0.fe2f6'cdc32'7a600'00089'5f2ba}, - /* 62*/{.x = 0x0.1f000'11e92'78fb0'00000'00000, - .sin_x = 0x0.1eec9'f956b'8f54f'fffe5'b59b8, - .cos_x = 0x0.fe201'61a9e'de280'001eb'2f16e}, - /* 63*/{.x = 0x0.1f800'206e7'acdf0'00000'00000, - .sin_x = 0x0.1f6ba'ca42d'2dedf'ffff3'd364d, - .cos_x = 0x0.fe107'feaf2'f347f'ffe4c'e7c27}, - /* 64*/{.x = 0x0.20000'477a9'd7f20'00000'00000, - .sin_x = 0x0.1feab'35d44'6b44f'fffe1'83074, - .cos_x = 0x0.fe00a'a0554'd4d00'00052'8f7be}, - /* 65*/{.x = 0x0.207ff'bdaed'35f20'00000'00000, - .sin_x = 0x0.2069a'724a7'acf60'0007a'58a9e, - .cos_x = 0x0.fdf09'60361'7637f'ffe77'23a0a}, - /* 66*/{.x = 0x0.21000'1bf6b'852e0'00000'00000, - .sin_x = 0x0.20e8a'13524'7891f'ffff9'fef65, - .cos_x = 0x0.fde04'0b07f'68500'00136'b9b4e}, - /* 67*/{.x = 0x0.217ff'97de9'fae60'00000'00000, - .sin_x = 0x0.21678'503af'131df'fffeb'e0adf, - .cos_x = 0x0.fdcfa'db855'66800'001ef'5313b}, - /* 68*/{.x = 0x0.21fff'9c4ef'dcc40'00000'00000, - .sin_x = 0x0.21e66'8eeb6'cdddf'fffb0'4451d, - .cos_x = 0x0.fdbed'a3328'fac00'00076'9efa3}, - /* 69*/{.x = 0x0.22800'037ea'20740'00000'00000, - .sin_x = 0x0.22654'a7dbc'165ff'fffba'75e94, - .cos_x = 0x0.fdadc'669b9'69700'00040'e7616}, - /* 70*/{.x = 0x0.23000'2815d'118a0'00000'00000, - .sin_x = 0x0.22e41'f52fb'29980'00008'4cf80, - .cos_x = 0x0.fd9c7'3bfae'e5680'00173'6ecbd}, - /* 71*/{.x = 0x0.23800'39b1f'27200'00000'00000, - .sin_x = 0x0.2362e'a421c'40da0'0000c'31402, - .cos_x = 0x0.fd8ae'1d63f'48700'001a7'0e57e}, - /* 72*/{.x = 0x0.24000'9c594'9c160'00000'00000, - .sin_x = 0x0.23e1b'15c42'80320'0004d'17b8a, - .cos_x = 0x0.fd790'fd341'cfc80'00141'cbe97}, - /* 73*/{.x = 0x0.247ff'cf5d2'73d60'00000'00000, - .sin_x = 0x0.24605'cb433'b7000'00075'b0c92, - .cos_x = 0x0.fd670'11e3b'e6d7f'fff20'5fab6}, - /* 74*/{.x = 0x0.25000'0a8cd'31ae0'00000'00000, - .sin_x = 0x0.24df0'f4c8a'f2b00'00044'33a8c, - .cos_x = 0x0.fd54b'0bb5f'f7200'00064'a7ea6}, - /* 75*/{.x = 0x0.257ff'9e44a'ee9c0'00000'00000, - .sin_x = 0x0.255da'e51cb'6c8bf'fffb6'572b3, - .cos_x = 0x0.fd422'286c9'd2280'001de'2188b}, - /* 76*/{.x = 0x0.26000'079dd'cbec0'00000'00000, - .sin_x = 0x0.25dc5'1351c'2aebf'fffff'0b9f1, - .cos_x = 0x0.fd2f5'30edb'c7eff'ffeca'32339}, - /* 77*/{.x = 0x0.267ff'ffb02'edcc0'00000'00000, - .sin_x = 0x0.265ae'3a066'e9f3f'fffeb'fa1a0, - .cos_x = 0x0.fd1c4'55422'f3f80'0017a'e9912}, - /* 78*/{.x = 0x0.26fff'c7555'e80c0'00000'00000, - .sin_x = 0x0.26d96'97733'1d7ff'fffd5'd5649, - .cos_x = 0x0.fd08f'8c86c'c63ff'ffeb3'bb020}, - /* 79*/{.x = 0x0.27800'2e44c'4e480'00000'00000, - .sin_x = 0x0.2757e'f6e8a'2ec00'0000f'849e8, - .cos_x = 0x0.fcf56'b7644'bf480'000e0'493cf}, - /* 80*/{.x = 0x0.28000'61f28'f34e0'00000'00000, - .sin_x = 0x0.27d66'864cc'52a5f'fffb1'173f8, - .cos_x = 0x0.fce19'f6006'6b680'000d8'8e520}, - /* 81*/{.x = 0x0.287ff'f352c'80aa0'00000'00000, - .sin_x = 0x0.2854c'd6088'c99df'fffeb'2e37a, - .cos_x = 0x0.fccd9'5a74f'15a7f'ffe31'0c8f7}, - /* 82*/{.x = 0x0.29001'23490'8ee80'00000'00000, - .sin_x = 0x0.28d34'1dca5'256a0'00024'bea44, - .cos_x = 0x0.fcb94'8a02f'8bb80'0012a'f258a}, - /* 83*/{.x = 0x0.29800'1028a'ae740'00000'00000, - .sin_x = 0x0.29518'868fa'78c3f'fffba'a983b, - .cos_x = 0x0.fca4c'22f70'09f80'0000a'c47d4}, - /* 84*/{.x = 0x0.2a000'0d9eb'50a40'00000'00000, - .sin_x = 0x0.29cfd'5728a'178bf'fffc9'd08cc, - .cos_x = 0x0.fc8ff'9de22'cd7ff'ffeba'd3bec}, - /* 85*/{.x = 0x0.2a7ff'a4a1e'7e820'00000'00000, - .sin_x = 0x0.2a4e1'1b787'363a0'00073'a1c2b, - .cos_x = 0x0.fc7af'377e1'e887f'ffeb9'50e4d}, - /* 86*/{.x = 0x0.2b000'b9bbe'af0a0'00000'00000, - .sin_x = 0x0.2acc5'af578'f9b3f'fffb8'3cee4, - .cos_x = 0x0.fc65a'9fb53'178ff'fff8d'42f91}, - /* 87*/{.x = 0x0.2b800'57a87'05700'00000'00000, - .sin_x = 0x0.2b4a8'2610b'352e0'00021'bfab7, - .cos_x = 0x0.fc502'54b65'2b180'00127'c4dde}, - /* 88*/{.x = 0x0.2c000'0cce7'95d80'00000'00000, - .sin_x = 0x0.2bc8a'06924'ffcdf'fffc2'7529d, - .cos_x = 0x0.fc3a6'14deb'ec800'0005b'61b8e}, - /* 89*/{.x = 0x0.2c7ff'fed15'f4b80'00000'00000, - .sin_x = 0x0.2c46b'73f04'a8a60'00002'17ae1, - .cos_x = 0x0.fc245'd9e0b'37580'0006c'5a770}, - /* 90*/{.x = 0x0.2cfff'b5a34'6b260'00000'00000, - .sin_x = 0x0.2cc4b'f5ee5'9a1a0'00055'713b2, - .cos_x = 0x0.fc0e1'b8b8f'7b0ff'ffe41'0c8b0}, - /* 91*/{.x = 0x0.2d7ff'8be37'588a0'00000'00000, - .sin_x = 0x0.2d42b'e3d5c'14a7f'fff82'a7b1b, - .cos_x = 0x0.fbf79'a2125'aa180'001cf'9ba86}, - /* 92*/{.x = 0x0.2e000'f3b74'96740'00000'00000, - .sin_x = 0x0.2dc0c'a7d60'b5140'00040'05b90, - .cos_x = 0x0.fbe0d'53f13'41000'000c8'826f7}, - /* 93*/{.x = 0x0.2e7ff'eead1'2ccc0'00000'00000, - .sin_x = 0x0.2e3ea'51eba'79c1f'fff9e'daef2, - .cos_x = 0x0.fbc9d'8512a'82480'00059'6c2af}, - /* 94*/{.x = 0x0.2efff'f885b'd58a0'00000'00000, - .sin_x = 0x0.2ebc8'4d8b4'87320'00027'a566c, - .cos_x = 0x0.fbb29'96994'78780'00049'a3533}, - /* 95*/{.x = 0x0.2f7ff'e4cde'29960'00000'00000, - .sin_x = 0x0.2f3a5'71287'136a0'00050'a29da, - .cos_x = 0x0.fb9b1'bec02'd4a7f'ffe1b'bc979}, - /* 96*/{.x = 0x0.30000'78aa8'3fde0'00000'00000, - .sin_x = 0x0.2fb82'7c847'97320'0003c'c946d, - .cos_x = 0x0.fb835'd9514'd41ff'fff42'21812}, - /* 97*/{.x = 0x0.307ff'eff0d'692a0'00000'00000, - .sin_x = 0x0.3035d'b1659'6a080'00071'0876c, - .cos_x = 0x0.fb6b6'3adbd'89880'000a8'8162c}, - /* 98*/{.x = 0x0.31000'3a8d3'c93e0'00000'00000, - .sin_x = 0x0.30b38'f5031'68f80'00005'404cb, - .cos_x = 0x0.fb532'870ad'3497f'ffe83'4f5cb}, - /* 99*/{.x = 0x0.31800'15878'03e00'00000'00000, - .sin_x = 0x0.31313'08369'ca940'00046'4695a, - .cos_x = 0x0.fb3aa'fb177'd8380'000dc'e49e0}, - /*100*/{.x = 0x0.31fff'b14cd'eab60'00000'00000, - .sin_x = 0x0.31aec'18ab4'20340'00060'd84ee, - .cos_x = 0x0.fb21f'8ea21'8c5ff'ffe74'820fb}, - /*101*/{.x = 0x0.32800'140b1'ec260'00000'00000, - .sin_x = 0x0.322c5'25955'e2edf'fffc1'3f681, - .cos_x = 0x0.fb090'0f082'b8cff'ffeda'836e3}, - /*102*/{.x = 0x0.32fff'f81df'223e0'00000'00000, - .sin_x = 0x0.32a9c'ed90c'bca9f'fffe4'0d9e6, - .cos_x = 0x0.faefc'bbfaf'bd4ff'ffffb'59266}, - /*103*/{.x = 0x0.337ff'c4bc4'f38e0'00000'00000, - .sin_x = 0x0.33273'd3ef2'a18e0'00016'9e1e7, - .cos_x = 0x0.fad65'81f9d'd997f'ffec0'0114b}, - /*104*/{.x = 0x0.34000'10d46'63920'00000'00000, - .sin_x = 0x0.33a4a'6a95a'afe3f'fff85'89377, - .cos_x = 0x0.fabca'431a9'07080'000d1'c1706}, - /*105*/{.x = 0x0.347ff'da97e'e2b20'00000'00000, - .sin_x = 0x0.3421f'b300d'37dbf'ffffc'5de16, - .cos_x = 0x0.faa2b'3388b'a4c00'0001c'91213}, - /*106*/{.x = 0x0.34fff'fb1ed'79600'00000'00000, - .sin_x = 0x0.349f4'7fd83'0505f'fffc2'efd2f, - .cos_x = 0x0.fa888'27cb9'a517f'ffe64'1dea5}, - /*107*/{.x = 0x0.35800'0184e'9ba00'00000'00000, - .sin_x = 0x0.351c8'609c7'38e60'00067'6ec75, - .cos_x = 0x0.fa6e1'37386'5d97f'fff68'0e6dc}, - /*108*/{.x = 0x0.35fff'f09ee'14c40'00000'00000, - .sin_x = 0x0.3599b'56256'6533f'fffc9'2329f, - .cos_x = 0x0.fa536'61c77'48fff'fff2a'4b298}, - /*109*/{.x = 0x0.367ff'f7e03'dd3e0'00000'00000, - .sin_x = 0x0.3616d'8ce6d'e80df'fffe0'8d556, - .cos_x = 0x0.fa387'9dff0'eb2ff'ffff7'c12bf}, - /*110*/{.x = 0x0.36fff'eccef'cb920'00000'00000, - .sin_x = 0x0.3693e'd964a'88f20'00006'853ef, - .cos_x = 0x0.fa1d4'f535c'27b7f'fff9b'd6d72}, - /*111*/{.x = 0x0.37800'0871c'6a4a0'00000'00000, - .sin_x = 0x0.3710f'71613'9153f'fffa9'50cce, - .cos_x = 0x0.fa01e'5baed'f1800'00146'17a06}, - /*112*/{.x = 0x0.38000'0f31f'a0de0'00000'00000, - .sin_x = 0x0.378df'18b0d'2ffa0'0003a'04179, - .cos_x = 0x0.f9e63'de8db'f27ff'fff71'edae8}, - /*113*/{.x = 0x0.387ff'ca493'61700'00000'00000, - .sin_x = 0x0.380ad'97f40'e597f'ffff4'1cdff, - .cos_x = 0x0.f9ca5'8a5d5'10dff'ffe75'eb386}, - /*114*/{.x = 0x0.38fff'd82c6'69e00'00000'00000, - .sin_x = 0x0.3887b'87dbb'6569f'fffa3'24984, - .cos_x = 0x0.f9ae3'3cfe4'f0380'0010c'0a016}, - /*115*/{.x = 0x0.397ff'ecce9'1d3e0'00000'00000, - .sin_x = 0x0.39048'9c350'97f80'00022'afd60, - .cos_x = 0x0.f991d'07586'2a27f'ffeda'fafb7}, - /*116*/{.x = 0x0.3a000'076e0'dcb60'00000'00000, - .sin_x = 0x0.39814'd24dc'34640'00005'38fa7, - .cos_x = 0x0.f9752'e9feb'e33ff'fff82'411a2}, - /*117*/{.x = 0x0.3a800'104f0'03f00'00000'00000, - .sin_x = 0x0.39fe0'1112d'f9360'0005b'fcb52, - .cos_x = 0x0.f9584'eabb8'a5d7f'fffd8'10f07}, - /*118*/{.x = 0x0.3b000'34f62'f3580'00000'00000, - .sin_x = 0x0.3a7aa'82e83'65020'00078'e1f8e, - .cos_x = 0x0.f93b2'ffb65'268ff'fff77'3b76e}, - /*119*/{.x = 0x0.3b800'177e2'30d20'00000'00000, - .sin_x = 0x0.3af73'ca727'd06c0'00019'b3d7c, - .cos_x = 0x0.f91dd'3edba'f9bff'fffdb'5fb17}, - /*120*/{.x = 0x0.3bfff'7cebe'56860'00000'00000, - .sin_x = 0x0.3b73b'ac780'8ec9f'fffe7'96979, - .cos_x = 0x0.f9003'b6b41'8257f'fffd5'6d000}, - /*121*/{.x = 0x0.3c7ff'dc668'dce00'00000'00000, - .sin_x = 0x0.3bf03'93ec3'1afdf'fffc9'ed9f3, - .cos_x = 0x0.f8e26'10966'4d680'00112'27be7}, - /*122*/{.x = 0x0.3d000'39421'01160'00000'00000, - .sin_x = 0x0.3c6ca'88fce'f8ce0'00060'd8e05, - .cos_x = 0x0.f8c44'8730d'685ff'ffecd'b9e09}, - /*123*/{.x = 0x0.3d7ff'd3494'88e00'00000'00000, - .sin_x = 0x0.3ce8f'cf093'18aa0'0004f'fbbe2, - .cos_x = 0x0.f8a5f'48bb1'3f180'001c1'a7c74}, - /*124*/{.x = 0x0.3e000'3758b'bd380'00000'00000, - .sin_x = 0x0.3d654'e5ac9'72f7f'fff90'c368b, - .cos_x = 0x0.f8875'f79cb'84680'001d7'99a19}, - /*125*/{.x = 0x0.3e7ff'e9b6e'6ab20'00000'00000, - .sin_x = 0x0.3de18'5a367'832ff'fff80'a078a, - .cos_x = 0x0.f8688'eef39'8c07f'ffe07'8e72a}, - /*126*/{.x = 0x0.3f000'1041b'266e0'00000'00000, - .sin_x = 0x0.3e5db'47f9a'1d320'00056'34fb1, - .cos_x = 0x0.f8497'e8a65'1bdff'ffe9a'9a686}, - /*127*/{.x = 0x0.3f7ff'e793c'480c0'00000'00000, - .sin_x = 0x0.3ed9c'ef709'8a4e0'00025'80504, - .cos_x = 0x0.f82a3'1480e'838ff'ffe8e'e74b8}, - /*128*/{.x = 0x0.40000'5ba18'3bb00'00000'00000, - .sin_x = 0x0.3f55e'3366a'967e0'00010'a5a62, - .cos_x = 0x0.f80aa'39137'aef7f'ffe33'b7047}, - /*129*/{.x = 0x0.40801'15015'68940'00000'00000, - .sin_x = 0x0.3fd1e'bd0a4'3ac60'00022'66de1, - .cos_x = 0x0.f7ead'6bc31'4a100'0014e'faa18}, - /*130*/{.x = 0x0.40fff'8ecd9'881c0'00000'00000, - .sin_x = 0x0.404dc'1a189'b9800'00063'06c39, - .cos_x = 0x0.f7cad'4ea7b'886ff'ffe5f'ac453}, - /*131*/{.x = 0x0.41801'034f3'bdb80'00000'00000, - .sin_x = 0x0.40c9b'58331'48540'000bc'70de8, - .cos_x = 0x0.f7aa8'92d4a'19c7f'ffe53'5fcc6}, - /*132*/{.x = 0x0.42001'357ac'f0c80'00000'00000, - .sin_x = 0x0.41458'5b199'fd100'0004e'63deb, - .cos_x = 0x0.f78a0'491e6'8957f'fff55'b4faf}, - /*133*/{.x = 0x0.42800'713dd'dfe00'00000'00000, - .sin_x = 0x0.41c13'6ab92'4f8bf'fff4f'02b52, - .cos_x = 0x0.f7694'605a3'86300'000c0'fd82a}, - /*134*/{.x = 0x0.42fff'a4074'c7000'00000'00000, - .sin_x = 0x0.423cd'6adad'76fc0'0002a'8b5a6, - .cos_x = 0x0.f7484'9d012'084ff'ffee2'5e391}, - /*135*/{.x = 0x0.43800'4d93e'2da80'00000'00000, - .sin_x = 0x0.42b87'cc0dc'0e13f'fff12'6a23a, - .cos_x = 0x0.f7270'9ba0d'2fe00'00178'1f2ab}, - /*136*/{.x = 0x0.43fff'dd3b0'e3b80'00000'00000, - .sin_x = 0x0.43340'12301'25c00'0007f'3d85d, - .cos_x = 0x0.f7059'07011'4217f'ffeeb'928d4}, - /*137*/{.x = 0x0.44800'c6752'72b80'00000'00000, - .sin_x = 0x0.43af8'98e6a'15a3f'fffab'c1e98, - .cos_x = 0x0.f6e3d'3b593'20580'000af'476b5}, - /*138*/{.x = 0x0.44fff'3da73'9ecc0'00000'00000, - .sin_x = 0x0.442ad'b5339'43f00'00091'a20cf, - .cos_x = 0x0.f6c1e'39f43'8e880'0011c'98409}, - /*139*/{.x = 0x0.45800'27f52'35fc0'00000'00000, - .sin_x = 0x0.44a64'1d619'd56c0'000c0'a760a, - .cos_x = 0x0.f69fa'b6d7c'4c680'0018b'84a0e}, - /*140*/{.x = 0x0.46000'28ccd'56440'00000'00000, - .sin_x = 0x0.45218'91ee0'1c3bf'fff29'15b20, - .cos_x = 0x0.f67d3'97666'a3c7f'fff13'df668}, - /*141*/{.x = 0x0.46800'396df'ea1c0'00000'00000, - .sin_x = 0x0.459cc'01253'b1c00'000ae'26db0, - .cos_x = 0x0.f65a8'99b47'6fcff'ffe9a'c4db7}, - /*142*/{.x = 0x0.46fff'f1e54'46140'00000'00000, - .sin_x = 0x0.4617e'05198'cafbf'fffe4'a9a13, - .cos_x = 0x0.f6379'daac1'f2aff'fff1b'63ea3}, - /*143*/{.x = 0x0.477ff'6db31'aa6c0'00000'00000, - .sin_x = 0x0.4692e'b6724'e86ff'fff9c'30dfa, - .cos_x = 0x0.f6147'53c35'63cff'ffe03'aa677}, - /*144*/{.x = 0x0.47fff'9bd9e'231c0'00000'00000, - .sin_x = 0x0.470de'f8fae'74440'0004a'84e13, - .cos_x = 0x0.f5f10'c3877'eec80'0005c'24f76}, - /*145*/{.x = 0x0.48800'2a5ca'1c640'00000'00000, - .sin_x = 0x0.4788e'7bc44'c43ff'ffff6'96818, - .cos_x = 0x0.f5cd6'406e2'b5f7f'fff59'e16c6}, - /*146*/{.x = 0x0.48fff'b7f7e'61240'00000'00000, - .sin_x = 0x0.4803b'e9baa'1917f'fffdf'e43a1, - .cos_x = 0x0.f5a98'2ddb6'663ff'ffeb7'8baec}, - /*147*/{.x = 0x0.49800'4b4a2'f9980'00000'00000, - .sin_x = 0x0.487e9'32c2b'3d200'000f3'34953, - .cos_x = 0x0.f5855'faf39'57dff'ffe85'128c4}, - /*148*/{.x = 0x0.4a000'13818'a8800'00000'00000, - .sin_x = 0x0.48f94'96f90'9af40'00031'971a1, - .cos_x = 0x0.f5610'2b4e6'a2480'001db'd6dba}, - /*149*/{.x = 0x0.4a800'e393d'1c500'00000'00000, - .sin_x = 0x0.4973f'd41ce'b0b7f'fff36'5548a, - .cos_x = 0x0.f53c6'3aa5c'e3980'00050'fbebd}, - /*150*/{.x = 0x0.4b000'12b1a'14b40'00000'00000, - .sin_x = 0x0.49ee8'5c04d'80380'000d7'8af5d, - .cos_x = 0x0.f5178'ecaea'2fd80'00017'5e99a}, - /*151*/{.x = 0x0.4b802'3122d'04700'00000'00000, - .sin_x = 0x0.4a692'8b521'1e87f'fff74'b4cd3, - .cos_x = 0x0.f4f26'f0bec'a2480'000a6'2a6be}, - /*152*/{.x = 0x0.4c000'20192'43b40'00000'00000, - .sin_x = 0x0.4ae37'8fc15'c9040'0008b'd0bd4, - .cos_x = 0x0.f4cd2'58701'cf07f'ffec5'3d8d0}, - /*153*/{.x = 0x0.4c7ff'501c2'55ac0'00000'00000, - .sin_x = 0x0.4b5dc'9c0fc'051bf'fffe2'aca41, - .cos_x = 0x0.f4a79'90624'86f80'0013b'a9616}, - /*154*/{.x = 0x0.4cfff'28c54'a8300'00000'00000, - .sin_x = 0x0.4bd81'1c381'935ff'fff91'7fdef, - .cos_x = 0x0.f481c'c485d'e467f'ffe4a'f0311}, - /*155*/{.x = 0x0.4d7fe'8bc24'806c0'00000'00000, - .sin_x = 0x0.4c523'fcb99'50d00'0005b'd0bdb, - .cos_x = 0x0.f45bc'49dcd'5927f'fff01'cb92f}, - /*156*/{.x = 0x0.4dffe'80029'f25c0'00000'00000, - .sin_x = 0x0.4ccc6'36b37'1c1c0'00055'0f240, - .cos_x = 0x0.f4357'd2c6b'1ebff'ffee4'd517d}, - /*157*/{.x = 0x0.4e800'39511'76640'00000'00000, - .sin_x = 0x0.4d468'ed6b3'c587f'fffbd'7bbdf, - .cos_x = 0x0.f40ef'0223d'c4b80'00055'599b0}, - /*158*/{.x = 0x0.4f000'87c8f'9ee00'00000'00000, - .sin_x = 0x0.4dc09'14d0d'02980'00079'3f0a5, - .cos_x = 0x0.f3e82'cdd3f'de47f'ffe57'037eb}, - /*159*/{.x = 0x0.4f7fe'5e6c7'46040'00000'00000, - .sin_x = 0x0.4e3a5'ab80d'cd0ff'fff6f'11059, - .cos_x = 0x0.f3c13'8aaba'81d7f'fff57'97dcd}, - /*160*/{.x = 0x0.4ffff'e5ff9'43840'00000'00000, - .sin_x = 0x0.4eb44'8d1c6'b7e00'00062'b103c, - .cos_x = 0x0.f399f'580b0'f3c00'001f3'77f1e}, - /*161*/{.x = 0x0.50800'0c35a'fcf40'00000'00000, - .sin_x = 0x0.4f2e0'e3652'2387f'fff4e'0847f, - .cos_x = 0x0.f3727'c2d94'a12ff'fff57'e6d5e}, - /*162*/{.x = 0x0.50fff'dad69'8b880'00000'00000, - .sin_x = 0x0.4fa7b'a9ada'0c2bf'fff23'f97f2, - .cos_x = 0x0.f34ac'7af9b'f6800'001af'5379d}, - /*163*/{.x = 0x0.51800'1bc24'31540'00000'00000, - .sin_x = 0x0.50215'9df31'acac0'00009'fda83, - .cos_x = 0x0.f322d'4257d'6ae00'0015b'95ea4}, - /*164*/{.x = 0x0.51ffe'9ec12'afec0'00000'00000, - .sin_x = 0x0.509ac'aa607'395ff'fffeb'11824, - .cos_x = 0x0.f2faa'c954b'd5a7f'fff7b'4585d}, - /*165*/{.x = 0x0.527ff'71c83'47b00'00000'00000, - .sin_x = 0x0.51144'a6688'43f7f'fff69'1c102, - .cos_x = 0x0.f2d23'ca4f2'd9f7f'ffe1a'8e891}, - /*166*/{.x = 0x0.53000'88851'ce980'00000'00000, - .sin_x = 0x0.518db'9e0b5'e6480'000e3'6becd, - .cos_x = 0x0.f2a98'e9a68'3f7ff'fff17'e90ee}, - /*167*/{.x = 0x0.53800'23ba1'7c300'00000'00000, - .sin_x = 0x0.5206f'e7994'aa200'000d2'a774f, - .cos_x = 0x0.f280a'b6eb6'43480'0019b'b47d8}, - /*168*/{.x = 0x0.54001'4b44f'e9180'00000'00000, - .sin_x = 0x0.52804'605c4'b15bf'ffffa'b7014, - .cos_x = 0x0.f2578'3ad31'85600'001e0'785e0}, - /*169*/{.x = 0x0.547ff'732a6'52ac0'00000'00000, - .sin_x = 0x0.52f94'b88a1'ce0ff'ffffd'53c6c, - .cos_x = 0x0.f22e2'ed13c'910ff'ffe24'083d2}, - /*170*/{.x = 0x0.55000'05e6e'3e680'00000'00000, - .sin_x = 0x0.53726'0e762'7c5c0'00030'6f79f, - .cos_x = 0x0.f2049'0ea22'eceff'ffe39'5e8cc}, - /*171*/{.x = 0x0.55800'0fd71'c0140'00000'00000, - .sin_x = 0x0.53eb5'952bb'0ec7f'fff58'2a07e, - .cos_x = 0x0.f1dab'946ba'79e00'00194'1238d}, - /*172*/{.x = 0x0.55fff'1652a'1fe00'00000'00000, - .sin_x = 0x0.54642'd73cb'3ba7f'ffff3'd1834, - .cos_x = 0x0.f1b0a'a848c'5abff'ffe24'708ba}, - /*173*/{.x = 0x0.567ff'735a1'c19c0'00000'00000, - .sin_x = 0x0.54dd0'0b3cc'cd000'0009f'6a476, - .cos_x = 0x0.f1865'84c13'af780'00075'bfd4b}, - /*174*/{.x = 0x0.57000'022b3'c2c80'00000'00000, - .sin_x = 0x0.5555c'1a9ac'1bd7f'fff94'f7002, - .cos_x = 0x0.f15bc'8a2ff'aec80'0019d'a28b4}, - /*175*/{.x = 0x0.57800'24ce3'28000'00000'00000, - .sin_x = 0x0.55ce6'6e85f'1047f'fffd4'6bc5d, - .cos_x = 0x0.f130f'edeb8'f8a00'001e4'f1bc5}, - /*176*/{.x = 0x0.58001'9d5e5'17500'00000'00000, - .sin_x = 0x0.56470'ad182'81000'00072'9c5f6, - .cos_x = 0x0.f105f'19861'905ff'ffe7d'c7bef}, - /*177*/{.x = 0x0.587ff'feb3d'df180'00000'00000, - .sin_x = 0x0.56bf6'a9a47'431ff'fff7b'd7b12, - .cos_x = 0x0.f0dab'8bc3d'a8aff'ffebf'3e192}, - /*178*/{.x = 0x0.59001'3ab56'97380'00000'00000, - .sin_x = 0x0.5737d'fab4f'80f3f'fffa4'b660e, - .cos_x = 0x0.f0af3'432d1'7f8ff'ffe17'956e7}, - /*179*/{.x = 0x0.59800'12fe9'e5ac0'00000'00000, - .sin_x = 0x0.57b01'afc35'6c4c0'0005c'414e5, - .cos_x = 0x0.f0838'08390'7a280'000be'd33c8}, - /*180*/{.x = 0x0.59fff'769e0'd7400'00000'00000, - .sin_x = 0x0.58284'89471'2e700'0008b'a3a51, - .cos_x = 0x0.f0578'dc513'9b200'000bd'f1e82}, - /*181*/{.x = 0x0.5a800'96df4'c2e40'00000'00000, - .sin_x = 0x0.58a07'a3828'a3c3f'fff40'6bfa6, - .cos_x = 0x0.f02b5'55afd'0f2ff'ffe59'1e931}, - /*182*/{.x = 0x0.5b000'2a723'0a600'00000'00000, - .sin_x = 0x0.59187'e6f68'f9e00'0007a'8edda, - .cos_x = 0x0.effee'97614'97f00'00182'bd4b4}, - /*183*/{.x = 0x0.5b7ff'44111'81d40'00000'00000, - .sin_x = 0x0.59906'53ef6'ac100'000c0'9cc12, - .cos_x = 0x0.efd24'44277'1737f'ffe3c'eddd1}, - /*184*/{.x = 0x0.5bfff'f0b95'698c0'00000'00000, - .sin_x = 0x0.5a084'd4415'fea40'00019'24438, - .cos_x = 0x0.efa55'a4be1'a1580'00183'28ca5}, - /*185*/{.x = 0x0.5c7ff'dec0b'4f200'00000'00000, - .sin_x = 0x0.5a801'39e3b'6fbc0'0008c'9a239, - .cos_x = 0x0.ef783'8981b'81d80'00140'01e43}, - /*186*/{.x = 0x0.5d001'dd59d'c2ec0'00000'00000, - .sin_x = 0x0.5af7e'239eb'e4c00'00083'1bebe, - .cos_x = 0x0.ef4ac'f4a26'6b580'001bf'865b8}, - /*187*/{.x = 0x0.5d800'59105'c5680'00000'00000, - .sin_x = 0x0.5b6f6'592c9'8ebc0'00099'81654, - .cos_x = 0x0.ef1d3'e1c87'ceb80'001c9'70887}, - /*188*/{.x = 0x0.5dfff'0b477'f5340'00000'00000, - .sin_x = 0x0.5be6d'54661'83ebf'ffff7'3a63a, - .cos_x = 0x0.eeef7'00535'a9f80'001ac'd4da0}, - /*189*/{.x = 0x0.5e800'88139'61ec0'00000'00000, - .sin_x = 0x0.5c5e5'7aee4'fa8ff'fff07'af176, - .cos_x = 0x0.eec15'62835'6b780'00006'f7741}, - /*190*/{.x = 0x0.5efff'95204'63e00'00000'00000, - .sin_x = 0x0.5cd59'ea298'ec400'0005f'ab1c5, - .cos_x = 0x0.ee930'ea7c3'9b87f'ffe74'4c831}, - /*191*/{.x = 0x0.5f800'7580e'12340'00000'00000, - .sin_x = 0x0.5d4ce'9995f'61a7f'fffd4'ceb9e, - .cos_x = 0x0.ee648'0eb98'778ff'fffda'ab2db}, - /*192*/{.x = 0x0.5ffff'6ea01'09880'00000'00000, - .sin_x = 0x0.5dc40'0e17d'978ff'fff0e'cd00a, - .cos_x = 0x0.ee35c'2b0bd'6db80'00067'2d2c4}, - /*193*/{.x = 0x0.607fe'b7395'ec7c0'00000'00000, - .sin_x = 0x0.5e3b0'55cfa'76a00'00084'71e76, - .cos_x = 0x0.ee06c'723a9'26e00'0014c'54339}, - /*194*/{.x = 0x0.60fff'dba49'12980'00000'00000, - .sin_x = 0x0.5eb20'def0d'5e780'00001'484d3, - .cos_x = 0x0.edd78'51f6d'9fe7f'ffeea'93d74}, - /*195*/{.x = 0x0.61800'45f85'5e580'00000'00000, - .sin_x = 0x0.5f28f'401bc'b227f'fff52'74496, - .cos_x = 0x0.eda80'be71d'ac380'00177'695bc}, - /*196*/{.x = 0x0.62001'91bf0'b8a40'00000'00000, - .sin_x = 0x0.5f9fc'f59cd'2937f'fff50'a3125, - .cos_x = 0x0.ed785'1fb3a'9317f'ffed5'ea9c4}, - /*197*/{.x = 0x0.62800'ab01c'a05c0'00000'00000, - .sin_x = 0x0.60167'22bf7'1c53f'fff01'4f649, - .cos_x = 0x0.ed486'9d035'a6980'000ab'7bf6a}, - /*198*/{.x = 0x0.62fff'ca946'245c0'00000'00000, - .sin_x = 0x0.608cf'd5b76'c6b40'000ad'85b84, - .cos_x = 0x0.ed184'63a5d'ef900'000d8'0b24f}, - /*199*/{.x = 0x0.63800'17379'f0e00'00000'00000, - .sin_x = 0x0.61038'1d6c2'75240'00058'261c0, - .cos_x = 0x0.ece7e'049fc'9877f'fffd8'2c466}, - /*200*/{.x = 0x0.63fff'fcf38'47d80'00000'00000, - .sin_x = 0x0.6179e'81cee'9c1ff'fffc4'5005c, - .cos_x = 0x0.ecb74'18e20'36500'0005f'eefae}, - /*201*/{.x = 0x0.64800'491ed'3b8c0'00000'00000, - .sin_x = 0x0.61f03'bef89'0f1c0'000aa'e8bb0, - .cos_x = 0x0.ec866'532f3'ddaff'ffe7d'd4451}, - /*202*/{.x = 0x0.64fff'519ed'8dd40'00000'00000, - .sin_x = 0x0.62666'49766'4cd7f'fffd4'ccd8b, - .cos_x = 0x0.ec555'5785a'99e00'0006b'84ce5}, - /*203*/{.x = 0x0.657ff'f7411'f6440'00000'00000, - .sin_x = 0x0.62dc8'c7cf8'10e00'000c3'd9324, - .cos_x = 0x0.ec240'0be04'bdc7f'ffff0'a63f6}, - /*204*/{.x = 0x0.66000'31250'fdb80'00000'00000, - .sin_x = 0x0.63529'5728b'72f80'0002c'8cc2c, - .cos_x = 0x0.ebf27'38df8'e38ff'ffe43'41ac2}, - /*205*/{.x = 0x0.667ff'a0f97'18e00'00000'00000, - .sin_x = 0x0.63c87'9f0cc'cbcff'fffe0'a9e98, - .cos_x = 0x0.ebc0b'04a1f'f6b00'00190'71b26}, - /*206*/{.x = 0x0.67000'2c790'd7c80'00000'00000, - .sin_x = 0x0.643e5'5d0b7'b95c0'00056'f411f, - .cos_x = 0x0.eb8ea'b2d29'6b17f'fff8b'b0af5}, - /*207*/{.x = 0x0.677ff'67baf'edc00'00000'00000, - .sin_x = 0x0.64b40'54b83'5f980'0007e'2530c, - .cos_x = 0x0.eb5c7'368cc'a4900'001f1'a32a3}, - /*208*/{.x = 0x0.68000'31988'7f780'00000'00000, - .sin_x = 0x0.6529b'280c7'7e7c0'00079'2668c, - .cos_x = 0x0.eb29f'7005d'ebeff'ffeba'03456}, - /*209*/{.x = 0x0.687fe'77dc2'8e000'00000'00000, - .sin_x = 0x0.659f2'17b1d'2f33f'ffff1'cdee1, - .cos_x = 0x0.eaf74'fb99a'a0500'001e5'34d0d}, - /*210*/{.x = 0x0.68fff'aa132'7b900'00000'00000, - .sin_x = 0x0.6614a'1f743'74940'000f5'cb52b, - .cos_x = 0x0.eac45'b2a68'e1480'0013c'9e46c}, - /*211*/{.x = 0x0.69800'024bd'b8a80'00000'00000, - .sin_x = 0x0.6689f'c6abe'74a3f'fff0d'20236, - .cos_x = 0x0.ea913'14da0'a30ff'ffe22'd29e3}, - /*212*/{.x = 0x0.69fff'ff861'd64c0'00000'00000, - .sin_x = 0x0.66ff3'804a6'b7840'00070'5286c, - .cos_x = 0x0.ea5dc'f1141'6bd80'001c4'68665}, - /*213*/{.x = 0x0.6a7ff'b8a74'18240'00000'00000, - .sin_x = 0x0.67745'5fa30'6d0bf'fff20'625d2, - .cos_x = 0x0.ea2a3'3f5e9'20bff'fff83'6b7fd}, - /*214*/{.x = 0x0.6afff'f2da8'095c0'00000'00000, - .sin_x = 0x0.67e96'173ca'6ea3f'fff1b'ab755, - .cos_x = 0x0.e9f65'b0dd3'1ae80'000a9'c3695}, - /*215*/{.x = 0x0.6b7ff'9128e'2a400'00000'00000, - .sin_x = 0x0.685e4'a0bf8'c6b7f'fff06'da942, - .cos_x = 0x0.e9c24'b9dba'ed37f'ffe88'11ec6}, - /*216*/{.x = 0x0.6c000'1a06f'07600'00000'00000, - .sin_x = 0x0.68d32'5ef00'3817f'fff2d'8e04d, - .cos_x = 0x0.e98df'bc1e7'4d300'000d2'd846e}, - /*217*/{.x = 0x0.6c7ff'45d9b'fcfc0'00000'00000, - .sin_x = 0x0.6947d'3b72a'9067f'ffffe'348af, - .cos_x = 0x0.e9597'a7381'60cff'fff22'1e520}, - /*218*/{.x = 0x0.6d001'a5013'1b340'00000'00000, - .sin_x = 0x0.69bc9'5d5ac'6cfbf'fff0a'2a818, - .cos_x = 0x0.e924a'9b444'06bff'ffe4a'b7246}, - /*219*/{.x = 0x0.6d7ff'c8dac'c3ac0'00000'00000, - .sin_x = 0x0.6a30f'fda0e'75b40'00086'258f0, - .cos_x = 0x0.e8efb'a9f2a'a787f'ffe45'7f06f}, - /*220*/{.x = 0x0.6e000'64c38'239c0'00000'00000, - .sin_x = 0x0.6aa57'3482b'bf4c0'000a7'00cb3, - .cos_x = 0x0.e8ba8'0f44b'84980'001ae'f6cc1}, - /*221*/{.x = 0x0.6e800'c34f3'81200'00000'00000, - .sin_x = 0x0.6b19c'88d1a'9f480'0000f'9d5e4, - .cos_x = 0x0.e8850'eacb2'176ff'ffeab'acf04}, - /*222*/{.x = 0x0.6f000'68800'25ac0'00000'00000, - .sin_x = 0x0.6b8df'885e0'e6c00'00099'c8f7c, - .cos_x = 0x0.e84f6'71c75'0e17f'fff06'b0368}, - /*223*/{.x = 0x0.6f7ff'dde94'bdc80'00000'00000, - .sin_x = 0x0.6c020'ae872'fa7ff'fff51'2ae5e, - .cos_x = 0x0.e8198'6c00e'97f00'00081'5259d}, - /*224*/{.x = 0x0.6ffff'980ae'5eec0'00000'00000, - .sin_x = 0x0.6c760'63220'1f1c0'00003'fec11, - .cos_x = 0x0.e7e36'a934a'c7f00'00027'c6ef0}, - /*225*/{.x = 0x0.70800'33d4a'684c0'00000'00000, - .sin_x = 0x0.6ce9f'3239a'6c6c0'00078'5cf32, - .cos_x = 0x0.e7ad0'e718f'e307f'fffc7'0fc0b}, - /*226*/{.x = 0x0.71000'7de5c'1e280'00000'00000, - .sin_x = 0x0.6d5dc'0383c'f2b80'000bf'23a5d, - .cos_x = 0x0.e7767'a8a5b'43c80'00157'36007}, - /*227*/{.x = 0x0.71800'9a670'6cc00'00000'00000, - .sin_x = 0x0.6dd16'f60f3'b0f3f'fff2d'd319e, - .cos_x = 0x0.e73fa'dfa11'f4980'00000'5a100}, - /*228*/{.x = 0x0.72000'4ce78'32c40'00000'00000, - .sin_x = 0x0.6e44f'd19e6'd2d7f'fff67'38d8b, - .cos_x = 0x0.e708a'a72d0'e3500'0009f'd209d}, - /*229*/{.x = 0x0.727ff'61ea6'ebd40'00000'00000, - .sin_x = 0x0.6eb86'663b6'd0740'00037'83c96, - .cos_x = 0x0.e6d17'16f9b'e20ff'ffe11'3b5d5}, - /*230*/{.x = 0x0.73000'f550e'59680'00000'00000, - .sin_x = 0x0.6f2bd'7f69d'70f3f'fff36'a15f2, - .cos_x = 0x0.e699e'd71a3'd2200'000bf'57266}, - /*231*/{.x = 0x0.737ff'9e9d3'b4ec0'00000'00000, - .sin_x = 0x0.6f9f0'3bc7e'a4f00'000ad'a4a73, - .cos_x = 0x0.e6624'40b89'7deff'fff49'02942}, - /*232*/{.x = 0x0.73ffe'b73a2'65cc0'00000'00000, - .sin_x = 0x0.70121'9e542'b1e40'00051'080ca, - .cos_x = 0x0.e62a5'e1472'5d680'001f1'eea34}, - /*233*/{.x = 0x0.747ff'b5c94'b4800'00000'00000, - .sin_x = 0x0.70852'f57ac'a99c0'0002a'a3962, - .cos_x = 0x0.e5f23'14659'c0eff'ffffd'4efbc}, - /*234*/{.x = 0x0.74fff'1aafd'9e600'00000'00000, - .sin_x = 0x0.70f81'1a7fa'50b00'000a1'9a06c, - .cos_x = 0x0.e5b9d'639d7'70180'00063'1f0cf}, - /*235*/{.x = 0x0.757ff'21027'3c800'00000'00000, - .sin_x = 0x0.716ae'0c9fd'6afff'fffe9'f7df8, - .cos_x = 0x0.e5813'd4f52'2a67f'ffe5f'a537c}, - /*236*/{.x = 0x0.75fff'db657'97700'00000'00000, - .sin_x = 0x0.71dd9'da576'015c0'00027'5d0d4, - .cos_x = 0x0.e5486'602b2'3fdff'ffe78'84663}, - /*237*/{.x = 0x0.76800'0ddb1'b5c00'00000'00000, - .sin_x = 0x0.72503'66a61'210ff'ffff7'77bbc, - .cos_x = 0x0.e50f5'924af'91280'0011e'd1914}, - /*238*/{.x = 0x0.76fff'b2a25'a5900'00000'00000, - .sin_x = 0x0.72c2a'aaf79'ff740'0000e'451cf, - .cos_x = 0x0.e4d61'6f83b'cb800'00142'04f27}, - /*239*/{.x = 0x0.777ff'6f0e3'680c0'00000'00000, - .sin_x = 0x0.73350'39848'309bf'fff6b'ac1aa, - .cos_x = 0x0.e49c9'af11e'89b80'00161'c8da3}, - /*240*/{.x = 0x0.77fff'4357f'52440'00000'00000, - .sin_x = 0x0.73a74'10a6a'068bf'fffdb'edece, - .cos_x = 0x0.e462e'51a1c'f9080'0015d'4429c}, - /*241*/{.x = 0x0.787ff'84c1c'97340'00000'00000, - .sin_x = 0x0.74196'7a818'b103f'fff4d'cd76b, - .cos_x = 0x0.e428f'314fd'7167f'ffe1b'e907b}, - /*242*/{.x = 0x0.78ffe'de256'f00c0'00000'00000, - .sin_x = 0x0.748b6'45434'c607f'fffd5'b10cc, - .cos_x = 0x0.e3eec'e9c10'0fbff'fffeb'eca44}, - /*243*/{.x = 0x0.79800'130fb'fd6c0'00000'00000, - .sin_x = 0x0.74fd5'e51ae'6c3c0'000f7'd5b61, - .cos_x = 0x0.e3b46'39bbc'51700'00118'6dd9f}, - /*244*/{.x = 0x0.7a000'b2d44'f5740'00000'00000, - .sin_x = 0x0.756f3'2be87'0ed7f'fff3a'f7eeb, - .cos_x = 0x0.e379c'3e3d4'0517f'fffea'e3dcd}, - /*245*/{.x = 0x0.7a800'0b2e1'b3840'00000'00000, - .sin_x = 0x0.75e0d'7a0bc'29300'00068'700ca, - .cos_x = 0x0.e33ef'4b0d2'a5d7f'ffeee'22e54}, - /*246*/{.x = 0x0.7affe'fa7aa'936c0'00000'00000, - .sin_x = 0x0.76525'93d09'3c63f'fff26'f0fea, - .cos_x = 0x0.e303e'fc040'6a800'000aa'6dc2a}, - /*247*/{.x = 0x0.7b800'1d602'20680'00000'00000, - .sin_x = 0x0.76c3d'c810d'0d040'000ee'7a66a, - .cos_x = 0x0.e2c8a'1c656'd3700'0009d'1f29b}, - /*248*/{.x = 0x0.7c000'a4987'564c0'00000'00000, - .sin_x = 0x0.77353'96f5f'c98c0'00029'5bf48, - .cos_x = 0x0.e28d1'f9207'78c7f'ffe00'a252c}, - /*249*/{.x = 0x0.7c800'43053'05f40'00000'00000, - .sin_x = 0x0.77a66'baf98'f987f'fff58'3e19a, - .cos_x = 0x0.e2516'b7fd6'7e97f'ffffb'fc4e9}, - /*250*/{.x = 0x0.7cfff'0040a'b9100'00000'00000, - .sin_x = 0x0.78177'39b0b'1c300'00057'b7ba0, - .cos_x = 0x0.e2158'578eb'a9900'0003b'1b176}, - /*251*/{.x = 0x0.7d7ff'f72eb'29100'00000'00000, - .sin_x = 0x0.78887'cf3b1'50300'000bd'3f892, - .cos_x = 0x0.e1d95'63abb'4d97f'ffe8b'd901d}, - /*252*/{.x = 0x0.7e000'8677a'347c0'00000'00000, - .sin_x = 0x0.78f96'26d7a'1ecff'fff67'e91b6, - .cos_x = 0x0.e19cf'1883d'e177f'fff12'010ff}, - /*253*/{.x = 0x0.7e7ff'ea5ff'41cc0'00000'00000, - .sin_x = 0x0.796a1'92ba5'e6f00'000e8'3afdd, - .cos_x = 0x0.e1605'd466d'14dff'ffe06'b4e71}, - /*254*/{.x = 0x0.7f000'57361'47600'00000'00000, - .sin_x = 0x0.79dac'023c9'30200'00084'8dedc, - .cos_x = 0x0.e1238'8d370'79c7f'fffc1'7329b}, - /*255*/{.x = 0x0.7f800'52cd9'392c0'00000'00000, - .sin_x = 0x0.7a4b4'26a33'e9e80'0000c'8767f, - .cos_x = 0x0.e0e67'f7329'87c7f'ffe40'e3b3b}, - /*256*/{.x = 0x0.7ffff'ca763'02e00'00000'00000, - .sin_x = 0x0.7abb9'ee16c'611ff'fffe2'29571, - .cos_x = 0x0.e0a94'1cd8a'8e580'00033'06481}, - /*257*/{.x = 0x0.80800'488b9'e8600'00000'00000, - .sin_x = 0x0.7b2be'b0eae'bb580'000d7'aa60a, - .cos_x = 0x0.e06bc'420e2'0c900'0005c'16605}, - /*258*/{.x = 0x0.80fff'0261d'81d80'00000'00000, - .sin_x = 0x0.7b9bf'faca0'cb9ff'fffa6'9e851, - .cos_x = 0x0.e02e1'bf841'9cc7f'ffef9'28fed}, - /*259*/{.x = 0x0.81802'cf8a2'3b180'00000'00000, - .sin_x = 0x0.7c0c3'c76e1'00cff'fffa1'a83c8, - .cos_x = 0x0.dff01'47c61'6f400'000da'34f98}, - /*260*/{.x = 0x0.82000'85241'eb600'00000'00000, - .sin_x = 0x0.7c7c0'4f484'b7a3f'fff6e'e14df, - .cos_x = 0x0.dfb20'43513'd8c80'00093'9381a}, - /*261*/{.x = 0x0.82800'94ed4'6f180'00000'00000, - .sin_x = 0x0.7cebc'f3eeb'a993f'fff58'faf74, - .cos_x = 0x0.df73a'9c3b1'f14ff'fff96'13990}, - /*262*/{.x = 0x0.83000'036df'14a80'00000'00000, - .sin_x = 0x0.7d5b7'183ea'92500'00051'64c61, - .cos_x = 0x0.df351'c642a'949ff'ffef6'3445a}, - /*263*/{.x = 0x0.837ff'd0dd7'a7080'00000'00000, - .sin_x = 0x0.7dcaf'9a169'73e3f'ffffa'0502e, - .cos_x = 0x0.def65'454ec'53980'00171'0c4d1}, - /*264*/{.x = 0x0.84000'633fb'3de00'00000'00000, - .sin_x = 0x0.7e3a6'd032f'eae00'000fd'22d8e, - .cos_x = 0x0.deb74'e7914'a4cff'fffc3'37d72}, - /*265*/{.x = 0x0.84801'407f6'59a00'00000'00000, - .sin_x = 0x0.7ea9c'4e2cb'702ff'fff8e'36052, - .cos_x = 0x0.de780'e96ca'31dff'ffe03'163d5}, - /*266*/{.x = 0x0.85000'9f52c'1d300'00000'00000, - .sin_x = 0x0.7f18e'851b6'40a40'000c9'4d95c, - .cos_x = 0x0.de38a'2e848'7e3ff'ffe3f'5a499}, - /*267*/{.x = 0x0.85803'7df80'a7500'00000'00000, - .sin_x = 0x0.7f881'c8b5d'67c3f'fffeb'08a8c, - .cos_x = 0x0.ddf8e'3d00b'ba500'001e3'33aa7}, - /*268*/{.x = 0x0.86000'641dd'98480'00000'00000, - .sin_x = 0x0.7ff6d'e0eae'79a40'0001b'67e2d, - .cos_x = 0x0.ddb91'cd262'e3900'0001c'c225f}, - /*269*/{.x = 0x0.867ff'349eb'bfd00'00000'00000, - .sin_x = 0x0.80659'a3099'f9780'00114'bbad3, - .cos_x = 0x0.dd790'f3263'c6d00'001ff'47685}, - /*270*/{.x = 0x0.87000'dd044'59780'00000'00000, - .sin_x = 0x0.80d45'd92be'3187f'ffffc'4a78a, - .cos_x = 0x0.dd38b'35faa'df77f'fffd0'cd6db}, - /*271*/{.x = 0x0.87801'403a9'58a00'00000'00000, - .sin_x = 0x0.8142e'f2774'7757f'fff39'5918a, - .cos_x = 0x0.dcf82'a6af5'e02ff'fffbf'95c06}, - /*272*/{.x = 0x0.88000'637f7'8ee80'00000'00000, - .sin_x = 0x0.81b14'f2ac2'68a00'00024'93222, - .cos_x = 0x0.dcb77'45441'd3a00'0015a'89d99}, - /*273*/{.x = 0x0.88801'9d014'9d000'00000'00000, - .sin_x = 0x0.821fa'b89f4'54cff'ffef5'ffcd6, - .cos_x = 0x0.dc767'622c7'841ff'fff7d'43c37}, - /*274*/{.x = 0x0.88fff'cd148'8b780'00000'00000, - .sin_x = 0x0.828db'd8b77'63d00'000f5'6b3cc, - .cos_x = 0x0.dc355'98a5d'2f97f'fff5d'76651}, - /*275*/{.x = 0x0.89800'ff4f0'72e80'00000'00000, - .sin_x = 0x0.82fbd'853ac'5e380'001a9'aa12a, - .cos_x = 0x0.dbf3e'd5cb6'5687f'fff48'5f5a8}, - /*276*/{.x = 0x0.89fff'93ab5'5a680'00000'00000, - .sin_x = 0x0.8369a'e6524'ed9ff'fff2d'6c661, - .cos_x = 0x0.dbb25'f9f78'f4d80'00088'07aa3}, - /*277*/{.x = 0x0.8a800'bac0a'c7980'00000'00000, - .sin_x = 0x0.83d78'6f23b'2367f'ffe88'1ebf8, - .cos_x = 0x0.db708'5d532'd28ff'ffecb'39a1d}, - /*278*/{.x = 0x0.8afff'92a54'58c80'00000'00000, - .sin_x = 0x0.84451'edd4e'fe6ff'ffea7'a6dd9, - .cos_x = 0x0.db2e8'8364a'89dff'ffe98'37f9d}, - /*279*/{.x = 0x0.8b800'2caea'02380'00000'00000, - .sin_x = 0x0.84b2a'dcfd7'd74ff'ffeb4'7314a, - .cos_x = 0x0.daec4'54647'a9300'00181'90c17}, - /*280*/{.x = 0x0.8bfff'e04ef'88200'00000'00000, - .sin_x = 0x0.85200'f43d4'1b07f'fff29'4539c, - .cos_x = 0x0.daa9d'3100f'92aff'fff34'322f1}, - /*281*/{.x = 0x0.8c7ff'836c3'27500'00000'00000, - .sin_x = 0x0.858d4'e90e3'b1200'000f1'4f564, - .cos_x = 0x0.da672'abd4b'4be80'000cf'c2eaa}, - /*282*/{.x = 0x0.8d000'5fea4'4b080'00000'00000, - .sin_x = 0x0.85fa7'd2e35'9a6ff'ffeab'c4841, - .cos_x = 0x0.da244'19592'c557f'ffe15'b648e}, - /*283*/{.x = 0x0.8d801'7744c'81680'00000'00000, - .sin_x = 0x0.86678'd673c'2797f'ffe0a'8edcf, - .cos_x = 0x0.d9e11'fea99'10400'0011d'a34a3}, - /*284*/{.x = 0x0.8e000'2c8c6'ee180'00000'00000, - .sin_x = 0x0.86d45'b9393'61480'00110'7e19b, - .cos_x = 0x0.d99dd'bcd7c'e937f'fff52'76e43}, - /*285*/{.x = 0x0.8e7fd'afc72'd4280'00000'00000, - .sin_x = 0x0.8740f'7d826'36280'00080'522d6, - .cos_x = 0x0.d95a6'b75a3'e4f7f'ffe9f'14fa7}, - /*286*/{.x = 0x0.8efff'd7bcf'8cd00'00000'00000, - .sin_x = 0x0.87adb'1623e'30200'00157'c7e80, - .cos_x = 0x0.d9169'd88ac'68c7f'ffe98'7f67e}, - /*287*/{.x = 0x0.8f800'8521b'fe600'00000'00000, - .sin_x = 0x0.881a3'4e482'5527f'ffe99'85b6e, - .cos_x = 0x0.d8d2a'5cd07'5c17f'fff25'ff39c}, - /*288*/{.x = 0x0.8ffff'd6452'ed680'00000'00000, - .sin_x = 0x0.88868'3f0e7'2b2ff'fff6c'3cd75, - .cos_x = 0x0.d88e8'36f27'efa7f'ffeaf'1ef86}, - /*289*/{.x = 0x0.907ff'fe5df'cbe00'00000'00000, - .sin_x = 0x0.88f2b'c3b54'4dd00'00127'2471b, - .cos_x = 0x0.d84a2'3c704'9ed7f'fffba'2fbc8}, - /*290*/{.x = 0x0.91000'038e3'6f480'00000'00000, - .sin_x = 0x0.895ed'0706b'f8100'00005'06b32, - .cos_x = 0x0.d8058'f35f1'be8ff'ffe6a'4f68d}, - /*291*/{.x = 0x0.917ff'ce613'ccc80'00000'00000, - .sin_x = 0x0.89cab'f3aa0'12980'00109'41733, - .cos_x = 0x0.d7c0c'699d7'cc27f'ffea9'1137e}, - /*292*/{.x = 0x0.92000'b97b4'87200'00000'00000, - .sin_x = 0x0.8a369'abe5f'40100'001ab'78f29, - .cos_x = 0x0.d77bb'e561e'79680'00080'035a4}, - /*293*/{.x = 0x0.927fe'5bf6c'ced00'00000'00000, - .sin_x = 0x0.8aa22'78184'97480'00174'7f647, - .cos_x = 0x0.d7369'c9aba'e9b7f'fffaa'3d4b1}, - /*294*/{.x = 0x0.92fff'e13c5'b0f80'00000'00000, - .sin_x = 0x0.8b0dc'5e47f'46600'00062'56bbc, - .cos_x = 0x0.d6f12'36bf0'22e80'000ca'643de}, - /*295*/{.x = 0x0.93801'64624'68080'00000'00000, - .sin_x = 0x0.8b794'15a52'f7d7f'fffe8'f3f3b, - .cos_x = 0x0.d6ab7'47ef1'2fd00'00046'310eb}, - /*296*/{.x = 0x0.94001'21687'30980'00000'00000, - .sin_x = 0x0.8be48'21f7a'eedff'ffeb6'64aef, - .cos_x = 0x0.d6659'f5554'ceb7f'fff74'da9bd}, - /*297*/{.x = 0x0.947ff'f3b8a'7a780'00000'00000, - .sin_x = 0x0.8c4f9'3a8bb'52aff'ffff5'5af55, - .cos_x = 0x0.d61f9'ca01b'09f7f'fff41'b332b}, - /*298*/{.x = 0x0.94ffd'945fa'c6680'00000'00000, - .sin_x = 0x0.8cba7'23316'aba00'001d4'195e6, - .cos_x = 0x0.d5d96'ef332'43b80'00053'b09e4}, - /*299*/{.x = 0x0.95803'00805'0e380'00000'00000, - .sin_x = 0x0.8d259'5b006'a7100'0014b'de3be, - .cos_x = 0x0.d592c'72c49'c9aff'ffeb4'5bf11}, - /*300*/{.x = 0x0.96000'48355'4f380'00000'00000, - .sin_x = 0x0.8d902'9281f'5d57f'fff1a'2f152, - .cos_x = 0x0.d54c3'1c2a3'bab7f'fffc9'3d204}, - /*301*/{.x = 0x0.96800'70192'4be00'00000'00000, - .sin_x = 0x0.8dfab'f9da0'4af7f'ffe4a'6e0a3, - .cos_x = 0x0.d5054'da584'47dff'ffea7'599c5}, - /*302*/{.x = 0x0.96ffe'277ce'a3600'00000'00000, - .sin_x = 0x0.8e651'2236d'f947f'ffef5'59b07, - .cos_x = 0x0.d4be4'9fadb'2d780'001a4'e08e9}, - /*303*/{.x = 0x0.977ff'716c5'68f80'00000'00000, - .sin_x = 0x0.8ecf7'09494'68f00'00000'e91cb, - .cos_x = 0x0.d476f'15c16'69180'0012b'1e4c0}, - /*304*/{.x = 0x0.98001'24628'8b680'00000'00000, - .sin_x = 0x0.8f39b'0b72e'64dff'fff14'6c00f, - .cos_x = 0x0.d42f5'fe250'a997f'ffe07'c3f2c}, - /*305*/{.x = 0x0.98800'e4f8a'a0580'00000'00000, - .sin_x = 0x0.8fa3b'333a3'dceff'ffec0'f328d, - .cos_x = 0x0.d3e7a'ac050'8b780'00090'e0fd2}, - /*306*/{.x = 0x0.98ffe'bb216'aea80'00000'00000, - .sin_x = 0x0.900d7'872c2'69c80'00128'7da90, - .cos_x = 0x0.d39fd'1e725'71e00'0005d'f5019}, - /*307*/{.x = 0x0.99800'30422'3f800'00000'00000, - .sin_x = 0x0.90774'9963a'8ebff'ffe34'2f3d5, - .cos_x = 0x0.d357a'390ef'3037f'fff47'37986}, - /*308*/{.x = 0x0.99fff'45ef0'da680'00000'00000, - .sin_x = 0x0.90e0d'741aa'fb080'00051'7818c, - .cos_x = 0x0.d30f5'5cdfb'a6e00'000b1'0fa07}, - /*309*/{.x = 0x0.9a801'c2191'f3d00'00000'00000, - .sin_x = 0x0.914a6'd8898'40dff'ffe01'71e9b, - .cos_x = 0x0.d2c6b'472ab'5937f'fff79'533af}, - /*310*/{.x = 0x0.9b000'4ae02'81780'00000'00000, - .sin_x = 0x0.91b3a'b6cc9'fe0ff'fff72'eab9c, - .cos_x = 0x0.d27e0'23f02'90d80'001b6'983db}, - /*311*/{.x = 0x0.9b800'c9929'6ec80'00000'00000, - .sin_x = 0x0.921cd'eb39b'ce77f'fff8b'6c9d4, - .cos_x = 0x0.d2350'99794'ce7ff'fffd6'16c69}, - /*312*/{.x = 0x0.9c000'82202'c1800'00000'00000, - .sin_x = 0x0.9285e'34707'23180'001fa'30a1a, - .cos_x = 0x0.d1ebe'372ef'935ff'fffe0'79d63}, - /*313*/{.x = 0x0.9c800'5bda2'23480'00000'00000, - .sin_x = 0x0.92eec'4ee2d'55d80'00052'b579b, - .cos_x = 0x0.d1a28'7a657'e7900'00087'a9486}, - /*314*/{.x = 0x0.9cfff'b2d45'bc900'00000'00000, - .sin_x = 0x0.93577'b2c42'e1500'000bb'1f9f1, - .cos_x = 0x0.d158f'c2721'6d200'001ad'e1c29}, - /*315*/{.x = 0x0.9d801'b2414'71580'00000'00000, - .sin_x = 0x0.93c02'f556e'c0a00'000b4'53f82, - .cos_x = 0x0.d10f2'3cec8'10400'0005e'f644f}, - /*316*/{.x = 0x0.9e000'1b8da'cf600'00000'00000, - .sin_x = 0x0.94288'fb042'6de80'001b0'8fe01, - .cos_x = 0x0.d0c53'84e52'c9d80'00023'80f28}, - /*317*/{.x = 0x0.9e7ff'b035f'27100'00000'00000, - .sin_x = 0x0.9490d'a4c50'97fff'ffff7'3ef98, - .cos_x = 0x0.d07b0'dd5a1'b5600'001a8'8224d}, - /*318*/{.x = 0x0.9f000'80b4b'34400'00000'00000, - .sin_x = 0x0.94f90'fd5b2'6b580'00166'c3416, - .cos_x = 0x0.d030a'3c6f1'01aff'fffaa'027fe}, - /*319*/{.x = 0x0.9f7ff'5739a'fe580'00000'00000, - .sin_x = 0x0.95610'66ac0'd4eff'ffe7e'6b81f, - .cos_x = 0x0.cfe61'81562'ccd80'0006b'43f58}, - /*320*/{.x = 0x0.9ffff'6f2bf'24500'00000'00000, - .sin_x = 0x0.95c8e'7fd0c'fa880'001ee'8443c, - .cos_x = 0x0.cf9b4'cb85a'ebcff'ffe92'05402}, - /*321*/{.x = 0x0.a0800'975a2'b0b00'00000'00000, - .sin_x = 0x0.9630b'1e39d'7b0ff'fff48'30903, - .cos_x = 0x0.cf504'377dc'01b00'001bf'626f2}, - /*322*/{.x = 0x0.a0fff'443fb'd5480'00000'00000, - .sin_x = 0x0.96983'61760'10000'00051'7f426, - .cos_x = 0x0.cf051'dafb5'c1800'0014d'd4ef1}, - /*323*/{.x = 0x0.a17ff'e3124'23680'00000'00000, - .sin_x = 0x0.96ffa'dd2eb'44b00'0012d'c0a73, - .cos_x = 0x0.ceb9b'1dc4a'a2aff'fff6d'57f4d}, - /*324*/{.x = 0x0.a2000'd2ca8'75900'00000'00000, - .sin_x = 0x0.97670'3dc6b'40600'00021'08f02, - .cos_x = 0x0.ce6e0'f54ee'b0dff'ffe3a'8af3e}, - /*325*/{.x = 0x0.a2800'aa80c'a4f00'00000'00000, - .sin_x = 0x0.97ce2'5ebdd'04c80'0018e'f5d8c, - .cos_x = 0x0.ce224'386a5'94700'00102'9b918}, - /*326*/{.x = 0x0.a2ffe'e1032'c9c80'00000'00000, - .sin_x = 0x0.98350'd1207'd32ff'fffd5'19fbf, - .cos_x = 0x0.cdd65'3b2a8'e7e80'000a1'3073c}, - /*327*/{.x = 0x0.a3800'b5087'2d880'00000'00000, - .sin_x = 0x0.989bf'cad40'f8eff'fff58'16f45, - .cos_x = 0x0.cd8a0'e047e'26800'0013a'2aded}, - /*328*/{.x = 0x0.a3fff'75ad5'd6480'00000'00000, - .sin_x = 0x0.99029'e9bed'd527f'fffa5'c07d7, - .cos_x = 0x0.cd3db'24620'1f0ff'fff31'49bad}, - /*329*/{.x = 0x0.a4800'd5636'e8700'00000'00000, - .sin_x = 0x0.99693'be97b'4a200'000c2'df2d8, - .cos_x = 0x0.ccf10'a2606'f3e7f'ffe51'76270}, - /*330*/{.x = 0x0.a4ffe'19eed'40a00'00000'00000, - .sin_x = 0x0.99cf7'e4b05'9a700'0015a'8aca7, - .cos_x = 0x0.cca45'63120'720ff'ffe1c'f38c6}, - /*331*/{.x = 0x0.a57ff'e514e'e5880'00000'00000, - .sin_x = 0x0.9a35d'41fda'55b00'001c4'55fda, - .cos_x = 0x0.cc574'3974e'da180'000cc'79c39}, - /*332*/{.x = 0x0.a6000'7bd35'a2980'00000'00000, - .sin_x = 0x0.9a9bf'3f904'9827f'fff8c'dc0fa, - .cos_x = 0x0.cc0a0'974e7'7cf80'00053'352ca}, - /*333*/{.x = 0x0.a67fe'b0315'9b400'00000'00000, - .sin_x = 0x0.9b01c'ec93d'81c00'000af'1d86a, - .cos_x = 0x0.cbbcb'361c9'84700'00004'8b9d7}, - /*334*/{.x = 0x0.a7000'94903'61b00'00000'00000, - .sin_x = 0x0.9b67b'1cd0c'19800'0008e'0c469, - .cos_x = 0x0.cb6f0'6a571'0147f'ffebe'9a4fb}, - /*335*/{.x = 0x0.a77ff'38ab4'e7600'00000'00000, - .sin_x = 0x0.9bcd4'49e70'd2900'000b7'f1968, - .cos_x = 0x0.cb214'69d90'7a500'0010e'a1b9a}, - /*336*/{.x = 0x0.a7fff'e7f25'a2500'00000'00000, - .sin_x = 0x0.9c32c'a71c7'60080'00042'b39f5, - .cos_x = 0x0.cad33'feb36'fcdff'fff2a'd0ec0}, - /*337*/{.x = 0x0.a8800'2babb'45f80'00000'00000, - .sin_x = 0x0.9c982'3e061'93b00'00074'6de45, - .cos_x = 0x0.ca850'a9804'907ff'fffff'ab048}, - /*338*/{.x = 0x0.a8fff'afa36'2e880'00000'00000, - .sin_x = 0x0.9cfd4'caee0'b3aff'fff9a'04868, - .cos_x = 0x0.ca36a'9f9b3'8717f'ffecd'a10d7}, - /*339*/{.x = 0x0.a9802'8d07f'90380'00000'00000, - .sin_x = 0x0.9d627'886c8'6db00'00180'7441c, - .cos_x = 0x0.c9e7f'5e1c3'44300'001ba'97bff}, - /*340*/{.x = 0x0.a9fff'5ca21'90f80'00000'00000, - .sin_x = 0x0.9dc73'0a2ab'6ce00'001e2'9e241, - .cos_x = 0x0.c9994'ade68'58300'0012e'31c52}, - /*341*/{.x = 0x0.aa7fe'c266a'85980'00000'00000, - .sin_x = 0x0.9e2be'1f6aa'ac200'000de'5da2c, - .cos_x = 0x0.c94a5'40ae9'c8300'000ed'200e9}, - /*342*/{.x = 0x0.aaffe'5ea9c'23700'00000'00000, - .sin_x = 0x0.9e906'e722b'ecd80'00049'014ff, - .cos_x = 0x0.c8fb2'8d05d'd0bff'ffeb1'47492}, - /*343*/{.x = 0x0.ab7ff'49b0b'1b600'00000'00000, - .sin_x = 0x0.9ef4e'3b408'8c37f'ffeab'5a5aa, - .cos_x = 0x0.c8abb'e5e1c'70a80'00106'2a1e1}, - /*344*/{.x = 0x0.abffe'51b71'acd80'00000'00000, - .sin_x = 0x0.9f591'98f28'b2f00'00101'fd274, - .cos_x = 0x0.c85c3'47fc0'7d380'00121'2f8fb}, - /*345*/{.x = 0x0.ac7ff'2ad8f'2a100'00000'00000, - .sin_x = 0x0.9fbd3'e54e8'c01ff'ffe79'f2ca2, - .cos_x = 0x0.c80c6'672fc'8327f'fff53'cdd8e}, - /*346*/{.x = 0x0.ad000'0ddb0'd6f00'00000'00000, - .sin_x = 0x0.a0213'b9e2b'5d2ff'ffea0'b0131, - .cos_x = 0x0.c7bc6'5f5ad'774ff'ffed5'7fcd4}, - /*347*/{.x = 0x0.ad800'a1159'df600'00000'00000, - .sin_x = 0x0.a0850'cf3e2'2ad80'000c7'0703e, - .cos_x = 0x0.c76c3'69e96'5c500'00109'7a6c0}, - /*348*/{.x = 0x0.adffd'd9cc2'5b900'00000'00000, - .sin_x = 0x0.a0e88'c66ee'1bdff'ffebb'1fdf4, - .cos_x = 0x0.c71bf'71f31'f5200'00151'3774c}, - /*349*/{.x = 0x0.ae800'00ce1'64880'00000'00000, - .sin_x = 0x0.a14c2'0ff5a'5e37f'ffec7'd69bc, - .cos_x = 0x0.c6cb5'4461a'dab80'0007c'ae241}, - /*350*/{.x = 0x0.aefff'53d0c'ef980'00000'00000, - .sin_x = 0x0.a1af6'a19e9'a947f'ffffa'2b5c8, - .cos_x = 0x0.c67a9'c33aa'c2300'0017b'472bb}, - /*351*/{.x = 0x0.af7ff'9099d'9e080'00000'00000, - .sin_x = 0x0.a2129'61eca'4b27f'fff1f'22b74, - .cos_x = 0x0.c629a'94aee'f817f'fff15'3ac06}, - /*352*/{.x = 0x0.b0000'6645c'7e500'00000'00000, - .sin_x = 0x0.a275a'0ff1c'd5d80'000b1'0ff46, - .cos_x = 0x0.c5d87'ec47b'ec7ff'fffd2'f2f4c}, - /*353*/{.x = 0x0.b0800'331c0'57a00'00000'00000, - .sin_x = 0x0.a2d87'67409'cb57f'fff89'73a32, - .cos_x = 0x0.c5872'd450a'7faff'ffe7d'd073b}, - /*354*/{.x = 0x0.b1000'bfa31'd7d80'00000'00000, - .sin_x = 0x0.a33b2'c6f96'f85ff'ffeef'58c03, - .cos_x = 0x0.c535a'2c2a7'f8e80'001d9'e4e43}, - /*355*/{.x = 0x0.b17fe'6802b'da080'00000'00000, - .sin_x = 0x0.a39d9'602ab'37880'00159'19c92, - .cos_x = 0x0.c4e40'47ce8'a1b7f'ffe82'e08ad}, - /*356*/{.x = 0x0.b1fff'f4fe8'27b00'00000'00000, - .sin_x = 0x0.a4000'69a51'f4d00'000f6'98f0d, - .cos_x = 0x0.c4920'd33bb'84480'00090'65d8f}, - /*357*/{.x = 0x0.b27fe'4ef2a'75600'00000'00000, - .sin_x = 0x0.a4622'6e429'ecf00'00186'0412e, - .cos_x = 0x0.c4400'591af'7e100'00018'e2b4a}, - /*358*/{.x = 0x0.b3000'6bc06'26180'00000'00000, - .sin_x = 0x0.a4c44'c3505'0bf80'001ce'22a26, - .cos_x = 0x0.c3eda'63883'ffc80'00005'05f61}, - /*359*/{.x = 0x0.b37fe'485bf'67100'00000'00000, - .sin_x = 0x0.a5261'4476d'346ff'ffe29'16850, - .cos_x = 0x0.c39b4'1aa38'16eff'fff11'21e34}, - /*360*/{.x = 0x0.b4001'1ee15'05400'00000'00000, - .sin_x = 0x0.a587e'fe2c3'92500'00072'a544e, - .cos_x = 0x0.c3487'8d3c4'ca300'0007b'd3a22}, - /*361*/{.x = 0x0.b4800'10561'c1780'00000'00000, - .sin_x = 0x0.a5e97'2898d'25100'00187'196a6, - .cos_x = 0x0.c2f5a'76b9e'f87ff'fff3b'f56d2}, - /*362*/{.x = 0x0.b5000'5b0dc'ad880'00000'00000, - .sin_x = 0x0.a64ad'c28ef'bd87f'fffd4'93106, - .cos_x = 0x0.c2a29'74e8b'61080'0002e'c05f6}, - /*363*/{.x = 0x0.b57ff'84c1a'22f80'00000'00000, - .sin_x = 0x0.a6ac0'e7cab'70380'0002f'ef54d, - .cos_x = 0x0.c24f6'247f2'444ff'ffe7b'c0fb0}, - /*364*/{.x = 0x0.b5fff'ee782'37300'00000'00000, - .sin_x = 0x0.a70d2'655eb'cae80'000d6'6e775, - .cos_x = 0x0.c1fbe'faa89'5bd7f'fff6a'a1201}, - /*365*/{.x = 0x0.b6800'b2203'25600'00000'00000, - .sin_x = 0x0.a76e1'8a837'634ff'ffecc'dbaf7, - .cos_x = 0x0.c1a84'8dbef'aef80'001f6'a1496}, - /*366*/{.x = 0x0.b6ffe'98f37'a9180'00000'00000, - .sin_x = 0x0.a7ceb'e8018'e6f00'00060'3ad28, - .cos_x = 0x0.c1548'f9ff1'71e00'001a3'acfe5}, - /*367*/{.x = 0x0.b7800'131a6'fda00'00000'00000, - .sin_x = 0x0.a82f6'59b8c'ec380'00160'c7d99, - .cos_x = 0x0.c1008'092a6'7ac7f'ffeb8'46e14}, - /*368*/{.x = 0x0.b7fff'6715f'1f300'00000'00000, - .sin_x = 0x0.a88fc'8ba72'02b7f'fffb4'83352, - .cos_x = 0x0.c0ac5'7d783'4b100'0013e'1aa97}, - /*369*/{.x = 0x0.b87ff'bffca'2c700'00000'00000, - .sin_x = 0x0.a8f00'dfd1a'8dc00'000c0'b238a, - .cos_x = 0x0.c057f'43672'8f2ff'fff9a'2c39f}, - /*370*/{.x = 0x0.b8ffb'83602'3dd80'00000'00000, - .sin_x = 0x0.a94ff'1fcf0'ddaff'ffeae'df97f, - .cos_x = 0x0.c0039'0fd62'0c100'00144'15043}, - /*371*/{.x = 0x0.b97ff'f24d9'1ca00'00000'00000, - .sin_x = 0x0.a9b01'3b40d'bac7f'fffef'5d5f9, - .cos_x = 0x0.bfaea'2030a'cce80'00014'2d226}, - /*372*/{.x = 0x0.b9fff'd6b83'6a400'00000'00000, - .sin_x = 0x0.aa0fd'4812d'5a07f'fffc7'cc0c5, - .cos_x = 0x0.bf59b'32c14'39bff'ffee0'de443}, - /*373*/{.x = 0x0.ba801'8bcc5'b1500'00000'00000, - .sin_x = 0x0.aa6f8'076e9'3547f'fff17'3785b, - .cos_x = 0x0.bf048'12a4d'de57f'ffedf'4d10e}, - /*374*/{.x = 0x0.bb000'1be99'f8000'00000'00000, - .sin_x = 0x0.aaced'c4532'a537f'ffe5f'00587, - .cos_x = 0x0.beaf4'0e46d'dedff'fff1e'f8184}, - /*375*/{.x = 0x0.bb7fe'172f0'55300'00000'00000, - .sin_x = 0x0.ab2e0'68454'ca280'00133'140cf, - .cos_x = 0x0.be59d'73c4c'e077f'ffeb8'2e6f8}, - /*376*/{.x = 0x0.bbfff'7f470'b3100'00000'00000, - .sin_x = 0x0.ab8d2'ebab5'8de80'0000d'3aa31, - .cos_x = 0x0.be041'95c77'd0c00'00154'79c06}, - /*377*/{.x = 0x0.bc800'da5bd'7e680'00000'00000, - .sin_x = 0x0.abec2'b6471'90900'000ca'da867, - .cos_x = 0x0.bdae2'c76b9'fc700'0009c'9313e}, - /*378*/{.x = 0x0.bd000'8729f'25400'00000'00000, - .sin_x = 0x0.ac4ae'920ac'afd7f'fffa3'73354, - .cos_x = 0x0.bd582'22eb5'8fa7f'fffe2'ebcb2}, - /*379*/{.x = 0x0.bd7ff'c9c5f'04d00'00000'00000, - .sin_x = 0x0.aca97'6e731'8e700'000aa'4a67d, - .cos_x = 0x0.bd01e'd0e81'8fd00'001e1'ba170}, - /*380*/{.x = 0x0.be000'49c93'f9c00'00000'00000, - .sin_x = 0x0.ad07e'82a1d'52a00'000cd'd8097, - .cos_x = 0x0.bcab7'b4e06'bb700'001a4'85cca}, - /*381*/{.x = 0x0.be800'00e5f'3de00'00000'00000, - .sin_x = 0x0.ad662'4e8e8'21280'000c7'db9f9, - .cos_x = 0x0.bc54e'2de08'91580'000ee'4b764}, - /*382*/{.x = 0x0.bf000'ad5ea'1de00'00000'00000, - .sin_x = 0x0.adc44'1941b'd827f'ffe93'2bd10, - .cos_x = 0x0.bbfe1'0f378'd287f'fff4a'880ca}, - /*383*/{.x = 0x0.bf800'320f9'ebc80'00000'00000, - .sin_x = 0x0.ae222'539ef'f0400'00140'a90a6, - .cos_x = 0x0.bba71'c948e'636ff'fff7d'9a0f1}, - /*384*/{.x = 0x0.bffff'd63b7'cca00'00000'00000, - .sin_x = 0x0.ae7fd'ecd02'fb980'0015a'0a606, - .cos_x = 0x0.bb4ff'7fa2f'ebcff'fff11'ab094}, - /*385*/{.x = 0x0.c0800'212d2'dbe80'00000'00000, - .sin_x = 0x0.aedd7'460e3'e2c00'00113'd765c, - .cos_x = 0x0.baf89'd715b'ea000'00163'58745}, - /*386*/{.x = 0x0.c1002'54f09'fd900'00000'00000, - .sin_x = 0x0.af3af'47ff3'c687f'fffa5'f52b6, - .cos_x = 0x0.baa0f'f3d77'ac9ff'fff6b'9b447}, - /*387*/{.x = 0x0.c1800'238b3'64480'00000'00000, - .sin_x = 0x0.af981'58c08'e8200'00166'c5130, - .cos_x = 0x0.ba496'283de'0157f'ffe2e'e5bbb}, - /*388*/{.x = 0x0.c1ffe'52cd8'20380'00000'00000, - .sin_x = 0x0.aff50'f2d6d'e5100'000ae'50e1f, - .cos_x = 0x0.b9f19'32a7e'd0a00'001b1'3cd72}, - /*389*/{.x = 0x0.c27fd'fd70d'40a80'00000'00000, - .sin_x = 0x0.b051e'e164f'63100'00094'4f548, - .cos_x = 0x0.b9998'51511'40080'00142'9c362}, - /*390*/{.x = 0x0.c2fff'ae0e7'eb800'00000'00000, - .sin_x = 0x0.b0aeb'85bc1'92900'00153'0266c, - .cos_x = 0x0.b9413'24548'd8b00'00038'93d92}, - /*391*/{.x = 0x0.c3800'6df90'28100'00000'00000, - .sin_x = 0x0.b10b4'b8522'4967f'fff9b'ab86c, - .cos_x = 0x0.b8e8b'b7909'e0380'00068'4a779}, - /*392*/{.x = 0x0.c3fff'2337f'e9000'00000'00000, - .sin_x = 0x0.b1679'ad64c'1f7ff'fff9e'ac990, - .cos_x = 0x0.b8902'd0d36'2867f'fff60'dcadf}, - /*393*/{.x = 0x0.c4801'4b2d3'14a00'00000'00000, - .sin_x = 0x0.b1c3e'58f00'4047f'ffe70'7a8a6, - .cos_x = 0x0.b8374'a3d0b'43bff'fffd4'e4346}, - /*394*/{.x = 0x0.c5001'f907e'41e00'00000'00000, - .sin_x = 0x0.b21ff'2c5b0'f0400'000c5'c0df8, - .cos_x = 0x0.b7de4'9b793'0ad00'000ec'e42fb}, - /*395*/{.x = 0x0.c5801'b0735'b6b00'00000'00000, - .sin_x = 0x0.b27bc'8623b'63380'0018b'0dda0, - .cos_x = 0x0.b7852'5efc3'70a7f'ffef1'fd0e4}, - /*396*/{.x = 0x0.c6000'2f22c'72000'00000'00000, - .sin_x = 0x0.b2d76'366be'4a47f'fff55'c1578, - .cos_x = 0x0.b72be'1f18a'3ea00'001f2'773c6}, - /*397*/{.x = 0x0.c6801'7bb17'e0c00'00000'00000, - .sin_x = 0x0.b332f'1d0e5'88a7f'fffa7'0dfb4, - .cos_x = 0x0.b6d25'0d176'0927f'ffe8c'ece6c}, - /*398*/{.x = 0x0.c7000'e93e1'33000'00000'00000, - .sin_x = 0x0.b38e3'e08f0'59080'00035'2b5a6, - .cos_x = 0x0.b678a'6ed81'01e80'000d7'9e6c3}, - /*399*/{.x = 0x0.c77ff'37933'd3e00'00000'00000, - .sin_x = 0x0.b3e95'09e97'f5a7f'ffffa'3a281, - .cos_x = 0x0.b61ed'c0f81'd6b00'00177'8ac64}, - /*400*/{.x = 0x0.c7ffe'30cdd'69f00'00000'00000, - .sin_x = 0x0.b4443'de270'feb80'00095'a35c3, - .cos_x = 0x0.b5c4d'c37a4'eab00'0019d'9c7c9}, - /*401*/{.x = 0x0.c87ff'605e7'a2e00'00000'00000, - .sin_x = 0x0.b49f1'73637'134ff'fffa1'8102f, - .cos_x = 0x0.b56a9'600f4'fa180'00120'49976}, - /*402*/{.x = 0x0.c9000'd29b5'aec80'00000'00000, - .sin_x = 0x0.b4f9c'64754'11b80'00019'392d6, - .cos_x = 0x0.b5101'f700b'053ff'fff74'de474}}; + /* 1*/{.x = 0x0.00800'02c2b'8f8aa'00000'00000p0, + .sin_x = 0x0.00800'026d6'34c0e'7ffff'c57aap0, + .cos_x = 0x0.ffffd'fffea'94e00'001a7'df26fp0}, + /* 2*/{.x = 0x0.00fff'fb609'f34ce'00000'00000p0, + .sin_x = 0x0.00fff'f8b5f'6fbf4'ffffe'81bbfp0, + .cos_x = 0x0.ffff8'00054'a09ff'ffe4b'78ed6p0}, + /* 3*/{.x = 0x0.01800'00e83'1277c'00000'00000p0, + .sin_x = 0x0.017ff'f7e83'12578'00002'625fep0, + .cos_x = 0x0.fffee'00020'3b680'000bb'14ebap0}, + /* 4*/{.x = 0x0.01fff'f89f5'69a7a'00000'00000p0, + .sin_x = 0x0.01fff'e34a1'44ab2'ffffd'a11a2p0, + .cos_x = 0x0.fffe0'00196'bf080'00176'ab15cp0}, + /* 5*/{.x = 0x0.02800'090c9'c7fce'00000'00000p0, + .sin_x = 0x0.027ff'df61e'29316'00004'99669p0, + .cos_x = 0x0.fffce'00036'b32ff'ffe5f'bb3bfp0}, + /* 6*/{.x = 0x0.02fff'ff679'2895a'00000'00000p0, + .sin_x = 0x0.02fff'b767b'59da4'00003'13933p0, + .cos_x = 0x0.fffb8'0037c'93580'00017'5105bp0}, + /* 7*/{.x = 0x0.03800'0c1d8'ba882'00000'00000p0, + .sin_x = 0x0.037ff'99c83'225d4'00005'93b72p0, + .cos_x = 0x0.fff9e'0039a'36aff'ffeee'bf33fp0}, + /* 8*/{.x = 0x0.03fff'ebdd4'60cb6'00000'00000p0, + .sin_x = 0x0.03fff'4133c'4ff26'00004'4fcc2p0, + .cos_x = 0x0.fff80'00fb3'453ff'ffe7e'e7305p0}, + /* 9*/{.x = 0x0.04800'1177d'e462c'00000'00000p0, + .sin_x = 0x0.047ff'1e782'372a3'ffff2'e8bfcp0, + .cos_x = 0x0.fff5e'00c2c'4df00'00118'2bb96p0}, + /* 10*/{.x = 0x0.04fff'ff646'8c134'00000'00000p0, + .sin_x = 0x0.04ffe'b210b'bae64'00000'8f85ap0, + .cos_x = 0x0.fff38'01a3b'336ff'fff74'fc0f7p0}, + /* 11*/{.x = 0x0.05800'0632d'1f30c'00000'00000p0, + .sin_x = 0x0.057fe'4a8a6'89278'0000d'cc498p0, + .cos_x = 0x0.fff0e'023ff'16b7f'ffff2'68abap0}, + /* 12*/{.x = 0x0.05fff'dfdf8'ea7e0'00000'00000p0, + .sin_x = 0x0.05ffd'9fe5d'db1a4'00009'57cd1p0, + .cos_x = 0x0.ffee0'0420b'9f680'0010a'bdce4p0}, + /* 13*/{.x = 0x0.06800'00800'adc5c'00000'00000p0, + .sin_x = 0x0.067fd'2430b'5fe10'0000d'0562cp0, + .cos_x = 0x0.ffeae'04a2c'3ef00'00010'e027ep0}, + /* 14*/{.x = 0x0.06fff'f49c7'9e288'00000'00000p0, + .sin_x = 0x0.06ffc'61fba'71e5b'ffffc'181b2p0, + .cos_x = 0x0.ffe78'06905'68fff'ffe3e'213cfp0}, + /* 15*/{.x = 0x0.077ff'fb5f3'adb28'00000'00000p0, + .sin_x = 0x0.077fb'966c1'901dc'0000c'b0416p0, + .cos_x = 0x0.ffe3e'08600'50d80'00055'a3ffbp0}, + /* 16*/{.x = 0x0.07fff'fdde5'56a60'00000'00000p0, + .sin_x = 0x0.07ffa'a89a5'53fff'ffff5'f954dp0, + .cos_x = 0x0.ffe00'0abba'08800'00164'1dc8bp0}, + /* 17*/{.x = 0x0.08800'1123c'dbd98'00000'00000p0, + .sin_x = 0x0.087f9'ab8dd'3de28'0001d'48edap0, + .cos_x = 0x0.ffdbe'0d064'069ff'fff3c'94f38p0}, + /* 18*/{.x = 0x0.08fff'fc14b'48998'00000'00000p0, + .sin_x = 0x0.08ff8'64341'436b7'ffffb'14c9dp0, + .cos_x = 0x0.ffd78'11391'5a8ff'ffeb7'a3104p0}, + /* 19*/{.x = 0x0.097ff'f214e'89f40'00000'00000p0, + .sin_x = 0x0.097f7'03ea5'40567'ffff8'cee6dp0, + .cos_x = 0x0.ffd2e'15b9f'c6eff'fff39'82204p0}, + /* 20*/{.x = 0x0.09fff'f0cd8'1dda8'00000'00000p0, + .sin_x = 0x0.09ff5'8659e'3cff0'00009'4f7bcp0, + .cos_x = 0x0.ffce0'1aa24'2de80'0016d'19d40p0}, + /* 21*/{.x = 0x0.0a7ff'f406b'd2580'00000'00000p0, + .sin_x = 0x0.0a7f3'e54bc'98210'0001e'c606bp0, + .cos_x = 0x0.ffc8e'20249'be080'00073'157f9p0}, + /* 22*/{.x = 0x0.0afff'dabcd'e7c88'00000'00000p0, + .sin_x = 0x0.0aff1'fdc43'7afc8'0000f'774b3p0, + .cos_x = 0x0.ffc38'27b9d'2dfff'ffffb'4f0f4p0}, + /* 23*/{.x = 0x0.0b800'01001'49fa0'00000'00000p0, + .sin_x = 0x0.0b7f0'29bde'8a127'ffff5'cc15cp0, + .cos_x = 0x0.ffbde'2d7fc'1f37f'ffe39'2604ap0}, + /* 24*/{.x = 0x0.0bfff'f1a6f'2baa0'00000'00000p0, + .sin_x = 0x0.0bfed'f22c9'372e8'00008'15134p0, + .cos_x = 0x0.ffb80'36ab1'94480'00141'72416p0}, + /* 25*/{.x = 0x0.0c7ff'ffc53'5c218'00000'00000p0, + .sin_x = 0x0.0c7eb'a80ee'22830'0000d'6e220p0, + .cos_x = 0x0.ffb1e'3f959'e2080'00114'd3f8bp0}, + /* 26*/{.x = 0x0.0d000'1e952'4c278'00000'00000p0, + .sin_x = 0x0.0cfe9'3ca1c'11b78'0001b'a7ec4p0, + .cos_x = 0x0.ffab8'48d1a'072ff'fff12'e3b7fp0}, + /* 27*/{.x = 0x0.0d7ff'ee419'bfcd0'00000'00000p0, + .sin_x = 0x0.0d7e6'4e317'3a927'ffff7'e6f17p0, + .cos_x = 0x0.ffa4e'576cc'05eff'ffe0e'af9bap0}, + /* 28*/{.x = 0x0.0dfff'e6022'951c8'00000'00000p0, + .sin_x = 0x0.0dfe3'51ced'f47af'fffe9'24978p0, + .cos_x = 0x0.ff9e0'6573d'053ff'fffa6'ded02p0}, + /* 29*/{.x = 0x0.0e800'00522'39838'00000'00000p0, + .sin_x = 0x0.0e7e0'3ff52'7cccf'fffea'2e8a4p0, + .cos_x = 0x0.ff96e'73163'd8d80'0011e'574b3p0}, + /* 30*/{.x = 0x0.0efff'f144f'b5978'00000'00000p0, + .sin_x = 0x0.0efdc'cad6e'dc88f'fffea'aeef0p0, + .cos_x = 0x0.ff8f8'84aef'82d00'00070'd8acdp0}, + /* 31*/{.x = 0x0.0f7ff'f8781'75110'00000'00000p0, + .sin_x = 0x0.0f7d9'2ff83'812b0'0000d'f8417p0, + .cos_x = 0x0.ff87e'96bff'f5180'000ca'd7ee6p0}, + /* 32*/{.x = 0x0.0ffff'fe9de'7b858'00000'00000p0, + .sin_x = 0x0.0ffd5'56160'32c8f'ffff7'f7b41p0, + .cos_x = 0x0.ff800'aabb1'83e00'00190'9f6d4p0}, + /* 33*/{.x = 0x0.10800'0511a'a8250'00000'00000p0, + .sin_x = 0x0.107d1'3c8be'0bd1f'ffffa'286b8p0, + .cos_x = 0x0.ff77e'c0aaf'3caff'fff0a'2400ap0}, + /* 34*/{.x = 0x0.10fff'f8ec4'c0cb0'00000'00000p0, + .sin_x = 0x0.10fcc'ce7e6'35a2f'fffd4'371dap0, + .cos_x = 0x0.ff6f8'd9f0b'3de7f'fffbc'2e01ep0}, + /* 35*/{.x = 0x0.117ff'f49c7'e3fe0'00000'00000p0, + .sin_x = 0x0.117c8'244f6'3988f'fffcb'e3215p0, + .cos_x = 0x0.ff66e'f4fb7'33180'00107'05281p0}, + /* 36*/{.x = 0x0.11fff'f8bfa'98c00'00000'00000p0, + .sin_x = 0x0.11fc3'3c9c4'885a0'00016'7c0bap0, + .cos_x = 0x0.ff5e1'11d6e'25b80'00061'66298p0}, + /* 37*/{.x = 0x0.12800'211f2'089a0'00000'00000p0, + .sin_x = 0x0.127be'311c2'af590'0002b'84cb2p0, + .cos_x = 0x0.ff54f'2e983'b837f'fffe7'c5faap0}, + /* 38*/{.x = 0x0.13000'24363'3b940'00000'00000p0, + .sin_x = 0x0.12fb8'b67b7'b10b0'0003d'df8b7p0, + .cos_x = 0x0.ff4b9'50a15'2e280'001eb'2d1efp0}, + /* 39*/{.x = 0x0.137ff'f351d'57080'00000'00000p0, + .sin_x = 0x0.137b2'bc178'95ab0'00001'710d2p0, + .cos_x = 0x0.ff41f'796dc'2eb80'00072'fffcbp0}, + /* 40*/{.x = 0x0.13fff'd507a'25100'00000'00000p0, + .sin_x = 0x0.13fac'86564'74c8f'ffff3'c1b1ep0, + .cos_x = 0x0.ff381'a3ef7'f137f'fff01'e9620p0}, + /* 41*/{.x = 0x0.14800'3b502'7b330'00000'00000p0, + .sin_x = 0x0.147a6'84d23'8f71f'fffda'd87e1p0, + .cos_x = 0x0.ff2df'c7144'1a000'0008c'f4644p0}, + /* 42*/{.x = 0x0.14fff'c8ac5'73f40'00000'00000p0, + .sin_x = 0x0.14f9f'592ac'37f50'0001a'a3516p0, + .cos_x = 0x0.ff239'fee17'aeb80'001df'97344p0}, + /* 43*/{.x = 0x0.15800'075ad'138f0'00000'00000p0, + .sin_x = 0x0.15798'8a572'95760'0002b'9e51bp0, + .cos_x = 0x0.ff190'2bb29'cd77f'fffe2'11724p0}, + /* 44*/{.x = 0x0.16000'000e6'4d440'00000'00000p0, + .sin_x = 0x0.15f91'1fdf6'2ae7f'fffdb'488e2p0, + .cos_x = 0x0.ff0e2'61e2f'daf00'00017'86c80p0}, + /* 45*/{.x = 0x0.16800'37715'33740'00000'00000p0, + .sin_x = 0x0.16789'9bf56'013df'fffed'eb381p0, + .cos_x = 0x0.ff030'96618'7a780'00064'e49ffp0}, + /* 46*/{.x = 0x0.16fff'f1b75'4ff40'00000'00000p0, + .sin_x = 0x0.16f81'41885'd5ae0'00019'87349p0, + .cos_x = 0x0.fef7a'd9d69'06b7f'ffe5d'bfa98p0}, + /* 47*/{.x = 0x0.17800'15e4f'55ba0'00000'00000p0, + .sin_x = 0x0.17778'f4b6c'5d690'00001'e44cfp0, + .cos_x = 0x0.feec1'17fd2'4f2ff'fff2e'e4414p0}, + /* 48*/{.x = 0x0.18000'25637'052c0'00000'00000p0, + .sin_x = 0x0.17f70'356bb'd60f0'00014'bccccp0, + .cos_x = 0x0.fee03'5c3f3'37380'000cf'1f4edp0}, + /* 49*/{.x = 0x0.187ff'e355b'99ba0'00000'00000p0, + .sin_x = 0x0.18766'c5168'c64b0'00031'aedafp0, + .cos_x = 0x0.fed41'acbbf'19a7f'ffe6a'f238fp0}, + /* 50*/{.x = 0x0.19000'03521'fab30'00000'00000p0, + .sin_x = 0x0.18f5d'54808'3cad0'00023'318dbp0, + .cos_x = 0x0.fec7b'f89b0'22f00'00180'5a62dp0}, + /* 51*/{.x = 0x0.197ff'fe6f5'c8130'00000'00000p0, + .sin_x = 0x0.19753'5b5fa'a8b50'00026'72b3dp0, + .cos_x = 0x0.febb2'4ce60'1227f'fff40'48ec4p0}, + /* 52*/{.x = 0x0.19fff'da121'1d000'00000'00000p0, + .sin_x = 0x0.19f48'dd197'80b60'00005'e861bp0, + .cos_x = 0x0.feae4'a97a6'8397f'fff21'00658p0}, + /* 53*/{.x = 0x0.1a7ff'f27c4'8d920'00000'00000p0, + .sin_x = 0x0.1a73e'3378f'7f41f'fffd9'd8df8p0, + .cos_x = 0x0.fea13'05322'0ddff'fff2a'70f87p0}, + /* 54*/{.x = 0x0.1afff'f444a'6f750'00000'00000p0, + .sin_x = 0x0.1af33'0984c'039af'fffcd'ed251p0, + .cos_x = 0x0.fe93d'68aed'48c7f'ffe21'c7ab1p0}, + /* 55*/{.x = 0x0.1b7ff'fcc02'a0c30'00000'00000p0, + .sin_x = 0x0.1b727'7a6cd'a5d4f'fffde'cd2a9p0, + .cos_x = 0x0.fe863'd1229'9a480'0007d'34aa1p0}, + /* 56*/{.x = 0x0.1bfff'f24a7'27eb0'00000'00000p0, + .sin_x = 0x0.1bf1b'6ab5e'eb5a0'00005'094c7p0, + .cos_x = 0x0.fe786'41866'47d7f'fffaa'106e7p0}, + /* 57*/{.x = 0x0.1c800'000d8'0aa70'00000'00000p0, + .sin_x = 0x0.1c70f'034bb'1d0ef'fffc5'3fd71p0, + .cos_x = 0x0.fe6a4'b5623'4bb00'00143'bc214p0}, + /* 58*/{.x = 0x0.1d000'03035'0cd40'00000'00000p0, + .sin_x = 0x0.1cf02'1f60a'a4c30'00025'b1df8p0, + .cos_x = 0x0.fe5bf'30bfd'42eff'fff54'9d65dp0}, + /* 59*/{.x = 0x0.1d800'53237'58ed0'00000'00000p0, + .sin_x = 0x0.1d6f5'145c1'8c56f'fffca'255e7p0, + .cos_x = 0x0.fe4d5'a9cb7'2f900'0005b'a1583p0}, + /* 60*/{.x = 0x0.1e000'35f57'54270'00000'00000p0, + .sin_x = 0x0.1dee7'2702d'45480'00030'735d1p0, + .cos_x = 0x0.fe3e8'3619c'e0400'001d4'0b595p0}, + /* 61*/{.x = 0x0.1e7ff'f5492'ddf60'00000'00000p0, + .sin_x = 0x0.1e6d8'9eb55'43430'00038'7ee1fp0, + .cos_x = 0x0.fe2f6'cdc32'7a600'00089'5f2bap0}, + /* 62*/{.x = 0x0.1f000'11e92'78fb0'00000'00000p0, + .sin_x = 0x0.1eec9'f956b'8f54f'fffe5'b59b8p0, + .cos_x = 0x0.fe201'61a9e'de280'001eb'2f16ep0}, + /* 63*/{.x = 0x0.1f800'206e7'acdf0'00000'00000p0, + .sin_x = 0x0.1f6ba'ca42d'2dedf'ffff3'd364dp0, + .cos_x = 0x0.fe107'feaf2'f347f'ffe4c'e7c27p0}, + /* 64*/{.x = 0x0.20000'477a9'd7f20'00000'00000p0, + .sin_x = 0x0.1feab'35d44'6b44f'fffe1'83074p0, + .cos_x = 0x0.fe00a'a0554'd4d00'00052'8f7bep0}, + /* 65*/{.x = 0x0.207ff'bdaed'35f20'00000'00000p0, + .sin_x = 0x0.2069a'724a7'acf60'0007a'58a9ep0, + .cos_x = 0x0.fdf09'60361'7637f'ffe77'23a0ap0}, + /* 66*/{.x = 0x0.21000'1bf6b'852e0'00000'00000p0, + .sin_x = 0x0.20e8a'13524'7891f'ffff9'fef65p0, + .cos_x = 0x0.fde04'0b07f'68500'00136'b9b4ep0}, + /* 67*/{.x = 0x0.217ff'97de9'fae60'00000'00000p0, + .sin_x = 0x0.21678'503af'131df'fffeb'e0adfp0, + .cos_x = 0x0.fdcfa'db855'66800'001ef'5313bp0}, + /* 68*/{.x = 0x0.21fff'9c4ef'dcc40'00000'00000p0, + .sin_x = 0x0.21e66'8eeb6'cdddf'fffb0'4451dp0, + .cos_x = 0x0.fdbed'a3328'fac00'00076'9efa3p0}, + /* 69*/{.x = 0x0.22800'037ea'20740'00000'00000p0, + .sin_x = 0x0.22654'a7dbc'165ff'fffba'75e94p0, + .cos_x = 0x0.fdadc'669b9'69700'00040'e7616p0}, + /* 70*/{.x = 0x0.23000'2815d'118a0'00000'00000p0, + .sin_x = 0x0.22e41'f52fb'29980'00008'4cf80p0, + .cos_x = 0x0.fd9c7'3bfae'e5680'00173'6ecbdp0}, + /* 71*/{.x = 0x0.23800'39b1f'27200'00000'00000p0, + .sin_x = 0x0.2362e'a421c'40da0'0000c'31402p0, + .cos_x = 0x0.fd8ae'1d63f'48700'001a7'0e57ep0}, + /* 72*/{.x = 0x0.24000'9c594'9c160'00000'00000p0, + .sin_x = 0x0.23e1b'15c42'80320'0004d'17b8ap0, + .cos_x = 0x0.fd790'fd341'cfc80'00141'cbe97p0}, + /* 73*/{.x = 0x0.247ff'cf5d2'73d60'00000'00000p0, + .sin_x = 0x0.24605'cb433'b7000'00075'b0c92p0, + .cos_x = 0x0.fd670'11e3b'e6d7f'fff20'5fab6p0}, + /* 74*/{.x = 0x0.25000'0a8cd'31ae0'00000'00000p0, + .sin_x = 0x0.24df0'f4c8a'f2b00'00044'33a8cp0, + .cos_x = 0x0.fd54b'0bb5f'f7200'00064'a7ea6p0}, + /* 75*/{.x = 0x0.257ff'9e44a'ee9c0'00000'00000p0, + .sin_x = 0x0.255da'e51cb'6c8bf'fffb6'572b3p0, + .cos_x = 0x0.fd422'286c9'd2280'001de'2188bp0}, + /* 76*/{.x = 0x0.26000'079dd'cbec0'00000'00000p0, + .sin_x = 0x0.25dc5'1351c'2aebf'fffff'0b9f1p0, + .cos_x = 0x0.fd2f5'30edb'c7eff'ffeca'32339p0}, + /* 77*/{.x = 0x0.267ff'ffb02'edcc0'00000'00000p0, + .sin_x = 0x0.265ae'3a066'e9f3f'fffeb'fa1a0p0, + .cos_x = 0x0.fd1c4'55422'f3f80'0017a'e9912p0}, + /* 78*/{.x = 0x0.26fff'c7555'e80c0'00000'00000p0, + .sin_x = 0x0.26d96'97733'1d7ff'fffd5'd5649p0, + .cos_x = 0x0.fd08f'8c86c'c63ff'ffeb3'bb020p0}, + /* 79*/{.x = 0x0.27800'2e44c'4e480'00000'00000p0, + .sin_x = 0x0.2757e'f6e8a'2ec00'0000f'849e8p0, + .cos_x = 0x0.fcf56'b7644'bf480'000e0'493cfp0}, + /* 80*/{.x = 0x0.28000'61f28'f34e0'00000'00000p0, + .sin_x = 0x0.27d66'864cc'52a5f'fffb1'173f8p0, + .cos_x = 0x0.fce19'f6006'6b680'000d8'8e520p0}, + /* 81*/{.x = 0x0.287ff'f352c'80aa0'00000'00000p0, + .sin_x = 0x0.2854c'd6088'c99df'fffeb'2e37ap0, + .cos_x = 0x0.fccd9'5a74f'15a7f'ffe31'0c8f7p0}, + /* 82*/{.x = 0x0.29001'23490'8ee80'00000'00000p0, + .sin_x = 0x0.28d34'1dca5'256a0'00024'bea44p0, + .cos_x = 0x0.fcb94'8a02f'8bb80'0012a'f258ap0}, + /* 83*/{.x = 0x0.29800'1028a'ae740'00000'00000p0, + .sin_x = 0x0.29518'868fa'78c3f'fffba'a983bp0, + .cos_x = 0x0.fca4c'22f70'09f80'0000a'c47d4p0}, + /* 84*/{.x = 0x0.2a000'0d9eb'50a40'00000'00000p0, + .sin_x = 0x0.29cfd'5728a'178bf'fffc9'd08ccp0, + .cos_x = 0x0.fc8ff'9de22'cd7ff'ffeba'd3becp0}, + /* 85*/{.x = 0x0.2a7ff'a4a1e'7e820'00000'00000p0, + .sin_x = 0x0.2a4e1'1b787'363a0'00073'a1c2bp0, + .cos_x = 0x0.fc7af'377e1'e887f'ffeb9'50e4dp0}, + /* 86*/{.x = 0x0.2b000'b9bbe'af0a0'00000'00000p0, + .sin_x = 0x0.2acc5'af578'f9b3f'fffb8'3cee4p0, + .cos_x = 0x0.fc65a'9fb53'178ff'fff8d'42f91p0}, + /* 87*/{.x = 0x0.2b800'57a87'05700'00000'00000p0, + .sin_x = 0x0.2b4a8'2610b'352e0'00021'bfab7p0, + .cos_x = 0x0.fc502'54b65'2b180'00127'c4ddep0}, + /* 88*/{.x = 0x0.2c000'0cce7'95d80'00000'00000p0, + .sin_x = 0x0.2bc8a'06924'ffcdf'fffc2'7529dp0, + .cos_x = 0x0.fc3a6'14deb'ec800'0005b'61b8ep0}, + /* 89*/{.x = 0x0.2c7ff'fed15'f4b80'00000'00000p0, + .sin_x = 0x0.2c46b'73f04'a8a60'00002'17ae1p0, + .cos_x = 0x0.fc245'd9e0b'37580'0006c'5a770p0}, + /* 90*/{.x = 0x0.2cfff'b5a34'6b260'00000'00000p0, + .sin_x = 0x0.2cc4b'f5ee5'9a1a0'00055'713b2p0, + .cos_x = 0x0.fc0e1'b8b8f'7b0ff'ffe41'0c8b0p0}, + /* 91*/{.x = 0x0.2d7ff'8be37'588a0'00000'00000p0, + .sin_x = 0x0.2d42b'e3d5c'14a7f'fff82'a7b1bp0, + .cos_x = 0x0.fbf79'a2125'aa180'001cf'9ba86p0}, + /* 92*/{.x = 0x0.2e000'f3b74'96740'00000'00000p0, + .sin_x = 0x0.2dc0c'a7d60'b5140'00040'05b90p0, + .cos_x = 0x0.fbe0d'53f13'41000'000c8'826f7p0}, + /* 93*/{.x = 0x0.2e7ff'eead1'2ccc0'00000'00000p0, + .sin_x = 0x0.2e3ea'51eba'79c1f'fff9e'daef2p0, + .cos_x = 0x0.fbc9d'8512a'82480'00059'6c2afp0}, + /* 94*/{.x = 0x0.2efff'f885b'd58a0'00000'00000p0, + .sin_x = 0x0.2ebc8'4d8b4'87320'00027'a566cp0, + .cos_x = 0x0.fbb29'96994'78780'00049'a3533p0}, + /* 95*/{.x = 0x0.2f7ff'e4cde'29960'00000'00000p0, + .sin_x = 0x0.2f3a5'71287'136a0'00050'a29dap0, + .cos_x = 0x0.fb9b1'bec02'd4a7f'ffe1b'bc979p0}, + /* 96*/{.x = 0x0.30000'78aa8'3fde0'00000'00000p0, + .sin_x = 0x0.2fb82'7c847'97320'0003c'c946dp0, + .cos_x = 0x0.fb835'd9514'd41ff'fff42'21812p0}, + /* 97*/{.x = 0x0.307ff'eff0d'692a0'00000'00000p0, + .sin_x = 0x0.3035d'b1659'6a080'00071'0876cp0, + .cos_x = 0x0.fb6b6'3adbd'89880'000a8'8162cp0}, + /* 98*/{.x = 0x0.31000'3a8d3'c93e0'00000'00000p0, + .sin_x = 0x0.30b38'f5031'68f80'00005'404cbp0, + .cos_x = 0x0.fb532'870ad'3497f'ffe83'4f5cbp0}, + /* 99*/{.x = 0x0.31800'15878'03e00'00000'00000p0, + .sin_x = 0x0.31313'08369'ca940'00046'4695ap0, + .cos_x = 0x0.fb3aa'fb177'd8380'000dc'e49e0p0}, + /*100*/{.x = 0x0.31fff'b14cd'eab60'00000'00000p0, + .sin_x = 0x0.31aec'18ab4'20340'00060'd84eep0, + .cos_x = 0x0.fb21f'8ea21'8c5ff'ffe74'820fbp0}, + /*101*/{.x = 0x0.32800'140b1'ec260'00000'00000p0, + .sin_x = 0x0.322c5'25955'e2edf'fffc1'3f681p0, + .cos_x = 0x0.fb090'0f082'b8cff'ffeda'836e3p0}, + /*102*/{.x = 0x0.32fff'f81df'223e0'00000'00000p0, + .sin_x = 0x0.32a9c'ed90c'bca9f'fffe4'0d9e6p0, + .cos_x = 0x0.faefc'bbfaf'bd4ff'ffffb'59266p0}, + /*103*/{.x = 0x0.337ff'c4bc4'f38e0'00000'00000p0, + .sin_x = 0x0.33273'd3ef2'a18e0'00016'9e1e7p0, + .cos_x = 0x0.fad65'81f9d'd997f'ffec0'0114bp0}, + /*104*/{.x = 0x0.34000'10d46'63920'00000'00000p0, + .sin_x = 0x0.33a4a'6a95a'afe3f'fff85'89377p0, + .cos_x = 0x0.fabca'431a9'07080'000d1'c1706p0}, + /*105*/{.x = 0x0.347ff'da97e'e2b20'00000'00000p0, + .sin_x = 0x0.3421f'b300d'37dbf'ffffc'5de16p0, + .cos_x = 0x0.faa2b'3388b'a4c00'0001c'91213p0}, + /*106*/{.x = 0x0.34fff'fb1ed'79600'00000'00000p0, + .sin_x = 0x0.349f4'7fd83'0505f'fffc2'efd2fp0, + .cos_x = 0x0.fa888'27cb9'a517f'ffe64'1dea5p0}, + /*107*/{.x = 0x0.35800'0184e'9ba00'00000'00000p0, + .sin_x = 0x0.351c8'609c7'38e60'00067'6ec75p0, + .cos_x = 0x0.fa6e1'37386'5d97f'fff68'0e6dcp0}, + /*108*/{.x = 0x0.35fff'f09ee'14c40'00000'00000p0, + .sin_x = 0x0.3599b'56256'6533f'fffc9'2329fp0, + .cos_x = 0x0.fa536'61c77'48fff'fff2a'4b298p0}, + /*109*/{.x = 0x0.367ff'f7e03'dd3e0'00000'00000p0, + .sin_x = 0x0.3616d'8ce6d'e80df'fffe0'8d556p0, + .cos_x = 0x0.fa387'9dff0'eb2ff'ffff7'c12bfp0}, + /*110*/{.x = 0x0.36fff'eccef'cb920'00000'00000p0, + .sin_x = 0x0.3693e'd964a'88f20'00006'853efp0, + .cos_x = 0x0.fa1d4'f535c'27b7f'fff9b'd6d72p0}, + /*111*/{.x = 0x0.37800'0871c'6a4a0'00000'00000p0, + .sin_x = 0x0.3710f'71613'9153f'fffa9'50ccep0, + .cos_x = 0x0.fa01e'5baed'f1800'00146'17a06p0}, + /*112*/{.x = 0x0.38000'0f31f'a0de0'00000'00000p0, + .sin_x = 0x0.378df'18b0d'2ffa0'0003a'04179p0, + .cos_x = 0x0.f9e63'de8db'f27ff'fff71'edae8p0}, + /*113*/{.x = 0x0.387ff'ca493'61700'00000'00000p0, + .sin_x = 0x0.380ad'97f40'e597f'ffff4'1cdffp0, + .cos_x = 0x0.f9ca5'8a5d5'10dff'ffe75'eb386p0}, + /*114*/{.x = 0x0.38fff'd82c6'69e00'00000'00000p0, + .sin_x = 0x0.3887b'87dbb'6569f'fffa3'24984p0, + .cos_x = 0x0.f9ae3'3cfe4'f0380'0010c'0a016p0}, + /*115*/{.x = 0x0.397ff'ecce9'1d3e0'00000'00000p0, + .sin_x = 0x0.39048'9c350'97f80'00022'afd60p0, + .cos_x = 0x0.f991d'07586'2a27f'ffeda'fafb7p0}, + /*116*/{.x = 0x0.3a000'076e0'dcb60'00000'00000p0, + .sin_x = 0x0.39814'd24dc'34640'00005'38fa7p0, + .cos_x = 0x0.f9752'e9feb'e33ff'fff82'411a2p0}, + /*117*/{.x = 0x0.3a800'104f0'03f00'00000'00000p0, + .sin_x = 0x0.39fe0'1112d'f9360'0005b'fcb52p0, + .cos_x = 0x0.f9584'eabb8'a5d7f'fffd8'10f07p0}, + /*118*/{.x = 0x0.3b000'34f62'f3580'00000'00000p0, + .sin_x = 0x0.3a7aa'82e83'65020'00078'e1f8ep0, + .cos_x = 0x0.f93b2'ffb65'268ff'fff77'3b76ep0}, + /*119*/{.x = 0x0.3b800'177e2'30d20'00000'00000p0, + .sin_x = 0x0.3af73'ca727'd06c0'00019'b3d7cp0, + .cos_x = 0x0.f91dd'3edba'f9bff'fffdb'5fb17p0}, + /*120*/{.x = 0x0.3bfff'7cebe'56860'00000'00000p0, + .sin_x = 0x0.3b73b'ac780'8ec9f'fffe7'96979p0, + .cos_x = 0x0.f9003'b6b41'8257f'fffd5'6d000p0}, + /*121*/{.x = 0x0.3c7ff'dc668'dce00'00000'00000p0, + .sin_x = 0x0.3bf03'93ec3'1afdf'fffc9'ed9f3p0, + .cos_x = 0x0.f8e26'10966'4d680'00112'27be7p0}, + /*122*/{.x = 0x0.3d000'39421'01160'00000'00000p0, + .sin_x = 0x0.3c6ca'88fce'f8ce0'00060'd8e05p0, + .cos_x = 0x0.f8c44'8730d'685ff'ffecd'b9e09p0}, + /*123*/{.x = 0x0.3d7ff'd3494'88e00'00000'00000p0, + .sin_x = 0x0.3ce8f'cf093'18aa0'0004f'fbbe2p0, + .cos_x = 0x0.f8a5f'48bb1'3f180'001c1'a7c74p0}, + /*124*/{.x = 0x0.3e000'3758b'bd380'00000'00000p0, + .sin_x = 0x0.3d654'e5ac9'72f7f'fff90'c368bp0, + .cos_x = 0x0.f8875'f79cb'84680'001d7'99a19p0}, + /*125*/{.x = 0x0.3e7ff'e9b6e'6ab20'00000'00000p0, + .sin_x = 0x0.3de18'5a367'832ff'fff80'a078ap0, + .cos_x = 0x0.f8688'eef39'8c07f'ffe07'8e72ap0}, + /*126*/{.x = 0x0.3f000'1041b'266e0'00000'00000p0, + .sin_x = 0x0.3e5db'47f9a'1d320'00056'34fb1p0, + .cos_x = 0x0.f8497'e8a65'1bdff'ffe9a'9a686p0}, + /*127*/{.x = 0x0.3f7ff'e793c'480c0'00000'00000p0, + .sin_x = 0x0.3ed9c'ef709'8a4e0'00025'80504p0, + .cos_x = 0x0.f82a3'1480e'838ff'ffe8e'e74b8p0}, + /*128*/{.x = 0x0.40000'5ba18'3bb00'00000'00000p0, + .sin_x = 0x0.3f55e'3366a'967e0'00010'a5a62p0, + .cos_x = 0x0.f80aa'39137'aef7f'ffe33'b7047p0}, + /*129*/{.x = 0x0.40801'15015'68940'00000'00000p0, + .sin_x = 0x0.3fd1e'bd0a4'3ac60'00022'66de1p0, + .cos_x = 0x0.f7ead'6bc31'4a100'0014e'faa18p0}, + /*130*/{.x = 0x0.40fff'8ecd9'881c0'00000'00000p0, + .sin_x = 0x0.404dc'1a189'b9800'00063'06c39p0, + .cos_x = 0x0.f7cad'4ea7b'886ff'ffe5f'ac453p0}, + /*131*/{.x = 0x0.41801'034f3'bdb80'00000'00000p0, + .sin_x = 0x0.40c9b'58331'48540'000bc'70de8p0, + .cos_x = 0x0.f7aa8'92d4a'19c7f'ffe53'5fcc6p0}, + /*132*/{.x = 0x0.42001'357ac'f0c80'00000'00000p0, + .sin_x = 0x0.41458'5b199'fd100'0004e'63debp0, + .cos_x = 0x0.f78a0'491e6'8957f'fff55'b4fafp0}, + /*133*/{.x = 0x0.42800'713dd'dfe00'00000'00000p0, + .sin_x = 0x0.41c13'6ab92'4f8bf'fff4f'02b52p0, + .cos_x = 0x0.f7694'605a3'86300'000c0'fd82ap0}, + /*134*/{.x = 0x0.42fff'a4074'c7000'00000'00000p0, + .sin_x = 0x0.423cd'6adad'76fc0'0002a'8b5a6p0, + .cos_x = 0x0.f7484'9d012'084ff'ffee2'5e391p0}, + /*135*/{.x = 0x0.43800'4d93e'2da80'00000'00000p0, + .sin_x = 0x0.42b87'cc0dc'0e13f'fff12'6a23ap0, + .cos_x = 0x0.f7270'9ba0d'2fe00'00178'1f2abp0}, + /*136*/{.x = 0x0.43fff'dd3b0'e3b80'00000'00000p0, + .sin_x = 0x0.43340'12301'25c00'0007f'3d85dp0, + .cos_x = 0x0.f7059'07011'4217f'ffeeb'928d4p0}, + /*137*/{.x = 0x0.44800'c6752'72b80'00000'00000p0, + .sin_x = 0x0.43af8'98e6a'15a3f'fffab'c1e98p0, + .cos_x = 0x0.f6e3d'3b593'20580'000af'476b5p0}, + /*138*/{.x = 0x0.44fff'3da73'9ecc0'00000'00000p0, + .sin_x = 0x0.442ad'b5339'43f00'00091'a20cfp0, + .cos_x = 0x0.f6c1e'39f43'8e880'0011c'98409p0}, + /*139*/{.x = 0x0.45800'27f52'35fc0'00000'00000p0, + .sin_x = 0x0.44a64'1d619'd56c0'000c0'a760ap0, + .cos_x = 0x0.f69fa'b6d7c'4c680'0018b'84a0ep0}, + /*140*/{.x = 0x0.46000'28ccd'56440'00000'00000p0, + .sin_x = 0x0.45218'91ee0'1c3bf'fff29'15b20p0, + .cos_x = 0x0.f67d3'97666'a3c7f'fff13'df668p0}, + /*141*/{.x = 0x0.46800'396df'ea1c0'00000'00000p0, + .sin_x = 0x0.459cc'01253'b1c00'000ae'26db0p0, + .cos_x = 0x0.f65a8'99b47'6fcff'ffe9a'c4db7p0}, + /*142*/{.x = 0x0.46fff'f1e54'46140'00000'00000p0, + .sin_x = 0x0.4617e'05198'cafbf'fffe4'a9a13p0, + .cos_x = 0x0.f6379'daac1'f2aff'fff1b'63ea3p0}, + /*143*/{.x = 0x0.477ff'6db31'aa6c0'00000'00000p0, + .sin_x = 0x0.4692e'b6724'e86ff'fff9c'30dfap0, + .cos_x = 0x0.f6147'53c35'63cff'ffe03'aa677p0}, + /*144*/{.x = 0x0.47fff'9bd9e'231c0'00000'00000p0, + .sin_x = 0x0.470de'f8fae'74440'0004a'84e13p0, + .cos_x = 0x0.f5f10'c3877'eec80'0005c'24f76p0}, + /*145*/{.x = 0x0.48800'2a5ca'1c640'00000'00000p0, + .sin_x = 0x0.4788e'7bc44'c43ff'ffff6'96818p0, + .cos_x = 0x0.f5cd6'406e2'b5f7f'fff59'e16c6p0}, + /*146*/{.x = 0x0.48fff'b7f7e'61240'00000'00000p0, + .sin_x = 0x0.4803b'e9baa'1917f'fffdf'e43a1p0, + .cos_x = 0x0.f5a98'2ddb6'663ff'ffeb7'8baecp0}, + /*147*/{.x = 0x0.49800'4b4a2'f9980'00000'00000p0, + .sin_x = 0x0.487e9'32c2b'3d200'000f3'34953p0, + .cos_x = 0x0.f5855'faf39'57dff'ffe85'128c4p0}, + /*148*/{.x = 0x0.4a000'13818'a8800'00000'00000p0, + .sin_x = 0x0.48f94'96f90'9af40'00031'971a1p0, + .cos_x = 0x0.f5610'2b4e6'a2480'001db'd6dbap0}, + /*149*/{.x = 0x0.4a800'e393d'1c500'00000'00000p0, + .sin_x = 0x0.4973f'd41ce'b0b7f'fff36'5548ap0, + .cos_x = 0x0.f53c6'3aa5c'e3980'00050'fbebdp0}, + /*150*/{.x = 0x0.4b000'12b1a'14b40'00000'00000p0, + .sin_x = 0x0.49ee8'5c04d'80380'000d7'8af5dp0, + .cos_x = 0x0.f5178'ecaea'2fd80'00017'5e99ap0}, + /*151*/{.x = 0x0.4b802'3122d'04700'00000'00000p0, + .sin_x = 0x0.4a692'8b521'1e87f'fff74'b4cd3p0, + .cos_x = 0x0.f4f26'f0bec'a2480'000a6'2a6bep0}, + /*152*/{.x = 0x0.4c000'20192'43b40'00000'00000p0, + .sin_x = 0x0.4ae37'8fc15'c9040'0008b'd0bd4p0, + .cos_x = 0x0.f4cd2'58701'cf07f'ffec5'3d8d0p0}, + /*153*/{.x = 0x0.4c7ff'501c2'55ac0'00000'00000p0, + .sin_x = 0x0.4b5dc'9c0fc'051bf'fffe2'aca41p0, + .cos_x = 0x0.f4a79'90624'86f80'0013b'a9616p0}, + /*154*/{.x = 0x0.4cfff'28c54'a8300'00000'00000p0, + .sin_x = 0x0.4bd81'1c381'935ff'fff91'7fdefp0, + .cos_x = 0x0.f481c'c485d'e467f'ffe4a'f0311p0}, + /*155*/{.x = 0x0.4d7fe'8bc24'806c0'00000'00000p0, + .sin_x = 0x0.4c523'fcb99'50d00'0005b'd0bdbp0, + .cos_x = 0x0.f45bc'49dcd'5927f'fff01'cb92fp0}, + /*156*/{.x = 0x0.4dffe'80029'f25c0'00000'00000p0, + .sin_x = 0x0.4ccc6'36b37'1c1c0'00055'0f240p0, + .cos_x = 0x0.f4357'd2c6b'1ebff'ffee4'd517dp0}, + /*157*/{.x = 0x0.4e800'39511'76640'00000'00000p0, + .sin_x = 0x0.4d468'ed6b3'c587f'fffbd'7bbdfp0, + .cos_x = 0x0.f40ef'0223d'c4b80'00055'599b0p0}, + /*158*/{.x = 0x0.4f000'87c8f'9ee00'00000'00000p0, + .sin_x = 0x0.4dc09'14d0d'02980'00079'3f0a5p0, + .cos_x = 0x0.f3e82'cdd3f'de47f'ffe57'037ebp0}, + /*159*/{.x = 0x0.4f7fe'5e6c7'46040'00000'00000p0, + .sin_x = 0x0.4e3a5'ab80d'cd0ff'fff6f'11059p0, + .cos_x = 0x0.f3c13'8aaba'81d7f'fff57'97dcdp0}, + /*160*/{.x = 0x0.4ffff'e5ff9'43840'00000'00000p0, + .sin_x = 0x0.4eb44'8d1c6'b7e00'00062'b103cp0, + .cos_x = 0x0.f399f'580b0'f3c00'001f3'77f1ep0}, + /*161*/{.x = 0x0.50800'0c35a'fcf40'00000'00000p0, + .sin_x = 0x0.4f2e0'e3652'2387f'fff4e'0847fp0, + .cos_x = 0x0.f3727'c2d94'a12ff'fff57'e6d5ep0}, + /*162*/{.x = 0x0.50fff'dad69'8b880'00000'00000p0, + .sin_x = 0x0.4fa7b'a9ada'0c2bf'fff23'f97f2p0, + .cos_x = 0x0.f34ac'7af9b'f6800'001af'5379dp0}, + /*163*/{.x = 0x0.51800'1bc24'31540'00000'00000p0, + .sin_x = 0x0.50215'9df31'acac0'00009'fda83p0, + .cos_x = 0x0.f322d'4257d'6ae00'0015b'95ea4p0}, + /*164*/{.x = 0x0.51ffe'9ec12'afec0'00000'00000p0, + .sin_x = 0x0.509ac'aa607'395ff'fffeb'11824p0, + .cos_x = 0x0.f2faa'c954b'd5a7f'fff7b'4585dp0}, + /*165*/{.x = 0x0.527ff'71c83'47b00'00000'00000p0, + .sin_x = 0x0.51144'a6688'43f7f'fff69'1c102p0, + .cos_x = 0x0.f2d23'ca4f2'd9f7f'ffe1a'8e891p0}, + /*166*/{.x = 0x0.53000'88851'ce980'00000'00000p0, + .sin_x = 0x0.518db'9e0b5'e6480'000e3'6becdp0, + .cos_x = 0x0.f2a98'e9a68'3f7ff'fff17'e90eep0}, + /*167*/{.x = 0x0.53800'23ba1'7c300'00000'00000p0, + .sin_x = 0x0.5206f'e7994'aa200'000d2'a774fp0, + .cos_x = 0x0.f280a'b6eb6'43480'0019b'b47d8p0}, + /*168*/{.x = 0x0.54001'4b44f'e9180'00000'00000p0, + .sin_x = 0x0.52804'605c4'b15bf'ffffa'b7014p0, + .cos_x = 0x0.f2578'3ad31'85600'001e0'785e0p0}, + /*169*/{.x = 0x0.547ff'732a6'52ac0'00000'00000p0, + .sin_x = 0x0.52f94'b88a1'ce0ff'ffffd'53c6cp0, + .cos_x = 0x0.f22e2'ed13c'910ff'ffe24'083d2p0}, + /*170*/{.x = 0x0.55000'05e6e'3e680'00000'00000p0, + .sin_x = 0x0.53726'0e762'7c5c0'00030'6f79fp0, + .cos_x = 0x0.f2049'0ea22'eceff'ffe39'5e8ccp0}, + /*171*/{.x = 0x0.55800'0fd71'c0140'00000'00000p0, + .sin_x = 0x0.53eb5'952bb'0ec7f'fff58'2a07ep0, + .cos_x = 0x0.f1dab'946ba'79e00'00194'1238dp0}, + /*172*/{.x = 0x0.55fff'1652a'1fe00'00000'00000p0, + .sin_x = 0x0.54642'd73cb'3ba7f'ffff3'd1834p0, + .cos_x = 0x0.f1b0a'a848c'5abff'ffe24'708bap0}, + /*173*/{.x = 0x0.567ff'735a1'c19c0'00000'00000p0, + .sin_x = 0x0.54dd0'0b3cc'cd000'0009f'6a476p0, + .cos_x = 0x0.f1865'84c13'af780'00075'bfd4bp0}, + /*174*/{.x = 0x0.57000'022b3'c2c80'00000'00000p0, + .sin_x = 0x0.5555c'1a9ac'1bd7f'fff94'f7002p0, + .cos_x = 0x0.f15bc'8a2ff'aec80'0019d'a28b4p0}, + /*175*/{.x = 0x0.57800'24ce3'28000'00000'00000p0, + .sin_x = 0x0.55ce6'6e85f'1047f'fffd4'6bc5dp0, + .cos_x = 0x0.f130f'edeb8'f8a00'001e4'f1bc5p0}, + /*176*/{.x = 0x0.58001'9d5e5'17500'00000'00000p0, + .sin_x = 0x0.56470'ad182'81000'00072'9c5f6p0, + .cos_x = 0x0.f105f'19861'905ff'ffe7d'c7befp0}, + /*177*/{.x = 0x0.587ff'feb3d'df180'00000'00000p0, + .sin_x = 0x0.56bf6'a9a47'431ff'fff7b'd7b12p0, + .cos_x = 0x0.f0dab'8bc3d'a8aff'ffebf'3e192p0}, + /*178*/{.x = 0x0.59001'3ab56'97380'00000'00000p0, + .sin_x = 0x0.5737d'fab4f'80f3f'fffa4'b660ep0, + .cos_x = 0x0.f0af3'432d1'7f8ff'ffe17'956e7p0}, + /*179*/{.x = 0x0.59800'12fe9'e5ac0'00000'00000p0, + .sin_x = 0x0.57b01'afc35'6c4c0'0005c'414e5p0, + .cos_x = 0x0.f0838'08390'7a280'000be'd33c8p0}, + /*180*/{.x = 0x0.59fff'769e0'd7400'00000'00000p0, + .sin_x = 0x0.58284'89471'2e700'0008b'a3a51p0, + .cos_x = 0x0.f0578'dc513'9b200'000bd'f1e82p0}, + /*181*/{.x = 0x0.5a800'96df4'c2e40'00000'00000p0, + .sin_x = 0x0.58a07'a3828'a3c3f'fff40'6bfa6p0, + .cos_x = 0x0.f02b5'55afd'0f2ff'ffe59'1e931p0}, + /*182*/{.x = 0x0.5b000'2a723'0a600'00000'00000p0, + .sin_x = 0x0.59187'e6f68'f9e00'0007a'8eddap0, + .cos_x = 0x0.effee'97614'97f00'00182'bd4b4p0}, + /*183*/{.x = 0x0.5b7ff'44111'81d40'00000'00000p0, + .sin_x = 0x0.59906'53ef6'ac100'000c0'9cc12p0, + .cos_x = 0x0.efd24'44277'1737f'ffe3c'eddd1p0}, + /*184*/{.x = 0x0.5bfff'f0b95'698c0'00000'00000p0, + .sin_x = 0x0.5a084'd4415'fea40'00019'24438p0, + .cos_x = 0x0.efa55'a4be1'a1580'00183'28ca5p0}, + /*185*/{.x = 0x0.5c7ff'dec0b'4f200'00000'00000p0, + .sin_x = 0x0.5a801'39e3b'6fbc0'0008c'9a239p0, + .cos_x = 0x0.ef783'8981b'81d80'00140'01e43p0}, + /*186*/{.x = 0x0.5d001'dd59d'c2ec0'00000'00000p0, + .sin_x = 0x0.5af7e'239eb'e4c00'00083'1bebep0, + .cos_x = 0x0.ef4ac'f4a26'6b580'001bf'865b8p0}, + /*187*/{.x = 0x0.5d800'59105'c5680'00000'00000p0, + .sin_x = 0x0.5b6f6'592c9'8ebc0'00099'81654p0, + .cos_x = 0x0.ef1d3'e1c87'ceb80'001c9'70887p0}, + /*188*/{.x = 0x0.5dfff'0b477'f5340'00000'00000p0, + .sin_x = 0x0.5be6d'54661'83ebf'ffff7'3a63ap0, + .cos_x = 0x0.eeef7'00535'a9f80'001ac'd4da0p0}, + /*189*/{.x = 0x0.5e800'88139'61ec0'00000'00000p0, + .sin_x = 0x0.5c5e5'7aee4'fa8ff'fff07'af176p0, + .cos_x = 0x0.eec15'62835'6b780'00006'f7741p0}, + /*190*/{.x = 0x0.5efff'95204'63e00'00000'00000p0, + .sin_x = 0x0.5cd59'ea298'ec400'0005f'ab1c5p0, + .cos_x = 0x0.ee930'ea7c3'9b87f'ffe74'4c831p0}, + /*191*/{.x = 0x0.5f800'7580e'12340'00000'00000p0, + .sin_x = 0x0.5d4ce'9995f'61a7f'fffd4'ceb9ep0, + .cos_x = 0x0.ee648'0eb98'778ff'fffda'ab2dbp0}, + /*192*/{.x = 0x0.5ffff'6ea01'09880'00000'00000p0, + .sin_x = 0x0.5dc40'0e17d'978ff'fff0e'cd00ap0, + .cos_x = 0x0.ee35c'2b0bd'6db80'00067'2d2c4p0}, + /*193*/{.x = 0x0.607fe'b7395'ec7c0'00000'00000p0, + .sin_x = 0x0.5e3b0'55cfa'76a00'00084'71e76p0, + .cos_x = 0x0.ee06c'723a9'26e00'0014c'54339p0}, + /*194*/{.x = 0x0.60fff'dba49'12980'00000'00000p0, + .sin_x = 0x0.5eb20'def0d'5e780'00001'484d3p0, + .cos_x = 0x0.edd78'51f6d'9fe7f'ffeea'93d74p0}, + /*195*/{.x = 0x0.61800'45f85'5e580'00000'00000p0, + .sin_x = 0x0.5f28f'401bc'b227f'fff52'74496p0, + .cos_x = 0x0.eda80'be71d'ac380'00177'695bcp0}, + /*196*/{.x = 0x0.62001'91bf0'b8a40'00000'00000p0, + .sin_x = 0x0.5f9fc'f59cd'2937f'fff50'a3125p0, + .cos_x = 0x0.ed785'1fb3a'9317f'ffed5'ea9c4p0}, + /*197*/{.x = 0x0.62800'ab01c'a05c0'00000'00000p0, + .sin_x = 0x0.60167'22bf7'1c53f'fff01'4f649p0, + .cos_x = 0x0.ed486'9d035'a6980'000ab'7bf6ap0}, + /*198*/{.x = 0x0.62fff'ca946'245c0'00000'00000p0, + .sin_x = 0x0.608cf'd5b76'c6b40'000ad'85b84p0, + .cos_x = 0x0.ed184'63a5d'ef900'000d8'0b24fp0}, + /*199*/{.x = 0x0.63800'17379'f0e00'00000'00000p0, + .sin_x = 0x0.61038'1d6c2'75240'00058'261c0p0, + .cos_x = 0x0.ece7e'049fc'9877f'fffd8'2c466p0}, + /*200*/{.x = 0x0.63fff'fcf38'47d80'00000'00000p0, + .sin_x = 0x0.6179e'81cee'9c1ff'fffc4'5005cp0, + .cos_x = 0x0.ecb74'18e20'36500'0005f'eefaep0}, + /*201*/{.x = 0x0.64800'491ed'3b8c0'00000'00000p0, + .sin_x = 0x0.61f03'bef89'0f1c0'000aa'e8bb0p0, + .cos_x = 0x0.ec866'532f3'ddaff'ffe7d'd4451p0}, + /*202*/{.x = 0x0.64fff'519ed'8dd40'00000'00000p0, + .sin_x = 0x0.62666'49766'4cd7f'fffd4'ccd8bp0, + .cos_x = 0x0.ec555'5785a'99e00'0006b'84ce5p0}, + /*203*/{.x = 0x0.657ff'f7411'f6440'00000'00000p0, + .sin_x = 0x0.62dc8'c7cf8'10e00'000c3'd9324p0, + .cos_x = 0x0.ec240'0be04'bdc7f'ffff0'a63f6p0}, + /*204*/{.x = 0x0.66000'31250'fdb80'00000'00000p0, + .sin_x = 0x0.63529'5728b'72f80'0002c'8cc2cp0, + .cos_x = 0x0.ebf27'38df8'e38ff'ffe43'41ac2p0}, + /*205*/{.x = 0x0.667ff'a0f97'18e00'00000'00000p0, + .sin_x = 0x0.63c87'9f0cc'cbcff'fffe0'a9e98p0, + .cos_x = 0x0.ebc0b'04a1f'f6b00'00190'71b26p0}, + /*206*/{.x = 0x0.67000'2c790'd7c80'00000'00000p0, + .sin_x = 0x0.643e5'5d0b7'b95c0'00056'f411fp0, + .cos_x = 0x0.eb8ea'b2d29'6b17f'fff8b'b0af5p0}, + /*207*/{.x = 0x0.677ff'67baf'edc00'00000'00000p0, + .sin_x = 0x0.64b40'54b83'5f980'0007e'2530cp0, + .cos_x = 0x0.eb5c7'368cc'a4900'001f1'a32a3p0}, + /*208*/{.x = 0x0.68000'31988'7f780'00000'00000p0, + .sin_x = 0x0.6529b'280c7'7e7c0'00079'2668cp0, + .cos_x = 0x0.eb29f'7005d'ebeff'ffeba'03456p0}, + /*209*/{.x = 0x0.687fe'77dc2'8e000'00000'00000p0, + .sin_x = 0x0.659f2'17b1d'2f33f'ffff1'cdee1p0, + .cos_x = 0x0.eaf74'fb99a'a0500'001e5'34d0dp0}, + /*210*/{.x = 0x0.68fff'aa132'7b900'00000'00000p0, + .sin_x = 0x0.6614a'1f743'74940'000f5'cb52bp0, + .cos_x = 0x0.eac45'b2a68'e1480'0013c'9e46cp0}, + /*211*/{.x = 0x0.69800'024bd'b8a80'00000'00000p0, + .sin_x = 0x0.6689f'c6abe'74a3f'fff0d'20236p0, + .cos_x = 0x0.ea913'14da0'a30ff'ffe22'd29e3p0}, + /*212*/{.x = 0x0.69fff'ff861'd64c0'00000'00000p0, + .sin_x = 0x0.66ff3'804a6'b7840'00070'5286cp0, + .cos_x = 0x0.ea5dc'f1141'6bd80'001c4'68665p0}, + /*213*/{.x = 0x0.6a7ff'b8a74'18240'00000'00000p0, + .sin_x = 0x0.67745'5fa30'6d0bf'fff20'625d2p0, + .cos_x = 0x0.ea2a3'3f5e9'20bff'fff83'6b7fdp0}, + /*214*/{.x = 0x0.6afff'f2da8'095c0'00000'00000p0, + .sin_x = 0x0.67e96'173ca'6ea3f'fff1b'ab755p0, + .cos_x = 0x0.e9f65'b0dd3'1ae80'000a9'c3695p0}, + /*215*/{.x = 0x0.6b7ff'9128e'2a400'00000'00000p0, + .sin_x = 0x0.685e4'a0bf8'c6b7f'fff06'da942p0, + .cos_x = 0x0.e9c24'b9dba'ed37f'ffe88'11ec6p0}, + /*216*/{.x = 0x0.6c000'1a06f'07600'00000'00000p0, + .sin_x = 0x0.68d32'5ef00'3817f'fff2d'8e04dp0, + .cos_x = 0x0.e98df'bc1e7'4d300'000d2'd846ep0}, + /*217*/{.x = 0x0.6c7ff'45d9b'fcfc0'00000'00000p0, + .sin_x = 0x0.6947d'3b72a'9067f'ffffe'348afp0, + .cos_x = 0x0.e9597'a7381'60cff'fff22'1e520p0}, + /*218*/{.x = 0x0.6d001'a5013'1b340'00000'00000p0, + .sin_x = 0x0.69bc9'5d5ac'6cfbf'fff0a'2a818p0, + .cos_x = 0x0.e924a'9b444'06bff'ffe4a'b7246p0}, + /*219*/{.x = 0x0.6d7ff'c8dac'c3ac0'00000'00000p0, + .sin_x = 0x0.6a30f'fda0e'75b40'00086'258f0p0, + .cos_x = 0x0.e8efb'a9f2a'a787f'ffe45'7f06fp0}, + /*220*/{.x = 0x0.6e000'64c38'239c0'00000'00000p0, + .sin_x = 0x0.6aa57'3482b'bf4c0'000a7'00cb3p0, + .cos_x = 0x0.e8ba8'0f44b'84980'001ae'f6cc1p0}, + /*221*/{.x = 0x0.6e800'c34f3'81200'00000'00000p0, + .sin_x = 0x0.6b19c'88d1a'9f480'0000f'9d5e4p0, + .cos_x = 0x0.e8850'eacb2'176ff'ffeab'acf04p0}, + /*222*/{.x = 0x0.6f000'68800'25ac0'00000'00000p0, + .sin_x = 0x0.6b8df'885e0'e6c00'00099'c8f7cp0, + .cos_x = 0x0.e84f6'71c75'0e17f'fff06'b0368p0}, + /*223*/{.x = 0x0.6f7ff'dde94'bdc80'00000'00000p0, + .sin_x = 0x0.6c020'ae872'fa7ff'fff51'2ae5ep0, + .cos_x = 0x0.e8198'6c00e'97f00'00081'5259dp0}, + /*224*/{.x = 0x0.6ffff'980ae'5eec0'00000'00000p0, + .sin_x = 0x0.6c760'63220'1f1c0'00003'fec11p0, + .cos_x = 0x0.e7e36'a934a'c7f00'00027'c6ef0p0}, + /*225*/{.x = 0x0.70800'33d4a'684c0'00000'00000p0, + .sin_x = 0x0.6ce9f'3239a'6c6c0'00078'5cf32p0, + .cos_x = 0x0.e7ad0'e718f'e307f'fffc7'0fc0bp0}, + /*226*/{.x = 0x0.71000'7de5c'1e280'00000'00000p0, + .sin_x = 0x0.6d5dc'0383c'f2b80'000bf'23a5dp0, + .cos_x = 0x0.e7767'a8a5b'43c80'00157'36007p0}, + /*227*/{.x = 0x0.71800'9a670'6cc00'00000'00000p0, + .sin_x = 0x0.6dd16'f60f3'b0f3f'fff2d'd319ep0, + .cos_x = 0x0.e73fa'dfa11'f4980'00000'5a100p0}, + /*228*/{.x = 0x0.72000'4ce78'32c40'00000'00000p0, + .sin_x = 0x0.6e44f'd19e6'd2d7f'fff67'38d8bp0, + .cos_x = 0x0.e708a'a72d0'e3500'0009f'd209dp0}, + /*229*/{.x = 0x0.727ff'61ea6'ebd40'00000'00000p0, + .sin_x = 0x0.6eb86'663b6'd0740'00037'83c96p0, + .cos_x = 0x0.e6d17'16f9b'e20ff'ffe11'3b5d5p0}, + /*230*/{.x = 0x0.73000'f550e'59680'00000'00000p0, + .sin_x = 0x0.6f2bd'7f69d'70f3f'fff36'a15f2p0, + .cos_x = 0x0.e699e'd71a3'd2200'000bf'57266p0}, + /*231*/{.x = 0x0.737ff'9e9d3'b4ec0'00000'00000p0, + .sin_x = 0x0.6f9f0'3bc7e'a4f00'000ad'a4a73p0, + .cos_x = 0x0.e6624'40b89'7deff'fff49'02942p0}, + /*232*/{.x = 0x0.73ffe'b73a2'65cc0'00000'00000p0, + .sin_x = 0x0.70121'9e542'b1e40'00051'080cap0, + .cos_x = 0x0.e62a5'e1472'5d680'001f1'eea34p0}, + /*233*/{.x = 0x0.747ff'b5c94'b4800'00000'00000p0, + .sin_x = 0x0.70852'f57ac'a99c0'0002a'a3962p0, + .cos_x = 0x0.e5f23'14659'c0eff'ffffd'4efbcp0}, + /*234*/{.x = 0x0.74fff'1aafd'9e600'00000'00000p0, + .sin_x = 0x0.70f81'1a7fa'50b00'000a1'9a06cp0, + .cos_x = 0x0.e5b9d'639d7'70180'00063'1f0cfp0}, + /*235*/{.x = 0x0.757ff'21027'3c800'00000'00000p0, + .sin_x = 0x0.716ae'0c9fd'6afff'fffe9'f7df8p0, + .cos_x = 0x0.e5813'd4f52'2a67f'ffe5f'a537cp0}, + /*236*/{.x = 0x0.75fff'db657'97700'00000'00000p0, + .sin_x = 0x0.71dd9'da576'015c0'00027'5d0d4p0, + .cos_x = 0x0.e5486'602b2'3fdff'ffe78'84663p0}, + /*237*/{.x = 0x0.76800'0ddb1'b5c00'00000'00000p0, + .sin_x = 0x0.72503'66a61'210ff'ffff7'77bbcp0, + .cos_x = 0x0.e50f5'924af'91280'0011e'd1914p0}, + /*238*/{.x = 0x0.76fff'b2a25'a5900'00000'00000p0, + .sin_x = 0x0.72c2a'aaf79'ff740'0000e'451cfp0, + .cos_x = 0x0.e4d61'6f83b'cb800'00142'04f27p0}, + /*239*/{.x = 0x0.777ff'6f0e3'680c0'00000'00000p0, + .sin_x = 0x0.73350'39848'309bf'fff6b'ac1aap0, + .cos_x = 0x0.e49c9'af11e'89b80'00161'c8da3p0}, + /*240*/{.x = 0x0.77fff'4357f'52440'00000'00000p0, + .sin_x = 0x0.73a74'10a6a'068bf'fffdb'edecep0, + .cos_x = 0x0.e462e'51a1c'f9080'0015d'4429cp0}, + /*241*/{.x = 0x0.787ff'84c1c'97340'00000'00000p0, + .sin_x = 0x0.74196'7a818'b103f'fff4d'cd76bp0, + .cos_x = 0x0.e428f'314fd'7167f'ffe1b'e907bp0}, + /*242*/{.x = 0x0.78ffe'de256'f00c0'00000'00000p0, + .sin_x = 0x0.748b6'45434'c607f'fffd5'b10ccp0, + .cos_x = 0x0.e3eec'e9c10'0fbff'fffeb'eca44p0}, + /*243*/{.x = 0x0.79800'130fb'fd6c0'00000'00000p0, + .sin_x = 0x0.74fd5'e51ae'6c3c0'000f7'd5b61p0, + .cos_x = 0x0.e3b46'39bbc'51700'00118'6dd9fp0}, + /*244*/{.x = 0x0.7a000'b2d44'f5740'00000'00000p0, + .sin_x = 0x0.756f3'2be87'0ed7f'fff3a'f7eebp0, + .cos_x = 0x0.e379c'3e3d4'0517f'fffea'e3dcdp0}, + /*245*/{.x = 0x0.7a800'0b2e1'b3840'00000'00000p0, + .sin_x = 0x0.75e0d'7a0bc'29300'00068'700cap0, + .cos_x = 0x0.e33ef'4b0d2'a5d7f'ffeee'22e54p0}, + /*246*/{.x = 0x0.7affe'fa7aa'936c0'00000'00000p0, + .sin_x = 0x0.76525'93d09'3c63f'fff26'f0feap0, + .cos_x = 0x0.e303e'fc040'6a800'000aa'6dc2ap0}, + /*247*/{.x = 0x0.7b800'1d602'20680'00000'00000p0, + .sin_x = 0x0.76c3d'c810d'0d040'000ee'7a66ap0, + .cos_x = 0x0.e2c8a'1c656'd3700'0009d'1f29bp0}, + /*248*/{.x = 0x0.7c000'a4987'564c0'00000'00000p0, + .sin_x = 0x0.77353'96f5f'c98c0'00029'5bf48p0, + .cos_x = 0x0.e28d1'f9207'78c7f'ffe00'a252cp0}, + /*249*/{.x = 0x0.7c800'43053'05f40'00000'00000p0, + .sin_x = 0x0.77a66'baf98'f987f'fff58'3e19ap0, + .cos_x = 0x0.e2516'b7fd6'7e97f'ffffb'fc4e9p0}, + /*250*/{.x = 0x0.7cfff'0040a'b9100'00000'00000p0, + .sin_x = 0x0.78177'39b0b'1c300'00057'b7ba0p0, + .cos_x = 0x0.e2158'578eb'a9900'0003b'1b176p0}, + /*251*/{.x = 0x0.7d7ff'f72eb'29100'00000'00000p0, + .sin_x = 0x0.78887'cf3b1'50300'000bd'3f892p0, + .cos_x = 0x0.e1d95'63abb'4d97f'ffe8b'd901dp0}, + /*252*/{.x = 0x0.7e000'8677a'347c0'00000'00000p0, + .sin_x = 0x0.78f96'26d7a'1ecff'fff67'e91b6p0, + .cos_x = 0x0.e19cf'1883d'e177f'fff12'010ffp0}, + /*253*/{.x = 0x0.7e7ff'ea5ff'41cc0'00000'00000p0, + .sin_x = 0x0.796a1'92ba5'e6f00'000e8'3afddp0, + .cos_x = 0x0.e1605'd466d'14dff'ffe06'b4e71p0}, + /*254*/{.x = 0x0.7f000'57361'47600'00000'00000p0, + .sin_x = 0x0.79dac'023c9'30200'00084'8dedcp0, + .cos_x = 0x0.e1238'8d370'79c7f'fffc1'7329bp0}, + /*255*/{.x = 0x0.7f800'52cd9'392c0'00000'00000p0, + .sin_x = 0x0.7a4b4'26a33'e9e80'0000c'8767fp0, + .cos_x = 0x0.e0e67'f7329'87c7f'ffe40'e3b3bp0}, + /*256*/{.x = 0x0.7ffff'ca763'02e00'00000'00000p0, + .sin_x = 0x0.7abb9'ee16c'611ff'fffe2'29571p0, + .cos_x = 0x0.e0a94'1cd8a'8e580'00033'06481p0}, + /*257*/{.x = 0x0.80800'488b9'e8600'00000'00000p0, + .sin_x = 0x0.7b2be'b0eae'bb580'000d7'aa60ap0, + .cos_x = 0x0.e06bc'420e2'0c900'0005c'16605p0}, + /*258*/{.x = 0x0.80fff'0261d'81d80'00000'00000p0, + .sin_x = 0x0.7b9bf'faca0'cb9ff'fffa6'9e851p0, + .cos_x = 0x0.e02e1'bf841'9cc7f'ffef9'28fedp0}, + /*259*/{.x = 0x0.81802'cf8a2'3b180'00000'00000p0, + .sin_x = 0x0.7c0c3'c76e1'00cff'fffa1'a83c8p0, + .cos_x = 0x0.dff01'47c61'6f400'000da'34f98p0}, + /*260*/{.x = 0x0.82000'85241'eb600'00000'00000p0, + .sin_x = 0x0.7c7c0'4f484'b7a3f'fff6e'e14dfp0, + .cos_x = 0x0.dfb20'43513'd8c80'00093'9381ap0}, + /*261*/{.x = 0x0.82800'94ed4'6f180'00000'00000p0, + .sin_x = 0x0.7cebc'f3eeb'a993f'fff58'faf74p0, + .cos_x = 0x0.df73a'9c3b1'f14ff'fff96'13990p0}, + /*262*/{.x = 0x0.83000'036df'14a80'00000'00000p0, + .sin_x = 0x0.7d5b7'183ea'92500'00051'64c61p0, + .cos_x = 0x0.df351'c642a'949ff'ffef6'3445ap0}, + /*263*/{.x = 0x0.837ff'd0dd7'a7080'00000'00000p0, + .sin_x = 0x0.7dcaf'9a169'73e3f'ffffa'0502ep0, + .cos_x = 0x0.def65'454ec'53980'00171'0c4d1p0}, + /*264*/{.x = 0x0.84000'633fb'3de00'00000'00000p0, + .sin_x = 0x0.7e3a6'd032f'eae00'000fd'22d8ep0, + .cos_x = 0x0.deb74'e7914'a4cff'fffc3'37d72p0}, + /*265*/{.x = 0x0.84801'407f6'59a00'00000'00000p0, + .sin_x = 0x0.7ea9c'4e2cb'702ff'fff8e'36052p0, + .cos_x = 0x0.de780'e96ca'31dff'ffe03'163d5p0}, + /*266*/{.x = 0x0.85000'9f52c'1d300'00000'00000p0, + .sin_x = 0x0.7f18e'851b6'40a40'000c9'4d95cp0, + .cos_x = 0x0.de38a'2e848'7e3ff'ffe3f'5a499p0}, + /*267*/{.x = 0x0.85803'7df80'a7500'00000'00000p0, + .sin_x = 0x0.7f881'c8b5d'67c3f'fffeb'08a8cp0, + .cos_x = 0x0.ddf8e'3d00b'ba500'001e3'33aa7p0}, + /*268*/{.x = 0x0.86000'641dd'98480'00000'00000p0, + .sin_x = 0x0.7ff6d'e0eae'79a40'0001b'67e2dp0, + .cos_x = 0x0.ddb91'cd262'e3900'0001c'c225fp0}, + /*269*/{.x = 0x0.867ff'349eb'bfd00'00000'00000p0, + .sin_x = 0x0.80659'a3099'f9780'00114'bbad3p0, + .cos_x = 0x0.dd790'f3263'c6d00'001ff'47685p0}, + /*270*/{.x = 0x0.87000'dd044'59780'00000'00000p0, + .sin_x = 0x0.80d45'd92be'3187f'ffffc'4a78ap0, + .cos_x = 0x0.dd38b'35faa'df77f'fffd0'cd6dbp0}, + /*271*/{.x = 0x0.87801'403a9'58a00'00000'00000p0, + .sin_x = 0x0.8142e'f2774'7757f'fff39'5918ap0, + .cos_x = 0x0.dcf82'a6af5'e02ff'fffbf'95c06p0}, + /*272*/{.x = 0x0.88000'637f7'8ee80'00000'00000p0, + .sin_x = 0x0.81b14'f2ac2'68a00'00024'93222p0, + .cos_x = 0x0.dcb77'45441'd3a00'0015a'89d99p0}, + /*273*/{.x = 0x0.88801'9d014'9d000'00000'00000p0, + .sin_x = 0x0.821fa'b89f4'54cff'ffef5'ffcd6p0, + .cos_x = 0x0.dc767'622c7'841ff'fff7d'43c37p0}, + /*274*/{.x = 0x0.88fff'cd148'8b780'00000'00000p0, + .sin_x = 0x0.828db'd8b77'63d00'000f5'6b3ccp0, + .cos_x = 0x0.dc355'98a5d'2f97f'fff5d'76651p0}, + /*275*/{.x = 0x0.89800'ff4f0'72e80'00000'00000p0, + .sin_x = 0x0.82fbd'853ac'5e380'001a9'aa12ap0, + .cos_x = 0x0.dbf3e'd5cb6'5687f'fff48'5f5a8p0}, + /*276*/{.x = 0x0.89fff'93ab5'5a680'00000'00000p0, + .sin_x = 0x0.8369a'e6524'ed9ff'fff2d'6c661p0, + .cos_x = 0x0.dbb25'f9f78'f4d80'00088'07aa3p0}, + /*277*/{.x = 0x0.8a800'bac0a'c7980'00000'00000p0, + .sin_x = 0x0.83d78'6f23b'2367f'ffe88'1ebf8p0, + .cos_x = 0x0.db708'5d532'd28ff'ffecb'39a1dp0}, + /*278*/{.x = 0x0.8afff'92a54'58c80'00000'00000p0, + .sin_x = 0x0.84451'edd4e'fe6ff'ffea7'a6dd9p0, + .cos_x = 0x0.db2e8'8364a'89dff'ffe98'37f9dp0}, + /*279*/{.x = 0x0.8b800'2caea'02380'00000'00000p0, + .sin_x = 0x0.84b2a'dcfd7'd74ff'ffeb4'7314ap0, + .cos_x = 0x0.daec4'54647'a9300'00181'90c17p0}, + /*280*/{.x = 0x0.8bfff'e04ef'88200'00000'00000p0, + .sin_x = 0x0.85200'f43d4'1b07f'fff29'4539cp0, + .cos_x = 0x0.daa9d'3100f'92aff'fff34'322f1p0}, + /*281*/{.x = 0x0.8c7ff'836c3'27500'00000'00000p0, + .sin_x = 0x0.858d4'e90e3'b1200'000f1'4f564p0, + .cos_x = 0x0.da672'abd4b'4be80'000cf'c2eaap0}, + /*282*/{.x = 0x0.8d000'5fea4'4b080'00000'00000p0, + .sin_x = 0x0.85fa7'd2e35'9a6ff'ffeab'c4841p0, + .cos_x = 0x0.da244'19592'c557f'ffe15'b648ep0}, + /*283*/{.x = 0x0.8d801'7744c'81680'00000'00000p0, + .sin_x = 0x0.86678'd673c'2797f'ffe0a'8edcfp0, + .cos_x = 0x0.d9e11'fea99'10400'0011d'a34a3p0}, + /*284*/{.x = 0x0.8e000'2c8c6'ee180'00000'00000p0, + .sin_x = 0x0.86d45'b9393'61480'00110'7e19bp0, + .cos_x = 0x0.d99dd'bcd7c'e937f'fff52'76e43p0}, + /*285*/{.x = 0x0.8e7fd'afc72'd4280'00000'00000p0, + .sin_x = 0x0.8740f'7d826'36280'00080'522d6p0, + .cos_x = 0x0.d95a6'b75a3'e4f7f'ffe9f'14fa7p0}, + /*286*/{.x = 0x0.8efff'd7bcf'8cd00'00000'00000p0, + .sin_x = 0x0.87adb'1623e'30200'00157'c7e80p0, + .cos_x = 0x0.d9169'd88ac'68c7f'ffe98'7f67ep0}, + /*287*/{.x = 0x0.8f800'8521b'fe600'00000'00000p0, + .sin_x = 0x0.881a3'4e482'5527f'ffe99'85b6ep0, + .cos_x = 0x0.d8d2a'5cd07'5c17f'fff25'ff39cp0}, + /*288*/{.x = 0x0.8ffff'd6452'ed680'00000'00000p0, + .sin_x = 0x0.88868'3f0e7'2b2ff'fff6c'3cd75p0, + .cos_x = 0x0.d88e8'36f27'efa7f'ffeaf'1ef86p0}, + /*289*/{.x = 0x0.907ff'fe5df'cbe00'00000'00000p0, + .sin_x = 0x0.88f2b'c3b54'4dd00'00127'2471bp0, + .cos_x = 0x0.d84a2'3c704'9ed7f'fffba'2fbc8p0}, + /*290*/{.x = 0x0.91000'038e3'6f480'00000'00000p0, + .sin_x = 0x0.895ed'0706b'f8100'00005'06b32p0, + .cos_x = 0x0.d8058'f35f1'be8ff'ffe6a'4f68dp0}, + /*291*/{.x = 0x0.917ff'ce613'ccc80'00000'00000p0, + .sin_x = 0x0.89cab'f3aa0'12980'00109'41733p0, + .cos_x = 0x0.d7c0c'699d7'cc27f'ffea9'1137ep0}, + /*292*/{.x = 0x0.92000'b97b4'87200'00000'00000p0, + .sin_x = 0x0.8a369'abe5f'40100'001ab'78f29p0, + .cos_x = 0x0.d77bb'e561e'79680'00080'035a4p0}, + /*293*/{.x = 0x0.927fe'5bf6c'ced00'00000'00000p0, + .sin_x = 0x0.8aa22'78184'97480'00174'7f647p0, + .cos_x = 0x0.d7369'c9aba'e9b7f'fffaa'3d4b1p0}, + /*294*/{.x = 0x0.92fff'e13c5'b0f80'00000'00000p0, + .sin_x = 0x0.8b0dc'5e47f'46600'00062'56bbcp0, + .cos_x = 0x0.d6f12'36bf0'22e80'000ca'643dep0}, + /*295*/{.x = 0x0.93801'64624'68080'00000'00000p0, + .sin_x = 0x0.8b794'15a52'f7d7f'fffe8'f3f3bp0, + .cos_x = 0x0.d6ab7'47ef1'2fd00'00046'310ebp0}, + /*296*/{.x = 0x0.94001'21687'30980'00000'00000p0, + .sin_x = 0x0.8be48'21f7a'eedff'ffeb6'64aefp0, + .cos_x = 0x0.d6659'f5554'ceb7f'fff74'da9bdp0}, + /*297*/{.x = 0x0.947ff'f3b8a'7a780'00000'00000p0, + .sin_x = 0x0.8c4f9'3a8bb'52aff'ffff5'5af55p0, + .cos_x = 0x0.d61f9'ca01b'09f7f'fff41'b332bp0}, + /*298*/{.x = 0x0.94ffd'945fa'c6680'00000'00000p0, + .sin_x = 0x0.8cba7'23316'aba00'001d4'195e6p0, + .cos_x = 0x0.d5d96'ef332'43b80'00053'b09e4p0}, + /*299*/{.x = 0x0.95803'00805'0e380'00000'00000p0, + .sin_x = 0x0.8d259'5b006'a7100'0014b'de3bep0, + .cos_x = 0x0.d592c'72c49'c9aff'ffeb4'5bf11p0}, + /*300*/{.x = 0x0.96000'48355'4f380'00000'00000p0, + .sin_x = 0x0.8d902'9281f'5d57f'fff1a'2f152p0, + .cos_x = 0x0.d54c3'1c2a3'bab7f'fffc9'3d204p0}, + /*301*/{.x = 0x0.96800'70192'4be00'00000'00000p0, + .sin_x = 0x0.8dfab'f9da0'4af7f'ffe4a'6e0a3p0, + .cos_x = 0x0.d5054'da584'47dff'ffea7'599c5p0}, + /*302*/{.x = 0x0.96ffe'277ce'a3600'00000'00000p0, + .sin_x = 0x0.8e651'2236d'f947f'ffef5'59b07p0, + .cos_x = 0x0.d4be4'9fadb'2d780'001a4'e08e9p0}, + /*303*/{.x = 0x0.977ff'716c5'68f80'00000'00000p0, + .sin_x = 0x0.8ecf7'09494'68f00'00000'e91cbp0, + .cos_x = 0x0.d476f'15c16'69180'0012b'1e4c0p0}, + /*304*/{.x = 0x0.98001'24628'8b680'00000'00000p0, + .sin_x = 0x0.8f39b'0b72e'64dff'fff14'6c00fp0, + .cos_x = 0x0.d42f5'fe250'a997f'ffe07'c3f2cp0}, + /*305*/{.x = 0x0.98800'e4f8a'a0580'00000'00000p0, + .sin_x = 0x0.8fa3b'333a3'dceff'ffec0'f328dp0, + .cos_x = 0x0.d3e7a'ac050'8b780'00090'e0fd2p0}, + /*306*/{.x = 0x0.98ffe'bb216'aea80'00000'00000p0, + .sin_x = 0x0.900d7'872c2'69c80'00128'7da90p0, + .cos_x = 0x0.d39fd'1e725'71e00'0005d'f5019p0}, + /*307*/{.x = 0x0.99800'30422'3f800'00000'00000p0, + .sin_x = 0x0.90774'9963a'8ebff'ffe34'2f3d5p0, + .cos_x = 0x0.d357a'390ef'3037f'fff47'37986p0}, + /*308*/{.x = 0x0.99fff'45ef0'da680'00000'00000p0, + .sin_x = 0x0.90e0d'741aa'fb080'00051'7818cp0, + .cos_x = 0x0.d30f5'5cdfb'a6e00'000b1'0fa07p0}, + /*309*/{.x = 0x0.9a801'c2191'f3d00'00000'00000p0, + .sin_x = 0x0.914a6'd8898'40dff'ffe01'71e9bp0, + .cos_x = 0x0.d2c6b'472ab'5937f'fff79'533afp0}, + /*310*/{.x = 0x0.9b000'4ae02'81780'00000'00000p0, + .sin_x = 0x0.91b3a'b6cc9'fe0ff'fff72'eab9cp0, + .cos_x = 0x0.d27e0'23f02'90d80'001b6'983dbp0}, + /*311*/{.x = 0x0.9b800'c9929'6ec80'00000'00000p0, + .sin_x = 0x0.921cd'eb39b'ce77f'fff8b'6c9d4p0, + .cos_x = 0x0.d2350'99794'ce7ff'fffd6'16c69p0}, + /*312*/{.x = 0x0.9c000'82202'c1800'00000'00000p0, + .sin_x = 0x0.9285e'34707'23180'001fa'30a1ap0, + .cos_x = 0x0.d1ebe'372ef'935ff'fffe0'79d63p0}, + /*313*/{.x = 0x0.9c800'5bda2'23480'00000'00000p0, + .sin_x = 0x0.92eec'4ee2d'55d80'00052'b579bp0, + .cos_x = 0x0.d1a28'7a657'e7900'00087'a9486p0}, + /*314*/{.x = 0x0.9cfff'b2d45'bc900'00000'00000p0, + .sin_x = 0x0.93577'b2c42'e1500'000bb'1f9f1p0, + .cos_x = 0x0.d158f'c2721'6d200'001ad'e1c29p0}, + /*315*/{.x = 0x0.9d801'b2414'71580'00000'00000p0, + .sin_x = 0x0.93c02'f556e'c0a00'000b4'53f82p0, + .cos_x = 0x0.d10f2'3cec8'10400'0005e'f644fp0}, + /*316*/{.x = 0x0.9e000'1b8da'cf600'00000'00000p0, + .sin_x = 0x0.94288'fb042'6de80'001b0'8fe01p0, + .cos_x = 0x0.d0c53'84e52'c9d80'00023'80f28p0}, + /*317*/{.x = 0x0.9e7ff'b035f'27100'00000'00000p0, + .sin_x = 0x0.9490d'a4c50'97fff'ffff7'3ef98p0, + .cos_x = 0x0.d07b0'dd5a1'b5600'001a8'8224dp0}, + /*318*/{.x = 0x0.9f000'80b4b'34400'00000'00000p0, + .sin_x = 0x0.94f90'fd5b2'6b580'00166'c3416p0, + .cos_x = 0x0.d030a'3c6f1'01aff'fffaa'027fep0}, + /*319*/{.x = 0x0.9f7ff'5739a'fe580'00000'00000p0, + .sin_x = 0x0.95610'66ac0'd4eff'ffe7e'6b81fp0, + .cos_x = 0x0.cfe61'81562'ccd80'0006b'43f58p0}, + /*320*/{.x = 0x0.9ffff'6f2bf'24500'00000'00000p0, + .sin_x = 0x0.95c8e'7fd0c'fa880'001ee'8443cp0, + .cos_x = 0x0.cf9b4'cb85a'ebcff'ffe92'05402p0}, + /*321*/{.x = 0x0.a0800'975a2'b0b00'00000'00000p0, + .sin_x = 0x0.9630b'1e39d'7b0ff'fff48'30903p0, + .cos_x = 0x0.cf504'377dc'01b00'001bf'626f2p0}, + /*322*/{.x = 0x0.a0fff'443fb'd5480'00000'00000p0, + .sin_x = 0x0.96983'61760'10000'00051'7f426p0, + .cos_x = 0x0.cf051'dafb5'c1800'0014d'd4ef1p0}, + /*323*/{.x = 0x0.a17ff'e3124'23680'00000'00000p0, + .sin_x = 0x0.96ffa'dd2eb'44b00'0012d'c0a73p0, + .cos_x = 0x0.ceb9b'1dc4a'a2aff'fff6d'57f4dp0}, + /*324*/{.x = 0x0.a2000'd2ca8'75900'00000'00000p0, + .sin_x = 0x0.97670'3dc6b'40600'00021'08f02p0, + .cos_x = 0x0.ce6e0'f54ee'b0dff'ffe3a'8af3ep0}, + /*325*/{.x = 0x0.a2800'aa80c'a4f00'00000'00000p0, + .sin_x = 0x0.97ce2'5ebdd'04c80'0018e'f5d8cp0, + .cos_x = 0x0.ce224'386a5'94700'00102'9b918p0}, + /*326*/{.x = 0x0.a2ffe'e1032'c9c80'00000'00000p0, + .sin_x = 0x0.98350'd1207'd32ff'fffd5'19fbfp0, + .cos_x = 0x0.cdd65'3b2a8'e7e80'000a1'3073cp0}, + /*327*/{.x = 0x0.a3800'b5087'2d880'00000'00000p0, + .sin_x = 0x0.989bf'cad40'f8eff'fff58'16f45p0, + .cos_x = 0x0.cd8a0'e047e'26800'0013a'2adedp0}, + /*328*/{.x = 0x0.a3fff'75ad5'd6480'00000'00000p0, + .sin_x = 0x0.99029'e9bed'd527f'fffa5'c07d7p0, + .cos_x = 0x0.cd3db'24620'1f0ff'fff31'49badp0}, + /*329*/{.x = 0x0.a4800'd5636'e8700'00000'00000p0, + .sin_x = 0x0.99693'be97b'4a200'000c2'df2d8p0, + .cos_x = 0x0.ccf10'a2606'f3e7f'ffe51'76270p0}, + /*330*/{.x = 0x0.a4ffe'19eed'40a00'00000'00000p0, + .sin_x = 0x0.99cf7'e4b05'9a700'0015a'8aca7p0, + .cos_x = 0x0.cca45'63120'720ff'ffe1c'f38c6p0}, + /*331*/{.x = 0x0.a57ff'e514e'e5880'00000'00000p0, + .sin_x = 0x0.9a35d'41fda'55b00'001c4'55fdap0, + .cos_x = 0x0.cc574'3974e'da180'000cc'79c39p0}, + /*332*/{.x = 0x0.a6000'7bd35'a2980'00000'00000p0, + .sin_x = 0x0.9a9bf'3f904'9827f'fff8c'dc0fap0, + .cos_x = 0x0.cc0a0'974e7'7cf80'00053'352cap0}, + /*333*/{.x = 0x0.a67fe'b0315'9b400'00000'00000p0, + .sin_x = 0x0.9b01c'ec93d'81c00'000af'1d86ap0, + .cos_x = 0x0.cbbcb'361c9'84700'00004'8b9d7p0}, + /*334*/{.x = 0x0.a7000'94903'61b00'00000'00000p0, + .sin_x = 0x0.9b67b'1cd0c'19800'0008e'0c469p0, + .cos_x = 0x0.cb6f0'6a571'0147f'ffebe'9a4fbp0}, + /*335*/{.x = 0x0.a77ff'38ab4'e7600'00000'00000p0, + .sin_x = 0x0.9bcd4'49e70'd2900'000b7'f1968p0, + .cos_x = 0x0.cb214'69d90'7a500'0010e'a1b9ap0}, + /*336*/{.x = 0x0.a7fff'e7f25'a2500'00000'00000p0, + .sin_x = 0x0.9c32c'a71c7'60080'00042'b39f5p0, + .cos_x = 0x0.cad33'feb36'fcdff'fff2a'd0ec0p0}, + /*337*/{.x = 0x0.a8800'2babb'45f80'00000'00000p0, + .sin_x = 0x0.9c982'3e061'93b00'00074'6de45p0, + .cos_x = 0x0.ca850'a9804'907ff'fffff'ab048p0}, + /*338*/{.x = 0x0.a8fff'afa36'2e880'00000'00000p0, + .sin_x = 0x0.9cfd4'caee0'b3aff'fff9a'04868p0, + .cos_x = 0x0.ca36a'9f9b3'8717f'ffecd'a10d7p0}, + /*339*/{.x = 0x0.a9802'8d07f'90380'00000'00000p0, + .sin_x = 0x0.9d627'886c8'6db00'00180'7441cp0, + .cos_x = 0x0.c9e7f'5e1c3'44300'001ba'97bffp0}, + /*340*/{.x = 0x0.a9fff'5ca21'90f80'00000'00000p0, + .sin_x = 0x0.9dc73'0a2ab'6ce00'001e2'9e241p0, + .cos_x = 0x0.c9994'ade68'58300'0012e'31c52p0}, + /*341*/{.x = 0x0.aa7fe'c266a'85980'00000'00000p0, + .sin_x = 0x0.9e2be'1f6aa'ac200'000de'5da2cp0, + .cos_x = 0x0.c94a5'40ae9'c8300'000ed'200e9p0}, + /*342*/{.x = 0x0.aaffe'5ea9c'23700'00000'00000p0, + .sin_x = 0x0.9e906'e722b'ecd80'00049'014ffp0, + .cos_x = 0x0.c8fb2'8d05d'd0bff'ffeb1'47492p0}, + /*343*/{.x = 0x0.ab7ff'49b0b'1b600'00000'00000p0, + .sin_x = 0x0.9ef4e'3b408'8c37f'ffeab'5a5aap0, + .cos_x = 0x0.c8abb'e5e1c'70a80'00106'2a1e1p0}, + /*344*/{.x = 0x0.abffe'51b71'acd80'00000'00000p0, + .sin_x = 0x0.9f591'98f28'b2f00'00101'fd274p0, + .cos_x = 0x0.c85c3'47fc0'7d380'00121'2f8fbp0}, + /*345*/{.x = 0x0.ac7ff'2ad8f'2a100'00000'00000p0, + .sin_x = 0x0.9fbd3'e54e8'c01ff'ffe79'f2ca2p0, + .cos_x = 0x0.c80c6'672fc'8327f'fff53'cdd8ep0}, + /*346*/{.x = 0x0.ad000'0ddb0'd6f00'00000'00000p0, + .sin_x = 0x0.a0213'b9e2b'5d2ff'ffea0'b0131p0, + .cos_x = 0x0.c7bc6'5f5ad'774ff'ffed5'7fcd4p0}, + /*347*/{.x = 0x0.ad800'a1159'df600'00000'00000p0, + .sin_x = 0x0.a0850'cf3e2'2ad80'000c7'0703ep0, + .cos_x = 0x0.c76c3'69e96'5c500'00109'7a6c0p0}, + /*348*/{.x = 0x0.adffd'd9cc2'5b900'00000'00000p0, + .sin_x = 0x0.a0e88'c66ee'1bdff'ffebb'1fdf4p0, + .cos_x = 0x0.c71bf'71f31'f5200'00151'3774cp0}, + /*349*/{.x = 0x0.ae800'00ce1'64880'00000'00000p0, + .sin_x = 0x0.a14c2'0ff5a'5e37f'ffec7'd69bcp0, + .cos_x = 0x0.c6cb5'4461a'dab80'0007c'ae241p0}, + /*350*/{.x = 0x0.aefff'53d0c'ef980'00000'00000p0, + .sin_x = 0x0.a1af6'a19e9'a947f'ffffa'2b5c8p0, + .cos_x = 0x0.c67a9'c33aa'c2300'0017b'472bbp0}, + /*351*/{.x = 0x0.af7ff'9099d'9e080'00000'00000p0, + .sin_x = 0x0.a2129'61eca'4b27f'fff1f'22b74p0, + .cos_x = 0x0.c629a'94aee'f817f'fff15'3ac06p0}, + /*352*/{.x = 0x0.b0000'6645c'7e500'00000'00000p0, + .sin_x = 0x0.a275a'0ff1c'd5d80'000b1'0ff46p0, + .cos_x = 0x0.c5d87'ec47b'ec7ff'fffd2'f2f4cp0}, + /*353*/{.x = 0x0.b0800'331c0'57a00'00000'00000p0, + .sin_x = 0x0.a2d87'67409'cb57f'fff89'73a32p0, + .cos_x = 0x0.c5872'd450a'7faff'ffe7d'd073bp0}, + /*354*/{.x = 0x0.b1000'bfa31'd7d80'00000'00000p0, + .sin_x = 0x0.a33b2'c6f96'f85ff'ffeef'58c03p0, + .cos_x = 0x0.c535a'2c2a7'f8e80'001d9'e4e43p0}, + /*355*/{.x = 0x0.b17fe'6802b'da080'00000'00000p0, + .sin_x = 0x0.a39d9'602ab'37880'00159'19c92p0, + .cos_x = 0x0.c4e40'47ce8'a1b7f'ffe82'e08adp0}, + /*356*/{.x = 0x0.b1fff'f4fe8'27b00'00000'00000p0, + .sin_x = 0x0.a4000'69a51'f4d00'000f6'98f0dp0, + .cos_x = 0x0.c4920'd33bb'84480'00090'65d8fp0}, + /*357*/{.x = 0x0.b27fe'4ef2a'75600'00000'00000p0, + .sin_x = 0x0.a4622'6e429'ecf00'00186'0412ep0, + .cos_x = 0x0.c4400'591af'7e100'00018'e2b4ap0}, + /*358*/{.x = 0x0.b3000'6bc06'26180'00000'00000p0, + .sin_x = 0x0.a4c44'c3505'0bf80'001ce'22a26p0, + .cos_x = 0x0.c3eda'63883'ffc80'00005'05f61p0}, + /*359*/{.x = 0x0.b37fe'485bf'67100'00000'00000p0, + .sin_x = 0x0.a5261'4476d'346ff'ffe29'16850p0, + .cos_x = 0x0.c39b4'1aa38'16eff'fff11'21e34p0}, + /*360*/{.x = 0x0.b4001'1ee15'05400'00000'00000p0, + .sin_x = 0x0.a587e'fe2c3'92500'00072'a544ep0, + .cos_x = 0x0.c3487'8d3c4'ca300'0007b'd3a22p0}, + /*361*/{.x = 0x0.b4800'10561'c1780'00000'00000p0, + .sin_x = 0x0.a5e97'2898d'25100'00187'196a6p0, + .cos_x = 0x0.c2f5a'76b9e'f87ff'fff3b'f56d2p0}, + /*362*/{.x = 0x0.b5000'5b0dc'ad880'00000'00000p0, + .sin_x = 0x0.a64ad'c28ef'bd87f'fffd4'93106p0, + .cos_x = 0x0.c2a29'74e8b'61080'0002e'c05f6p0}, + /*363*/{.x = 0x0.b57ff'84c1a'22f80'00000'00000p0, + .sin_x = 0x0.a6ac0'e7cab'70380'0002f'ef54dp0, + .cos_x = 0x0.c24f6'247f2'444ff'ffe7b'c0fb0p0}, + /*364*/{.x = 0x0.b5fff'ee782'37300'00000'00000p0, + .sin_x = 0x0.a70d2'655eb'cae80'000d6'6e775p0, + .cos_x = 0x0.c1fbe'faa89'5bd7f'fff6a'a1201p0}, + /*365*/{.x = 0x0.b6800'b2203'25600'00000'00000p0, + .sin_x = 0x0.a76e1'8a837'634ff'ffecc'dbaf7p0, + .cos_x = 0x0.c1a84'8dbef'aef80'001f6'a1496p0}, + /*366*/{.x = 0x0.b6ffe'98f37'a9180'00000'00000p0, + .sin_x = 0x0.a7ceb'e8018'e6f00'00060'3ad28p0, + .cos_x = 0x0.c1548'f9ff1'71e00'001a3'acfe5p0}, + /*367*/{.x = 0x0.b7800'131a6'fda00'00000'00000p0, + .sin_x = 0x0.a82f6'59b8c'ec380'00160'c7d99p0, + .cos_x = 0x0.c1008'092a6'7ac7f'ffeb8'46e14p0}, + /*368*/{.x = 0x0.b7fff'6715f'1f300'00000'00000p0, + .sin_x = 0x0.a88fc'8ba72'02b7f'fffb4'83352p0, + .cos_x = 0x0.c0ac5'7d783'4b100'0013e'1aa97p0}, + /*369*/{.x = 0x0.b87ff'bffca'2c700'00000'00000p0, + .sin_x = 0x0.a8f00'dfd1a'8dc00'000c0'b238ap0, + .cos_x = 0x0.c057f'43672'8f2ff'fff9a'2c39fp0}, + /*370*/{.x = 0x0.b8ffb'83602'3dd80'00000'00000p0, + .sin_x = 0x0.a94ff'1fcf0'ddaff'ffeae'df97fp0, + .cos_x = 0x0.c0039'0fd62'0c100'00144'15043p0}, + /*371*/{.x = 0x0.b97ff'f24d9'1ca00'00000'00000p0, + .sin_x = 0x0.a9b01'3b40d'bac7f'fffef'5d5f9p0, + .cos_x = 0x0.bfaea'2030a'cce80'00014'2d226p0}, + /*372*/{.x = 0x0.b9fff'd6b83'6a400'00000'00000p0, + .sin_x = 0x0.aa0fd'4812d'5a07f'fffc7'cc0c5p0, + .cos_x = 0x0.bf59b'32c14'39bff'ffee0'de443p0}, + /*373*/{.x = 0x0.ba801'8bcc5'b1500'00000'00000p0, + .sin_x = 0x0.aa6f8'076e9'3547f'fff17'3785bp0, + .cos_x = 0x0.bf048'12a4d'de57f'ffedf'4d10ep0}, + /*374*/{.x = 0x0.bb000'1be99'f8000'00000'00000p0, + .sin_x = 0x0.aaced'c4532'a537f'ffe5f'00587p0, + .cos_x = 0x0.beaf4'0e46d'dedff'fff1e'f8184p0}, + /*375*/{.x = 0x0.bb7fe'172f0'55300'00000'00000p0, + .sin_x = 0x0.ab2e0'68454'ca280'00133'140cfp0, + .cos_x = 0x0.be59d'73c4c'e077f'ffeb8'2e6f8p0}, + /*376*/{.x = 0x0.bbfff'7f470'b3100'00000'00000p0, + .sin_x = 0x0.ab8d2'ebab5'8de80'0000d'3aa31p0, + .cos_x = 0x0.be041'95c77'd0c00'00154'79c06p0}, + /*377*/{.x = 0x0.bc800'da5bd'7e680'00000'00000p0, + .sin_x = 0x0.abec2'b6471'90900'000ca'da867p0, + .cos_x = 0x0.bdae2'c76b9'fc700'0009c'9313ep0}, + /*378*/{.x = 0x0.bd000'8729f'25400'00000'00000p0, + .sin_x = 0x0.ac4ae'920ac'afd7f'fffa3'73354p0, + .cos_x = 0x0.bd582'22eb5'8fa7f'fffe2'ebcb2p0}, + /*379*/{.x = 0x0.bd7ff'c9c5f'04d00'00000'00000p0, + .sin_x = 0x0.aca97'6e731'8e700'000aa'4a67dp0, + .cos_x = 0x0.bd01e'd0e81'8fd00'001e1'ba170p0}, + /*380*/{.x = 0x0.be000'49c93'f9c00'00000'00000p0, + .sin_x = 0x0.ad07e'82a1d'52a00'000cd'd8097p0, + .cos_x = 0x0.bcab7'b4e06'bb700'001a4'85ccap0}, + /*381*/{.x = 0x0.be800'00e5f'3de00'00000'00000p0, + .sin_x = 0x0.ad662'4e8e8'21280'000c7'db9f9p0, + .cos_x = 0x0.bc54e'2de08'91580'000ee'4b764p0}, + /*382*/{.x = 0x0.bf000'ad5ea'1de00'00000'00000p0, + .sin_x = 0x0.adc44'1941b'd827f'ffe93'2bd10p0, + .cos_x = 0x0.bbfe1'0f378'd287f'fff4a'880cap0}, + /*383*/{.x = 0x0.bf800'320f9'ebc80'00000'00000p0, + .sin_x = 0x0.ae222'539ef'f0400'00140'a90a6p0, + .cos_x = 0x0.bba71'c948e'636ff'fff7d'9a0f1p0}, + /*384*/{.x = 0x0.bffff'd63b7'cca00'00000'00000p0, + .sin_x = 0x0.ae7fd'ecd02'fb980'0015a'0a606p0, + .cos_x = 0x0.bb4ff'7fa2f'ebcff'fff11'ab094p0}, + /*385*/{.x = 0x0.c0800'212d2'dbe80'00000'00000p0, + .sin_x = 0x0.aedd7'460e3'e2c00'00113'd765cp0, + .cos_x = 0x0.baf89'd715b'ea000'00163'58745p0}, + /*386*/{.x = 0x0.c1002'54f09'fd900'00000'00000p0, + .sin_x = 0x0.af3af'47ff3'c687f'fffa5'f52b6p0, + .cos_x = 0x0.baa0f'f3d77'ac9ff'fff6b'9b447p0}, + /*387*/{.x = 0x0.c1800'238b3'64480'00000'00000p0, + .sin_x = 0x0.af981'58c08'e8200'00166'c5130p0, + .cos_x = 0x0.ba496'283de'0157f'ffe2e'e5bbbp0}, + /*388*/{.x = 0x0.c1ffe'52cd8'20380'00000'00000p0, + .sin_x = 0x0.aff50'f2d6d'e5100'000ae'50e1fp0, + .cos_x = 0x0.b9f19'32a7e'd0a00'001b1'3cd72p0}, + /*389*/{.x = 0x0.c27fd'fd70d'40a80'00000'00000p0, + .sin_x = 0x0.b051e'e164f'63100'00094'4f548p0, + .cos_x = 0x0.b9998'51511'40080'00142'9c362p0}, + /*390*/{.x = 0x0.c2fff'ae0e7'eb800'00000'00000p0, + .sin_x = 0x0.b0aeb'85bc1'92900'00153'0266cp0, + .cos_x = 0x0.b9413'24548'd8b00'00038'93d92p0}, + /*391*/{.x = 0x0.c3800'6df90'28100'00000'00000p0, + .sin_x = 0x0.b10b4'b8522'4967f'fff9b'ab86cp0, + .cos_x = 0x0.b8e8b'b7909'e0380'00068'4a779p0}, + /*392*/{.x = 0x0.c3fff'2337f'e9000'00000'00000p0, + .sin_x = 0x0.b1679'ad64c'1f7ff'fff9e'ac990p0, + .cos_x = 0x0.b8902'd0d36'2867f'fff60'dcadfp0}, + /*393*/{.x = 0x0.c4801'4b2d3'14a00'00000'00000p0, + .sin_x = 0x0.b1c3e'58f00'4047f'ffe70'7a8a6p0, + .cos_x = 0x0.b8374'a3d0b'43bff'fffd4'e4346p0}, + /*394*/{.x = 0x0.c5001'f907e'41e00'00000'00000p0, + .sin_x = 0x0.b21ff'2c5b0'f0400'000c5'c0df8p0, + .cos_x = 0x0.b7de4'9b793'0ad00'000ec'e42fbp0}, + /*395*/{.x = 0x0.c5801'b0735'b6b00'00000'00000p0, + .sin_x = 0x0.b27bc'8623b'63380'0018b'0dda0p0, + .cos_x = 0x0.b7852'5efc3'70a7f'ffef1'fd0e4p0}, + /*396*/{.x = 0x0.c6000'2f22c'72000'00000'00000p0, + .sin_x = 0x0.b2d76'366be'4a47f'fff55'c1578p0, + .cos_x = 0x0.b72be'1f18a'3ea00'001f2'773c6p0}, + /*397*/{.x = 0x0.c6801'7bb17'e0c00'00000'00000p0, + .sin_x = 0x0.b332f'1d0e5'88a7f'fffa7'0dfb4p0, + .cos_x = 0x0.b6d25'0d176'0927f'ffe8c'ece6cp0}, + /*398*/{.x = 0x0.c7000'e93e1'33000'00000'00000p0, + .sin_x = 0x0.b38e3'e08f0'59080'00035'2b5a6p0, + .cos_x = 0x0.b678a'6ed81'01e80'000d7'9e6c3p0}, + /*399*/{.x = 0x0.c77ff'37933'd3e00'00000'00000p0, + .sin_x = 0x0.b3e95'09e97'f5a7f'ffffa'3a281p0, + .cos_x = 0x0.b61ed'c0f81'd6b00'00177'8ac64p0}, + /*400*/{.x = 0x0.c7ffe'30cdd'69f00'00000'00000p0, + .sin_x = 0x0.b4443'de270'feb80'00095'a35c3p0, + .cos_x = 0x0.b5c4d'c37a4'eab00'0019d'9c7c9p0}, + /*401*/{.x = 0x0.c87ff'605e7'a2e00'00000'00000p0, + .sin_x = 0x0.b49f1'73637'134ff'fffa1'8102fp0, + .cos_x = 0x0.b56a9'600f4'fa180'00120'49976p0}, + /*402*/{.x = 0x0.c9000'd29b5'aec80'00000'00000p0, + .sin_x = 0x0.b4f9c'64754'11b80'00019'392d6p0, + .cos_x = 0x0.b5101'f700b'053ff'fff74'de474p0}}}; } // namespace internal diff --git a/numerics/double_precision_body.hpp b/numerics/double_precision_body.hpp index 3e9ad9da09..fef5416eb4 100644 --- a/numerics/double_precision_body.hpp +++ b/numerics/double_precision_body.hpp @@ -258,9 +258,9 @@ DoublePrecision> TwoProductAdd(T const& a, if ((fma_policy == FMAPolicy::Force && CanEmitFMAInstructions) || (fma_policy == FMAPolicy::Auto && UseHardwareFMA)) { using quantities::_elementary_functions::FusedMultiplyAdd; - using quantities::_elementary_functions::FusedNegatedMultiplyAdd; + using quantities::_elementary_functions::FusedMultiplySubtract; DoublePrecision> result(FusedMultiplyAdd(a, b, c)); - result.error = FusedNegatedMultiplyAdd(a, b, (result.value - c)); + result.error = FusedMultiplySubtract(a, b, (result.value - c)); return result; } else { auto result = VeltkampDekkerProduct(a, b); @@ -277,9 +277,8 @@ DoublePrecision> TwoProductSubtract(T const& a, if ((fma_policy == FMAPolicy::Force && CanEmitFMAInstructions) || (fma_policy == FMAPolicy::Auto && UseHardwareFMA)) { using quantities::_elementary_functions::FusedMultiplySubtract; - using quantities::_elementary_functions::FusedNegatedMultiplyAdd; DoublePrecision> result(FusedMultiplySubtract(a, b, c)); - result.error = FusedNegatedMultiplyAdd(a, b, (result.value + c)); + result.error = FusedMultiplySubtract(a, b, (result.value + c)); return result; } else { auto result = VeltkampDekkerProduct(a, b); @@ -295,10 +294,10 @@ DoublePrecision> TwoProductNegatedAdd(T const& a, Product const& c) { if ((fma_policy == FMAPolicy::Force && CanEmitFMAInstructions) || (fma_policy == FMAPolicy::Auto && UseHardwareFMA)) { - using quantities::_elementary_functions::FusedMultiplyAdd; using quantities::_elementary_functions::FusedNegatedMultiplyAdd; + using quantities::_elementary_functions::FusedNegatedMultiplySubtract; DoublePrecision> result(FusedNegatedMultiplyAdd(a, b, c)); - result.error = FusedMultiplyAdd(a, b, (result.value - c)); + result.error = FusedNegatedMultiplySubtract(a, b, (result.value - c)); return result; } else { auto result = VeltkampDekkerProduct(-a, b); @@ -315,11 +314,10 @@ TwoProductNegatedSubtract(T const& a, Product const& c) { if ((fma_policy == FMAPolicy::Force && CanEmitFMAInstructions) || (fma_policy == FMAPolicy::Auto && UseHardwareFMA)) { - using quantities::_elementary_functions::FusedMultiplyAdd; using quantities::_elementary_functions::FusedNegatedMultiplySubtract; DoublePrecision> result( FusedNegatedMultiplySubtract(a, b, c)); - result.error = FusedMultiplyAdd(a, b, (result.value + c)); + result.error = FusedNegatedMultiplySubtract(a, b, (result.value + c)); return result; } else { auto result = VeltkampDekkerProduct(-a, b); diff --git a/numerics/numerics.vcxproj b/numerics/numerics.vcxproj index 39b447ca2e..6e3b3e9b8b 100644 --- a/numerics/numerics.vcxproj +++ b/numerics/numerics.vcxproj @@ -86,6 +86,7 @@ + @@ -138,6 +139,7 @@ + diff --git a/numerics/numerics.vcxproj.filters b/numerics/numerics.vcxproj.filters index 51e2a46941..4487918a0f 100644 --- a/numerics/numerics.vcxproj.filters +++ b/numerics/numerics.vcxproj.filters @@ -269,6 +269,9 @@ Source Files + + Header Files + @@ -397,6 +400,9 @@ Test Files + + Source Files + diff --git a/numerics/sin_cos.cpp b/numerics/sin_cos.cpp new file mode 100644 index 0000000000..232673d634 --- /dev/null +++ b/numerics/sin_cos.cpp @@ -0,0 +1,111 @@ +#include "numerics/sin_cos.hpp" + +#include + +#include "numerics/accurate_tables.mathematica.h" +#include "numerics/double_precision.hpp" +#include "numerics/fma.hpp" +#include "numerics/polynomial_evaluators.hpp" + +namespace principia { +namespace numerics { +namespace _sin_cos { +namespace internal { + +using namespace principia::numerics::_accurate_tables; +using namespace principia::numerics::_double_precision; +using namespace principia::numerics::_fma; +using namespace principia::numerics::_polynomial_evaluators; + +using Argument = double; +using Value = double; + +constexpr Argument sin_near_zero_cutoff = 1.0 / 1024.0; +constexpr Argument table_spacing_reciprocal = 512.0; + +template +using Polynomial1 = HornerEvaluator; + +// TODO(phl): Take the perturbation into account in the polynomials. + +template +Value SinPolynomial(Argument const x) { + // Absolute error better than 84.8 bits over an interval of radius 1/1024. + return Polynomial1::Evaluate( + {-0x1.5555555555555'555p-3, 0x1.111110B24ACB5'617p-7}, x); +} + +template +Value SinPolynomialNearZero(Argument const x) { + // Relative error better than 74.5 bits over an interval of radius 1/1024. + return Polynomial1::Evaluate( + {-0x1.5555555555555'555p-3, 0x1.111110B40E889'1076p-7}, x); +} + +template +Value CosPolynomial(Argument const x) { + // Absolute error better than 72.4 bits over an interval of radius 1/1024. + return Polynomial1::Evaluate( + {-0x1.FFFFFFFFFFFFF'000p-2, 0x1.555554B290E69'14113p-5}, x); +} + +template +FORCE_INLINE(inline) +Value SinImplementation(Argument const x) { + if (x < sin_near_zero_cutoff) { + double const x² = x * x; + double const x³ = x² * x; + return x + x³ * SinPolynomialNearZero(x²); + } else { + std::int64_t const i = std::lround(x * table_spacing_reciprocal); + auto const& accurate_values = SinCosAccurateTable[i]; + double const& x₀ = accurate_values.x; + double const& sin_x₀ = accurate_values.sin_x; + double const& cos_x₀ = accurate_values.cos_x; + double const h = x - x₀; + + DoublePrecision const sin_x₀_plus_h_cos_x₀ = + TwoProductAdd(cos_x₀, h, sin_x₀); + double const h² = h * h; + double const h³ = h² * h; + return sin_x₀_plus_h_cos_x₀.value + + ((sin_x₀ * h² * CosPolynomial(h²) + + cos_x₀ * h³ * SinPolynomial(h²)) + + sin_x₀_plus_h_cos_x₀.error); + } +} + +template +FORCE_INLINE(inline) +Value CosImplementation(Argument const x) { + std::int64_t const i = std::lround(x * table_spacing_reciprocal); + auto const& accurate_values = SinCosAccurateTable[i]; + double const& x₀ = accurate_values.x; + double const& sin_x₀ = accurate_values.sin_x; + double const& cos_x₀ = accurate_values.cos_x; + double const h = x - x₀; + + DoublePrecision const cos_x₀_minus_h_sin_x₀ = + TwoProductNegatedAdd(sin_x₀, h, cos_x₀); + double const h² = h * h; + double const h³ = h² * h; + return cos_x₀_minus_h_sin_x₀.value + + ((cos_x₀ * h² * CosPolynomial(h²) - + sin_x₀ * h³ * SinPolynomial(h²)) + + cos_x₀_minus_h_sin_x₀.error); +} + +Value Sin(Argument const x) { + return UseHardwareFMA ? SinImplementation(x) + : SinImplementation(x); +} + +Value Cos(Argument const x) { + return UseHardwareFMA ? CosImplementation(x) + : CosImplementation(x); +} + +} // namespace internal +} // namespace _sin_cos +} // namespace numerics +} // namespace principia diff --git a/numerics/sin_cos.hpp b/numerics/sin_cos.hpp new file mode 100644 index 0000000000..baeae24799 --- /dev/null +++ b/numerics/sin_cos.hpp @@ -0,0 +1,18 @@ +#pragma once + +namespace principia { +namespace numerics { +namespace _sin_cos { +namespace internal { + +double Sin(double x); +double Cos(double x); + +} // namespace internal + +using internal::Cos; +using internal::Sin; + +} // namespace _sin_cos +} // namespace numerics +} // namespace principia diff --git a/shared/numerics.vcxitems b/shared/numerics.vcxitems index 873d2afc8a..1fc2ea9218 100644 --- a/shared/numerics.vcxitems +++ b/shared/numerics.vcxitems @@ -17,5 +17,6 @@ + \ No newline at end of file