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