File indexing completed on 2024-06-16 05:03:58
0001 /* 0002 SPDX-FileCopyrightText: 2019 - 2022 UnionTech Software Technology Co., Ltd. 0003 0004 SPDX-License-Identifier: LGPL-3.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <array> 0010 #include <cmath> 0011 #include <cstdint> 0012 #include <numbers> 0013 0014 namespace SolarUtils 0015 { 0016 constexpr double J2000 = 2451545.0; 0017 struct MoonEclipticParameter { 0018 double Lp; 0019 double D; 0020 double M; 0021 double Mp; 0022 double F; 0023 double E; 0024 }; 0025 0026 struct MoonEclipticLongitudeCoeff { 0027 double D; 0028 double M; 0029 double Mp; 0030 double F; 0031 double EiA; 0032 double ErA; 0033 }; 0034 0035 struct EarthNutationParameter { 0036 double D; 0037 double M; 0038 double Mp; 0039 double F; 0040 double Omega; 0041 }; 0042 0043 struct NuationCoefficient { 0044 double D; 0045 double M; 0046 double Mp; 0047 double F; 0048 double Omega; 0049 double Sine1; 0050 double Sine2; 0051 double Cosine1; 0052 double Cosine2; 0053 }; 0054 0055 constexpr std::array<MoonEclipticLongitudeCoeff, 60> s_moonLongitude{ 0056 MoonEclipticLongitudeCoeff{0, 0, 1, 0, 6288744, -20905355}, 0057 {2, 0, -1, 0, 1274027, -3699111}, 0058 {2, 0, 0, 0, 658314, -2955968}, 0059 {0, 0, 2, 0, 213618, -569925}, 0060 {0, 1, 0, 0, -185116, 48888}, 0061 {0, 0, 0, 2, -114332, -3149}, 0062 {2, 0, -2, 0, 58793, 246158}, 0063 {2, -1, -1, 0, 57066, -152138}, 0064 {2, 0, 1, 0, 53322, -170733}, 0065 {2, -1, 0, 0, 45758, -204586}, 0066 {0, 1, -1, 0, -40923, -129620}, 0067 {1, 0, 0, 0, -34720, 108743}, 0068 {0, 1, 1, 0, -30383, 104755}, 0069 {2, 0, 0, -2, 15327, 10321}, 0070 {0, 0, 1, 2, -12528, 0}, 0071 {0, 0, 1, -2, 10980, 79661}, 0072 {4, 0, -1, 0, 10675, -34782}, 0073 {0, 0, 3, 0, 10034, -23210}, 0074 {4, 0, -2, 0, 8548, -21636}, 0075 {2, 1, -1, 0, -7888, 24208}, 0076 {2, 1, 0, 0, -6766, 30824}, 0077 {1, 0, -1, 0, -5163, -8379}, 0078 {1, 1, 0, 0, 4987, -16675}, 0079 {2, -1, 1, 0, 4036, -12831}, 0080 {2, 0, 2, 0, 3994, -10445}, 0081 {4, 0, 0, 0, 3861, -11650}, 0082 {2, 0, -3, 0, 3665, 14403}, 0083 {0, 1, -2, 0, -2689, -7003}, 0084 {2, 0, -1, 2, -2602, 0}, 0085 {2, -1, -2, 0, 2390, 10056}, 0086 {1, 0, 1, 0, -2348, 6322}, 0087 {2, -2, 0, 0, 2236, -9884}, 0088 {0, 1, 2, 0, -2120, 5751}, 0089 {0, 2, 0, 0, -2069, 0}, 0090 {2, -2, -1, 0, 2048, -4950}, 0091 {2, 0, 1, -2, -1773, 4130}, 0092 {2, 0, 0, 2, -1595, 0}, 0093 {4, -1, -1, 0, 1215, -3958}, 0094 {0, 0, 2, 2, -1110, 0}, 0095 {3, 0, -1, 0, -892, 3258}, 0096 {2, 1, 1, 0, -810, 2616}, 0097 {4, -1, -2, 0, 759, -1897}, 0098 {0, 2, -1, 0, -713, -2117}, 0099 {2, 2, -1, 0, -700, 2354}, 0100 {2, 1, -2, 0, 691, 0}, 0101 {2, -1, 0, -2, 596, 0}, 0102 {4, 0, 1, 0, 549, -1423}, 0103 {0, 0, 4, 0, 537, -1117}, 0104 {4, -1, 0, 0, 520, -1571}, 0105 {1, 0, -2, 0, -487, -1739}, 0106 {2, 1, 0, -2, -399, 0}, 0107 {0, 0, 2, -2, -381, -4421}, 0108 {1, 1, 1, 0, 351, 0}, 0109 {3, 0, -2, 0, -340, 0}, 0110 {4, 0, -3, 0, 330, 0}, 0111 {2, -1, 2, 0, 327, 0}, 0112 {0, 2, 1, 0, -323, 1165}, 0113 {1, 1, -1, 0, 299, 0}, 0114 {2, 0, 3, 0, 294, 0}, 0115 {2, 0, -1, -2, 0, 8752}, 0116 }; 0117 0118 constexpr std::array<NuationCoefficient, 63> s_nuation{ 0119 NuationCoefficient{0, 0, 0, 0, 1, -171996, -174.2, 92025, 8.9}, 0120 NuationCoefficient{-2, 0, 0, 2, 2, -13187, -1.6, 5736, -3.1}, 0121 NuationCoefficient{0, 0, 0, 2, 2, -2274, -0.2, 977, -0.5}, 0122 NuationCoefficient{0, 0, 0, 0, 2, 2062, 0.2, -895, 0.5}, 0123 NuationCoefficient{0, 1, 0, 0, 0, 1426, -3.4, 54, -0.1}, 0124 NuationCoefficient{0, 0, 1, 0, 0, 712, 0.1, -7, 0}, 0125 NuationCoefficient{-2, 1, 0, 2, 2, -517, 1.2, 224, -0.6}, 0126 NuationCoefficient{0, 0, 0, 2, 1, -386, -0.4, 200, 0}, 0127 NuationCoefficient{0, 0, 1, 2, 2, -301, 0, 129, -0.1}, 0128 NuationCoefficient{-2, -1, 0, 2, 2, 217, -0.5, -95, 0.3}, 0129 NuationCoefficient{-2, 0, 1, 0, 0, -158, 0, 0, 0}, 0130 NuationCoefficient{-2, 0, 0, 2, 1, 129, 0.1, -70, 0}, 0131 NuationCoefficient{0, 0, -1, 2, 2, 123, 0, -53, 0}, 0132 NuationCoefficient{2, 0, 0, 0, 0, 63, 0, 0, 0}, 0133 NuationCoefficient{0, 0, 1, 0, 1, 63, 0.1, -33, 0}, 0134 NuationCoefficient{2, 0, -1, 2, 2, -59, 0, 26, 0}, 0135 NuationCoefficient{0, 0, -1, 0, 1, -58, -0.1, 32, 0}, 0136 NuationCoefficient{0, 0, 1, 2, 1, -51, 0, 27, 0}, 0137 NuationCoefficient{-2, 0, 2, 0, 0, 48, 0, 0, 0}, 0138 NuationCoefficient{0, 0, -2, 2, 1, 46, 0, -24, 0}, 0139 NuationCoefficient{2, 0, 0, 2, 2, -38, 0, 16, 0}, 0140 NuationCoefficient{0, 0, 2, 2, 2, -31, 0, 13, 0}, 0141 NuationCoefficient{0, 0, 2, 0, 0, 29, 0, 0, 0}, 0142 NuationCoefficient{-2, 0, 1, 2, 2, 29, 0, -12, 0}, 0143 NuationCoefficient{0, 0, 0, 2, 0, 26, 0, 0, 0}, 0144 NuationCoefficient{-2, 0, 0, 2, 0, -22, 0, 0, 0}, 0145 NuationCoefficient{0, 0, -1, 2, 1, 21, 0, -10, 0}, 0146 NuationCoefficient{0, 2, 0, 0, 0, 17, -0.1, 0, 0}, 0147 NuationCoefficient{2, 0, -1, 0, 1, 16, 0, -8, 0}, 0148 NuationCoefficient{-2, 2, 0, 2, 2, -16, 0.1, 7, 0}, 0149 NuationCoefficient{0, 1, 0, 0, 1, -15, 0, 9, 0}, 0150 NuationCoefficient{-2, 0, 1, 0, 1, -13, 0, 7, 0}, 0151 NuationCoefficient{0, -1, 0, 0, 1, -12, 0, 6, 0}, 0152 NuationCoefficient{0, 0, 2, -2, 0, 11, 0, 0, 0}, 0153 NuationCoefficient{2, 0, -1, 2, 1, -10, 0, 5, 0}, 0154 NuationCoefficient{2, 0, 1, 2, 2, -8, 0, 3, 0}, 0155 NuationCoefficient{0, 1, 0, 2, 2, 7, 0, -3, 0}, 0156 NuationCoefficient{-2, 1, 1, 0, 0, -7, 0, 0, 0}, 0157 NuationCoefficient{0, -1, 0, 2, 2, -7, 0, 3, 0}, 0158 NuationCoefficient{2, 0, 0, 2, 1, -7, 0, 3, 0}, 0159 NuationCoefficient{2, 0, 1, 0, 0, 6, 0, 0, 0}, 0160 NuationCoefficient{-2, 0, 2, 2, 2, 6, 0, -3, 0}, 0161 NuationCoefficient{-2, 0, 1, 2, 1, 6, 0, -3, 0}, 0162 NuationCoefficient{2, 0, -2, 0, 1, -6, 0, 3, 0}, 0163 NuationCoefficient{2, 0, 0, 0, 1, -6, 0, 3, 0}, 0164 NuationCoefficient{0, -1, 1, 0, 0, 5, 0, 0, 0}, 0165 NuationCoefficient{-2, -1, 0, 2, 1, -5, 0, 3, 0}, 0166 NuationCoefficient{-2, 0, 0, 0, 1, -5, 0, 3, 0}, 0167 NuationCoefficient{0, 0, 2, 2, 1, -5, 0, 3, 0}, 0168 NuationCoefficient{-2, 0, 2, 0, 1, 4, 0, 0, 0}, 0169 NuationCoefficient{-2, 1, 0, 2, 1, 4, 0, 0, 0}, 0170 NuationCoefficient{0, 0, 1, -2, 0, 4, 0, 0, 0}, 0171 NuationCoefficient{-1, 0, 1, 0, 0, -4, 0, 0, 0}, 0172 NuationCoefficient{-2, 1, 0, 0, 0, -4, 0, 0, 0}, 0173 NuationCoefficient{1, 0, 0, 0, 0, -4, 0, 0, 0}, 0174 NuationCoefficient{0, 0, 1, 2, 0, 3, 0, 0, 0}, 0175 NuationCoefficient{0, 0, -2, 2, 2, -3, 0, 0, 0}, 0176 NuationCoefficient{-1, -1, 1, 0, 0, -3, 0, 0, 0}, 0177 NuationCoefficient{0, 1, 1, 0, 0, -3, 0, 0, 0}, 0178 NuationCoefficient{0, -1, 1, 2, 2, -3, 0, 0, 0}, 0179 NuationCoefficient{2, -1, -1, 2, 2, -3, 0, 0, 0}, 0180 NuationCoefficient{0, 0, 3, 2, 2, -3, 0, 0, 0}, 0181 NuationCoefficient{2, -1, 0, 2, 2, -3, 0, 0, 0}, 0182 }; 0183 0184 constexpr double getEarthL0(double t) 0185 { 0186 double result = 0.0; 0187 result += 1.75347045673; 0188 result += 0.03341656456 * std::cos(4.66925680417 + 6283.0758499914 * t); 0189 result += 0.00034894275 * std::cos(4.62610241759 + 12566.1516999828 * t); 0190 result += 3.417571e-05 * std::cos(2.82886579606 + 3.523118349 * t); 0191 result += 3.497056e-05 * std::cos(2.74411800971 + 5753.3848848968 * t); 0192 result += 3.135896e-05 * std::cos(3.62767041758 + 77713.7714681205 * t); 0193 result += 2.676218e-05 * std::cos(4.41808351397 + 7860.4193924392 * t); 0194 result += 2.342687e-05 * std::cos(6.13516237631 + 3930.2096962196 * t); 0195 result += 1.273166e-05 * std::cos(2.03709655772 + 529.6909650946 * t); 0196 result += 1.324292e-05 * std::cos(0.74246356352 + 11506.7697697936 * t); 0197 result += 9.01855e-06 * std::cos(2.04505443513 + 26.2983197998 * t); 0198 result += 1.199167e-05 * std::cos(1.10962944315 + 1577.3435424478 * t); 0199 result += 8.57223e-06 * std::cos(3.50849156957 + 398.1490034082 * t); 0200 result += 7.79786e-06 * std::cos(1.17882652114 + 5223.6939198022 * t); 0201 result += 9.9025e-06 * std::cos(5.23268129594 + 5884.9268465832 * t); 0202 result += 7.53141e-06 * std::cos(2.53339053818 + 5507.5532386674 * t); 0203 result += 5.05264e-06 * std::cos(4.58292563052 + 18849.2275499742 * t); 0204 result += 4.92379e-06 * std::cos(4.20506639861 + 775.522611324 * t); 0205 result += 3.56655e-06 * std::cos(2.91954116867 + 0.0673103028 * t); 0206 result += 2.84125e-06 * std::cos(1.89869034186 + 796.2980068164 * t); 0207 result += 2.4281e-06 * std::cos(0.34481140906 + 5486.777843175 * t); 0208 result += 3.17087e-06 * std::cos(5.84901952218 + 11790.6290886588 * t); 0209 result += 2.71039e-06 * std::cos(0.31488607649 + 10977.078804699 * t); 0210 result += 2.0616e-06 * std::cos(4.80646606059 + 2544.3144198834 * t); 0211 result += 2.05385e-06 * std::cos(1.86947813692 + 5573.1428014331 * t); 0212 result += 2.02261e-06 * std::cos(2.45767795458 + 6069.7767545534 * t); 0213 result += 1.26184e-06 * std::cos(1.0830263021 + 20.7753954924 * t); 0214 result += 1.55516e-06 * std::cos(0.83306073807 + 213.299095438 * t); 0215 result += 1.15132e-06 * std::cos(0.64544911683 + 0.9803210682 * t); 0216 result += 1.02851e-06 * std::cos(0.63599846727 + 4694.0029547076 * t); 0217 result += 1.01724e-06 * std::cos(4.26679821365 + 7.1135470008 * t); 0218 result += 9.9206e-07 * std::cos(6.20992940258 + 2146.1654164752 * t); 0219 result += 1.32212e-06 * std::cos(3.41118275555 + 2942.4634232916 * t); 0220 result += 9.7607e-07 * std::cos(0.6810127227 + 155.4203994342 * t); 0221 result += 8.5128e-07 * std::cos(1.29870743025 + 6275.9623029906 * t); 0222 result += 7.4651e-07 * std::cos(1.75508916159 + 5088.6288397668 * t); 0223 result += 1.01895e-06 * std::cos(0.97569221824 + 15720.8387848784 * t); 0224 result += 8.4711e-07 * std::cos(3.67080093025 + 71430.6956181291 * t); 0225 result += 7.3547e-07 * std::cos(4.67926565481 + 801.8209311238 * t); 0226 result += 7.3874e-07 * std::cos(3.50319443167 + 3154.6870848956 * t); 0227 result += 7.8756e-07 * std::cos(3.03698313141 + 12036.4607348882 * t); 0228 result += 7.9637e-07 * std::cos(1.807913307 + 17260.1546546904 * t); 0229 result += 8.5803e-07 * std::cos(5.98322631256 + 161000.685737674 * t); 0230 result += 5.6963e-07 * std::cos(2.78430398043 + 6286.5989683404 * t); 0231 result += 6.1148e-07 * std::cos(1.81839811024 + 7084.8967811152 * t); 0232 result += 6.9627e-07 * std::cos(0.83297596966 + 9437.762934887 * t); 0233 result += 5.6116e-07 * std::cos(4.38694880779 + 14143.4952424306 * t); 0234 result += 6.2449e-07 * std::cos(3.97763880587 + 8827.3902698748 * t); 0235 result += 5.1145e-07 * std::cos(0.28306864501 + 5856.4776591154 * t); 0236 result += 5.5577e-07 * std::cos(3.47006009062 + 6279.5527316424 * t); 0237 result += 4.1036e-07 * std::cos(5.36817351402 + 8429.2412664666 * t); 0238 result += 5.1605e-07 * std::cos(1.33282746983 + 1748.016413067 * t); 0239 result += 5.1992e-07 * std::cos(0.18914945834 + 12139.5535091068 * t); 0240 result += 4.9e-07 * std::cos(0.48735065033 + 1194.4470102246 * t); 0241 result += 3.92e-07 * std::cos(6.16832995016 + 10447.3878396044 * t); 0242 result += 3.5566e-07 * std::cos(1.77597314691 + 6812.766815086 * t); 0243 result += 3.677e-07 * std::cos(6.04133859347 + 10213.285546211 * t); 0244 result += 3.6596e-07 * std::cos(2.56955238628 + 1059.3819301892 * t); 0245 result += 3.3291e-07 * std::cos(0.59309499459 + 17789.845619785 * t); 0246 result += 3.5954e-07 * std::cos(1.70876111898 + 2352.8661537718 * t); 0247 result += 4.0938e-07 * std::cos(2.39850881707 + 19651.048481098 * t); 0248 result += 3.0047e-07 * std::cos(2.73975123935 + 1349.8674096588 * t); 0249 result += 3.0412e-07 * std::cos(0.44294464135 + 83996.8473181119 * t); 0250 result += 2.3663e-07 * std::cos(0.48473567763 + 8031.0922630584 * t); 0251 result += 2.3574e-07 * std::cos(2.06527720049 + 3340.6124266998 * t); 0252 result += 2.1089e-07 * std::cos(4.14825464101 + 951.7184062506 * t); 0253 result += 2.4738e-07 * std::cos(0.21484762138 + 3.5904286518 * t); 0254 result += 2.5352e-07 * std::cos(3.16470953405 + 4690.4798363586 * t); 0255 result += 2.282e-07 * std::cos(5.22197888032 + 4705.7323075436 * t); 0256 result += 2.1419e-07 * std::cos(1.42563735525 + 16730.4636895958 * t); 0257 result += 2.1891e-07 * std::cos(5.55594302562 + 553.5694028424 * t); 0258 result += 1.7481e-07 * std::cos(4.56052900359 + 135.0650800354 * t); 0259 result += 1.9925e-07 * std::cos(5.22208471269 + 12168.0026965746 * t); 0260 result += 1.986e-07 * std::cos(5.77470167653 + 6309.3741697912 * t); 0261 result += 2.03e-07 * std::cos(0.37133792946 + 283.8593188652 * t); 0262 result += 1.4421e-07 * std::cos(4.19315332546 + 242.728603974 * t); 0263 result += 1.6225e-07 * std::cos(5.98837722564 + 11769.8536931664 * t); 0264 result += 1.5077e-07 * std::cos(4.19567181073 + 6256.7775301916 * t); 0265 result += 1.9124e-07 * std::cos(3.82219996949 + 23581.2581773176 * t); 0266 result += 1.8888e-07 * std::cos(5.38626880969 + 149854.400134808 * t); 0267 result += 1.4346e-07 * std::cos(3.72355084422 + 38.0276726358 * t); 0268 result += 1.7898e-07 * std::cos(2.21490735647 + 13367.9726311066 * t); 0269 result += 1.2054e-07 * std::cos(2.62229588349 + 955.5997416086 * t); 0270 result += 1.1287e-07 * std::cos(0.17739328092 + 4164.311989613 * t); 0271 result += 1.3971e-07 * std::cos(4.40138139996 + 6681.2248533996 * t); 0272 result += 1.3621e-07 * std::cos(1.88934471407 + 7632.9432596502 * t); 0273 result += 1.2503e-07 * std::cos(1.13052412208 + 5.5229243074 * t); 0274 result += 1.0498e-07 * std::cos(5.35909518669 + 1592.5960136328 * t); 0275 result += 9.803e-08 * std::cos(0.99947478995 + 11371.7046897582 * t); 0276 result += 9.22e-08 * std::cos(4.57138609781 + 4292.3308329504 * t); 0277 result += 1.0327e-07 * std::cos(6.19982566125 + 6438.4962494256 * t); 0278 result += 1.2003e-07 * std::cos(1.003514567 + 632.7837393132 * t); 0279 result += 1.0827e-07 * std::cos(0.32734520222 + 103.0927742186 * t); 0280 result += 8.356e-08 * std::cos(4.53902685948 + 25132.3033999656 * t); 0281 result += 1.0005e-07 * std::cos(6.0291496328 + 5746.271337896 * t); 0282 result += 8.409e-08 * std::cos(3.29946744189 + 7234.794256242 * t); 0283 result += 8.006e-08 * std::cos(5.82145271907 + 28.4491874678 * t); 0284 result += 1.0523e-07 * std::cos(0.93871805506 + 11926.2544136688 * t); 0285 result += 7.686e-08 * std::cos(3.12142363172 + 7238.6755916 * t); 0286 result += 9.378e-08 * std::cos(2.62414241032 + 5760.4984318976 * t); 0287 result += 8.127e-08 * std::cos(6.11228001785 + 4732.0306273434 * t); 0288 result += 9.232e-08 * std::cos(0.48343968736 + 522.5774180938 * t); 0289 result += 9.802e-08 * std::cos(5.24413991147 + 27511.4678735372 * t); 0290 result += 7.871e-08 * std::cos(0.99590177926 + 5643.1785636774 * t); 0291 result += 8.123e-08 * std::cos(6.2705301365 + 426.598190876 * t); 0292 result += 9.048e-08 * std::cos(5.33686335897 + 6386.16862421 * t); 0293 result += 8.62e-08 * std::cos(4.16538210888 + 7058.5984613154 * t); 0294 result += 6.297e-08 * std::cos(4.71724819317 + 6836.6452528338 * t); 0295 result += 7.575e-08 * std::cos(3.97382858911 + 11499.6562227928 * t); 0296 result += 7.756e-08 * std::cos(2.95729056763 + 23013.5395395872 * t); 0297 result += 7.314e-08 * std::cos(0.60652505806 + 11513.8833167944 * t); 0298 result += 5.955e-08 * std::cos(2.87641047971 + 6283.14316029419 * t); 0299 result += 6.534e-08 * std::cos(5.79072926033 + 18073.7049386502 * t); 0300 result += 7.188e-08 * std::cos(3.99831508699 + 74.7815985673 * t); 0301 result += 7.346e-08 * std::cos(4.38582365437 + 316.3918696566 * t); 0302 result += 5.413e-08 * std::cos(5.39199024641 + 419.4846438752 * t); 0303 result += 5.127e-08 * std::cos(2.36062848786 + 10973.55568635 * t); 0304 result += 7.056e-08 * std::cos(0.32258441903 + 263.0839233728 * t); 0305 result += 6.625e-08 * std::cos(3.66475158672 + 17298.1823273262 * t); 0306 result += 6.762e-08 * std::cos(5.91132535899 + 90955.5516944961 * t); 0307 result += 4.938e-08 * std::cos(5.73672165674 + 9917.6968745098 * t); 0308 result += 5.547e-08 * std::cos(2.45152597661 + 12352.8526045448 * t); 0309 result += 5.958e-08 * std::cos(3.32051344676 + 6283.0085396886 * t); 0310 result += 4.471e-08 * std::cos(2.06385999536 + 7079.3738568078 * t); 0311 result += 6.153e-08 * std::cos(1.45823331144 + 233141.314404362 * t); 0312 result += 4.348e-08 * std::cos(4.4234217548 + 5216.5803728014 * t); 0313 result += 6.123e-08 * std::cos(1.07494905258 + 19804.8272915828 * t); 0314 result += 4.488e-08 * std::cos(3.6528503715 + 206.1855484372 * t); 0315 result += 4.02e-08 * std::cos(0.83995823171 + 20.3553193988 * t); 0316 result += 5.188e-08 * std::cos(4.06503864016 + 6208.2942514241 * t); 0317 result += 5.307e-08 * std::cos(0.38217636096 + 31441.6775697568 * t); 0318 result += 3.785e-08 * std::cos(2.34369213733 + 3.881335358 * t); 0319 result += 4.497e-08 * std::cos(3.27230796845 + 11015.1064773348 * t); 0320 result += 4.132e-08 * std::cos(0.92128915753 + 3738.761430108 * t); 0321 result += 3.521e-08 * std::cos(5.97844807108 + 3894.1818295422 * t); 0322 result += 4.215e-08 * std::cos(1.90601120623 + 245.8316462294 * t); 0323 result += 3.701e-08 * std::cos(5.03069397926 + 536.8045120954 * t); 0324 result += 3.865e-08 * std::cos(1.82634360607 + 11856.2186514245 * t); 0325 result += 3.652e-08 * std::cos(1.01838584934 + 16200.7727245012 * t); 0326 result += 3.39e-08 * std::cos(0.97785123922 + 8635.9420037632 * t); 0327 result += 3.737e-08 * std::cos(2.95380107829 + 3128.3887650958 * t); 0328 result += 3.507e-08 * std::cos(3.71291946325 + 6290.1893969922 * t); 0329 result += 3.086e-08 * std::cos(3.64646921512 + 10.6366653498 * t); 0330 result += 3.397e-08 * std::cos(1.10590684017 + 14712.317116458 * t); 0331 result += 3.334e-08 * std::cos(0.83684924911 + 6496.3749454294 * t); 0332 result += 2.805e-08 * std::cos(2.58504514144 + 14314.1681130498 * t); 0333 result += 3.65e-08 * std::cos(1.08344142571 + 88860.0570709867 * t); 0334 result += 3.388e-08 * std::cos(3.20185096055 + 5120.6011455836 * t); 0335 result += 3.252e-08 * std::cos(3.47859752062 + 6133.5126528568 * t); 0336 result += 2.553e-08 * std::cos(3.94869034189 + 1990.745017041 * t); 0337 result += 3.52e-08 * std::cos(2.05559692878 + 244287.600007228 * t); 0338 result += 2.565e-08 * std::cos(1.560717849 + 23543.2305046818 * t); 0339 result += 2.621e-08 * std::cos(3.85639359951 + 266.6070417218 * t); 0340 result += 2.955e-08 * std::cos(3.39692949667 + 9225.539273283 * t); 0341 result += 2.876e-08 * std::cos(6.02635617464 + 154717.609887683 * t); 0342 result += 2.395e-08 * std::cos(1.16131956403 + 10984.1923516998 * t); 0343 result += 3.161e-08 * std::cos(1.32798718453 + 10873.9860304804 * t); 0344 result += 3.163e-08 * std::cos(5.08946464629 + 21228.3920235458 * t); 0345 result += 2.361e-08 * std::cos(4.27212906992 + 6040.3472460174 * t); 0346 result += 3.03e-08 * std::cos(1.80209931347 + 35371.8872659764 * t); 0347 result += 2.343e-08 * std::cos(3.576898605 + 10969.9652576982 * t); 0348 result += 2.618e-08 * std::cos(2.57870156528 + 22483.8485744926 * t); 0349 result += 2.113e-08 * std::cos(3.71393780256 + 65147.6197681377 * t); 0350 result += 2.019e-08 * std::cos(0.81393923319 + 170.6728706192 * t); 0351 result += 2.003e-08 * std::cos(0.38091017375 + 6172.869528772 * t); 0352 result += 2.506e-08 * std::cos(3.74379142438 + 10575.4066829418 * t); 0353 result += 2.381e-08 * std::cos(0.10581361289 + 7.046236698 * t); 0354 result += 1.949e-08 * std::cos(4.86892513469 + 36.0278666774 * t); 0355 result += 2.074e-08 * std::cos(4.2279477457 + 5650.2921106782 * t); 0356 result += 1.924e-08 * std::cos(5.5946054986 + 6282.0955289232 * t); 0357 result += 1.949e-08 * std::cos(1.07002512703 + 5230.807466803 * t); 0358 result += 1.988e-08 * std::cos(5.19736046771 + 6262.300454499 * t); 0359 result += 1.887e-08 * std::cos(3.74365662683 + 23.8784377478 * t); 0360 result += 1.787e-08 * std::cos(1.25929682929 + 12559.038152982 * t); 0361 result += 1.883e-08 * std::cos(1.90364058477 + 15.252471185 * t); 0362 result += 1.816e-08 * std::cos(3.68083868442 + 15110.4661198662 * t); 0363 result += 1.701e-08 * std::cos(4.4110589538 + 110.2063212194 * t); 0364 result += 1.99e-08 * std::cos(3.93295788548 + 6206.8097787158 * t); 0365 result += 2.103e-08 * std::cos(0.75354917468 + 13521.7514415914 * t); 0366 result += 1.774e-08 * std::cos(0.48747535361 + 1551.045222648 * t); 0367 result += 1.882e-08 * std::cos(0.86684493432 + 22003.9146348698 * t); 0368 result += 1.924e-08 * std::cos(1.22898324132 + 709.9330485583 * t); 0369 result += 2.009e-08 * std::cos(4.6285092198 + 6037.244203762 * t); 0370 result += 1.924e-08 * std::cos(0.60231842508 + 6284.0561710596 * t); 0371 result += 1.596e-08 * std::cos(3.98332956992 + 13916.0191096416 * t); 0372 result += 1.664e-08 * std::cos(4.41939715469 + 8662.240323563 * t); 0373 result += 1.971e-08 * std::cos(1.04560500503 + 18209.3302636602 * t); 0374 result += 1.942e-08 * std::cos(4.31335979989 + 6244.9428143536 * t); 0375 result += 1.476e-08 * std::cos(0.93271367331 + 2379.1644735716 * t); 0376 result += 1.81e-08 * std::cos(0.49112137707 + 1.4844727083 * t); 0377 result += 1.346e-08 * std::cos(1.51574702235 + 4136.9104335162 * t); 0378 result += 1.528e-08 * std::cos(5.61835711404 + 6127.6554505572 * t); 0379 result += 1.791e-08 * std::cos(3.22187270126 + 39302.096962196 * t); 0380 result += 1.747e-08 * std::cos(3.05638656738 + 18319.5365848796 * t); 0381 result += 1.431e-08 * std::cos(4.51153808594 + 20426.571092422 * t); 0382 result += 1.695e-08 * std::cos(0.22047718414 + 25158.6017197654 * t); 0383 result += 1.242e-08 * std::cos(4.46665769933 + 17256.6315363414 * t); 0384 result += 1.463e-08 * std::cos(4.69242679213 + 14945.3161735544 * t); 0385 result += 1.205e-08 * std::cos(1.86912144659 + 4590.910180489 * t); 0386 result += 1.192e-08 * std::cos(2.74227166898 + 12569.6748183318 * t); 0387 result += 1.222e-08 * std::cos(5.18120087482 + 5333.9002410216 * t); 0388 result += 1.39e-08 * std::cos(5.42894648983 + 143571.324284816 * t); 0389 result += 1.473e-08 * std::cos(1.70479245805 + 11712.9553182308 * t); 0390 result += 1.362e-08 * std::cos(2.61069503292 + 6062.6632075526 * t); 0391 result += 1.148e-08 * std::cos(6.0300180054 + 3634.6210245184 * t); 0392 result += 1.198e-08 * std::cos(5.15294130422 + 10177.2576795336 * t); 0393 result += 1.266e-08 * std::cos(0.11421493643 + 18422.6293590982 * t); 0394 result += 1.411e-08 * std::cos(1.09908857534 + 3496.032826134 * t); 0395 result += 1.349e-08 * std::cos(2.99805109633 + 17654.7805397496 * t); 0396 result += 1.253e-08 * std::cos(2.79850152848 + 167283.761587666 * t); 0397 result += 1.311e-08 * std::cos(1.60942984879 + 5481.2549188676 * t); 0398 result += 1.079e-08 * std::cos(6.20304501787 + 3.2863574178 * t); 0399 result += 1.181e-08 * std::cos(1.20653776978 + 131.5419616864 * t); 0400 result += 1.254e-08 * std::cos(5.45103277798 + 6076.8903015542 * t); 0401 result += 1.035e-08 * std::cos(2.32142722747 + 7342.4577801806 * t); 0402 result += 1.117e-08 * std::cos(0.38838354256 + 949.1756089698 * t); 0403 result += 9.66e-09 * std::cos(3.18341890851 + 11087.2851259184 * t); 0404 result += 1.171e-08 * std::cos(3.39635049962 + 12562.6285816338 * t); 0405 result += 1.121e-08 * std::cos(0.72627490378 + 220.4126424388 * t); 0406 result += 1.024e-08 * std::cos(2.19378315386 + 11403.676995575 * t); 0407 result += 8.88e-09 * std::cos(3.91173199285 + 4686.8894077068 * t); 0408 result += 9.1e-09 * std::cos(1.98802695087 + 735.8765135318 * t); 0409 result += 8.3e-09 * std::cos(0.48984915507 + 24072.9214697764 * t); 0410 result += 1.096e-08 * std::cos(6.17377835617 + 5436.9930152402 * t); 0411 result += 9.08e-09 * std::cos(0.44959639433 + 7477.522860216 * t); 0412 result += 9.74e-09 * std::cos(1.52996238356 + 9623.6882766912 * t); 0413 result += 8.4e-09 * std::cos(1.79543266333 + 5429.8794682394 * t); 0414 result += 7.78e-09 * std::cos(6.17699177946 + 38.1330356378 * t); 0415 result += 7.76e-09 * std::cos(4.09855402433 + 14.2270940016 * t); 0416 result += 1.068e-08 * std::cos(4.64200173735 + 43232.3066584156 * t); 0417 result += 9.54e-09 * std::cos(1.49988435748 + 1162.4747044078 * t); 0418 result += 9.07e-09 * std::cos(0.86986870809 + 10344.2950653858 * t); 0419 result += 9.31e-09 * std::cos(4.06044689031 + 28766.924424484 * t); 0420 result += 7.39e-09 * std::cos(5.04368197372 + 639.897286314 * t); 0421 result += 9.37e-09 * std::cos(3.4688469896 + 1589.0728952838 * t); 0422 result += 7.63e-09 * std::cos(5.86304932998 + 16858.4825329332 * t); 0423 result += 9.53e-09 * std::cos(4.20801492835 + 11190.377900137 * t); 0424 result += 7.08e-09 * std::cos(1.7289998894 + 13095.8426650774 * t); 0425 result += 9.69e-09 * std::cos(1.64439522215 + 29088.811415985 * t); 0426 result += 7.17e-09 * std::cos(0.16688678895 + 11.729352836 * t); 0427 result += 9.62e-09 * std::cos(3.53092337542 + 12416.5885028482 * t); 0428 result += 7.47e-09 * std::cos(5.77866940346 + 12592.4500197826 * t); 0429 result += 6.72e-09 * std::cos(1.91095796194 + 3.9321532631 * t); 0430 result += 6.71e-09 * std::cos(5.46240843677 + 18052.9295431578 * t); 0431 result += 6.75e-09 * std::cos(6.28311558823 + 4535.0594369244 * t); 0432 result += 6.84e-09 * std::cos(0.3997501208 + 5849.3641121146 * t); 0433 result += 7.99e-09 * std::cos(0.29851185294 + 12132.439962106 * t); 0434 result += 7.58e-09 * std::cos(0.96370823331 + 1052.2683831884 * t); 0435 result += 7.82e-09 * std::cos(5.33878339919 + 13517.8701062334 * t); 0436 result += 7.3e-09 * std::cos(1.70106160291 + 17267.2682016912 * t); 0437 result += 7.49e-09 * std::cos(2.59599901875 + 11609.8625440122 * t); 0438 result += 7.34e-09 * std::cos(2.78417782952 + 640.8776073822 * t); 0439 result += 6.88e-09 * std::cos(5.15048287468 + 16496.3613962024 * t); 0440 result += 7.7e-09 * std::cos(1.62469589333 + 4701.1165017084 * t); 0441 result += 6.33e-09 * std::cos(2.20587893893 + 25934.1243310894 * t); 0442 result += 7.6e-09 * std::cos(4.21317219403 + 377.3736079158 * t); 0443 result += 5.84e-09 * std::cos(2.13420121623 + 10557.5941608238 * t); 0444 result += 5.74e-09 * std::cos(0.24250054587 + 9779.1086761254 * t); 0445 result += 5.73e-09 * std::cos(3.16435264609 + 533.2140834436 * t); 0446 result += 6.85e-09 * std::cos(3.19344289472 + 12146.6670561076 * t); 0447 result += 6.75e-09 * std::cos(0.96179233959 + 10454.5013866052 * t); 0448 result += 6.48e-09 * std::cos(1.46327342555 + 6268.8487559898 * t); 0449 result += 5.89e-09 * std::cos(2.50543543638 + 3097.88382272579 * t); 0450 result += 5.51e-09 * std::cos(5.28099026956 + 9388.0059094152 * t); 0451 result += 6.96e-09 * std::cos(3.65342150016 + 4804.209275927 * t); 0452 result += 6.69e-09 * std::cos(2.51030077026 + 2388.8940204492 * t); 0453 result += 5.5e-09 * std::cos(0.06883864342 + 20199.094959633 * t); 0454 result += 6.29e-09 * std::cos(4.13350995675 + 45892.730433157 * t); 0455 result += 6.78e-09 * std::cos(6.09190163533 + 135.62532501 * t); 0456 result += 5.93e-09 * std::cos(1.50136257618 + 226858.23855437 * t); 0457 result += 5.42e-09 * std::cos(3.58573645173 + 6148.010769956 * t); 0458 result += 6.82e-09 * std::cos(5.02203067788 + 17253.0411076896 * t); 0459 result += 5.65e-09 * std::cos(4.2930923861 + 11933.3679606696 * t); 0460 result += 4.86e-09 * std::cos(0.77746204893 + 27.4015560968 * t); 0461 result += 5.03e-09 * std::cos(0.58963565969 + 15671.0817594066 * t); 0462 result += 6.16e-09 * std::cos(4.06539884128 + 227.476132789 * t); 0463 result += 5.83e-09 * std::cos(6.12695541996 + 18875.525869774 * t); 0464 result += 5.37e-09 * std::cos(2.1505644098 + 21954.157609398 * t); 0465 result += 6.69e-09 * std::cos(6.06986269566 + 47162.5163546352 * t); 0466 result += 4.75e-09 * std::cos(0.4034384211 + 6915.8595893046 * t); 0467 result += 5.4e-09 * std::cos(2.83444222174 + 5326.7866940208 * t); 0468 result += 5.3e-09 * std::cos(5.26359885263 + 10988.808157535 * t); 0469 result += 5.82e-09 * std::cos(3.24533095664 + 153.7788104848 * t); 0470 result += 6.41e-09 * std::cos(3.24711791371 + 2107.0345075424 * t); 0471 result += 6.21e-09 * std::cos(3.09698523779 + 33019.0211122046 * t); 0472 result += 4.66e-09 * std::cos(3.14982372198 + 10440.2742926036 * t); 0473 result += 4.66e-09 * std::cos(0.90708835657 + 5966.6839803348 * t); 0474 result += 5.28e-09 * std::cos(0.8192645447 + 813.5502839598 * t); 0475 result += 6.03e-09 * std::cos(3.81378921927 + 316428.228673915 * t); 0476 result += 5.59e-09 * std::cos(1.81894804124 + 17996.0311682222 * t); 0477 result += 4.37e-09 * std::cos(2.28625594435 + 6303.8512454838 * t); 0478 result += 5.18e-09 * std::cos(4.86069178322 + 20597.2439630412 * t); 0479 result += 4.24e-09 * std::cos(6.23520018693 + 6489.2613984286 * t); 0480 result += 5.18e-09 * std::cos(6.17617826756 + 0.2438174835 * t); 0481 result += 4.04e-09 * std::cos(5.72804304258 + 5642.1982426092 * t); 0482 result += 4.58e-09 * std::cos(1.34117773915 + 6287.0080032545 * t); 0483 result += 5.48e-09 * std::cos(5.6845445832 + 155427.542936241 * t); 0484 result += 5.47e-09 * std::cos(1.03391472061 + 3646.3503773544 * t); 0485 result += 4.28e-09 * std::cos(4.69800981138 + 846.0828347512 * t); 0486 result += 4.13e-09 * std::cos(6.02520699406 + 6279.4854213396 * t); 0487 result += 5.34e-09 * std::cos(3.03030638223 + 66567.4858652543 * t); 0488 result += 3.83e-09 * std::cos(1.49056949125 + 19800.9459562248 * t); 0489 result += 4.1e-09 * std::cos(5.28319622279 + 18451.078546566 * t); 0490 result += 3.52e-09 * std::cos(4.68891600359 + 4907.3020501456 * t); 0491 result += 4.8e-09 * std::cos(5.36572651091 + 348.924420448 * t); 0492 result += 3.44e-09 * std::cos(5.89157452896 + 6546.1597733642 * t); 0493 result += 3.4e-09 * std::cos(0.3755742644 + 13119.7211028252 * t); 0494 result += 4.34e-09 * std::cos(4.98417785901 + 6702.5604938666 * t); 0495 result += 3.32e-09 * std::cos(2.68902519126 + 29296.6153895786 * t); 0496 result += 4.48e-09 * std::cos(2.16478480251 + 5905.7022420756 * t); 0497 result += 3.44e-09 * std::cos(2.06546633735 + 49.7570254718 * t); 0498 result += 3.15e-09 * std::cos(1.24023811803 + 4061.2192153944 * t); 0499 result += 3.24e-09 * std::cos(2.30897526929 + 5017.508371365 * t); 0500 result += 4.13e-09 * std::cos(0.17171692962 + 6286.6662786432 * t); 0501 result += 4.31e-09 * std::cos(3.86601101393 + 12489.8856287072 * t); 0502 result += 3.49e-09 * std::cos(4.55372342974 + 4933.2084403326 * t); 0503 result += 3.23e-09 * std::cos(0.41971136084 + 10770.8932562618 * t); 0504 result += 3.41e-09 * std::cos(2.68612860807 + 11.0457002639 * t); 0505 result += 3.16e-09 * std::cos(3.52936906658 + 17782.7320727842 * t); 0506 result += 3.15e-09 * std::cos(5.63357264999 + 568.8218740274 * t); 0507 result += 3.4e-09 * std::cos(3.83571212349 + 10660.6869350424 * t); 0508 result += 2.97e-09 * std::cos(0.62691416712 + 20995.3929664494 * t); 0509 result += 4.05e-09 * std::cos(1.00085779471 + 16460.333529525 * t); 0510 result += 4.14e-09 * std::cos(1.21998752076 + 51092.7260508548 * t); 0511 result += 3.36e-09 * std::cos(4.71465945226 + 6179.9830757728 * t); 0512 result += 3.61e-09 * std::cos(3.71227508354 + 28237.2334593894 * t); 0513 result += 3.85e-09 * std::cos(6.21925225757 + 24356.7807886416 * t); 0514 result += 3.27e-09 * std::cos(1.05606504715 + 11919.140866668 * t); 0515 result += 3.27e-09 * std::cos(6.14222420989 + 6254.6266625236 * t); 0516 result += 2.68e-09 * std::cos(2.47224339737 + 664.75604513 * t); 0517 result += 2.69e-09 * std::cos(1.86207884109 + 23141.5583829246 * t); 0518 result += 3.45e-09 * std::cos(0.93461290184 + 6058.7310542895 * t); 0519 result += 2.96e-09 * std::cos(4.5168755718 + 6418.1409300268 * t); 0520 result += 3.53e-09 * std::cos(4.50033653082 + 36949.2308084242 * t); 0521 result += 2.6e-09 * std::cos(4.04963546305 + 6525.8044539654 * t); 0522 result += 2.98e-09 * std::cos(2.20046722622 + 156137.475984799 * t); 0523 result += 2.53e-09 * std::cos(3.49900838384 + 29864.334027309 * t); 0524 result += 2.54e-09 * std::cos(2.44901693835 + 5331.3574437408 * t); 0525 result += 2.96e-09 * std::cos(0.84347588787 + 5729.506447149 * t); 0526 result += 2.98e-09 * std::cos(1.29194706125 + 22805.7355659936 * t); 0527 result += 2.41e-09 * std::cos(2.00721280805 + 16737.5772365966 * t); 0528 result += 3.11e-09 * std::cos(1.23668016334 + 6281.5913772831 * t); 0529 result += 2.4e-09 * std::cos(2.51650377121 + 6245.0481773556 * t); 0530 result += 3.32e-09 * std::cos(3.55576945724 + 7668.6374249425 * t); 0531 result += 2.64e-09 * std::cos(4.44052061202 + 12964.300703391 * t); 0532 result += 2.57e-09 * std::cos(1.79654471948 + 11080.1715789176 * t); 0533 result += 2.6e-09 * std::cos(3.3307759842 + 5888.4499649322 * t); 0534 result += 2.85e-09 * std::cos(0.3088636143 + 11823.1616394502 * t); 0535 result += 2.9e-09 * std::cos(5.70141882483 + 77.673770428 * t); 0536 result += 2.55e-09 * std::cos(4.0093966444 + 5881.4037282342 * t); 0537 result += 2.53e-09 * std::cos(4.73318493678 + 16723.350142595 * t); 0538 result += 2.28e-09 * std::cos(0.95333661324 + 5540.0857894588 * t); 0539 result += 3.19e-09 * std::cos(1.38633229189 + 163096.180361183 * t); 0540 result += 2.24e-09 * std::cos(1.65156322696 + 10027.9031957292 * t); 0541 result += 2.26e-09 * std::cos(0.34106460604 + 17796.9591667858 * t); 0542 result += 2.36e-09 * std::cos(4.19817431922 + 19.66976089979 * t); 0543 result += 2.8e-09 * std::cos(4.1408026897 + 12539.853380183 * t); 0544 result += 2.75e-09 * std::cos(5.50306930248 + 32.5325507914 * t); 0545 result += 2.23e-09 * std::cos(5.23334210294 + 56.8983749356 * t); 0546 result += 2.17e-09 * std::cos(6.08587881787 + 6805.6532680852 * t); 0547 result += 2.8e-09 * std::cos(4.52472044653 + 6016.4688082696 * t); 0548 result += 2.27e-09 * std::cos(5.06509843737 + 6277.552925684 * t); 0549 result += 2.26e-09 * std::cos(5.17755154305 + 11720.0688652316 * t); 0550 result += 2.45e-09 * std::cos(3.96486270306 + 22.7752014508 * t); 0551 result += 2.2e-09 * std::cos(4.7207808197 + 6.62855890001 * t); 0552 result += 2.07e-09 * std::cos(5.71701403951 + 41.5507909848 * t); 0553 result += 2.04e-09 * std::cos(3.9122741125 + 2699.7348193176 * t); 0554 result += 2.09e-09 * std::cos(0.86881969011 + 6321.1035226272 * t); 0555 result += 2e-09 * std::cos(2.11984445273 + 4274.5183108324 * t); 0556 result += 2e-09 * std::cos(5.39839888163 + 6019.9919266186 * t); 0557 result += 2.09e-09 * std::cos(5.67606291663 + 11293.4706743556 * t); 0558 result += 2.52e-09 * std::cos(1.64965729351 + 9380.9596727172 * t); 0559 result += 2.75e-09 * std::cos(5.04826903506 + 73.297125859 * t); 0560 result += 2.08e-09 * std::cos(1.88207277133 + 11300.5842213564 * t); 0561 result += 2.72e-09 * std::cos(0.74640926842 + 1975.492545856 * t); 0562 result += 1.99e-09 * std::cos(3.30836672397 + 22743.4093795164 * t); 0563 result += 2.69e-09 * std::cos(4.48560812155 + 64471.9912417449 * t); 0564 result += 1.92e-09 * std::cos(2.17464236325 + 5863.5912061162 * t); 0565 result += 2.28e-09 * std::cos(5.85373115869 + 128.0188433374 * t); 0566 result += 2.61e-09 * std::cos(2.64321183295 + 55022.9357470744 * t); 0567 result += 2.2e-09 * std::cos(5.75012110079 + 29.429508536 * t); 0568 result += 1.87e-09 * std::cos(4.03230554718 + 467.9649903544 * t); 0569 result += 2e-09 * std::cos(5.60556112058 + 1066.49547719 * t); 0570 result += 2.31e-09 * std::cos(1.09802712785 + 12341.8069042809 * t); 0571 result += 1.99e-09 * std::cos(0.295006252 + 149.5631971346 * t); 0572 result += 2.49e-09 * std::cos(5.10473210814 + 7875.6718636242 * t); 0573 result += 2.08e-09 * std::cos(0.93013835019 + 14919.0178537546 * t); 0574 result += 1.79e-09 * std::cos(0.87104393079 + 12721.572099417 * t); 0575 result += 2.03e-09 * std::cos(1.56920753653 + 28286.9904848612 * t); 0576 result += 1.79e-09 * std::cos(2.47036386443 + 16062.1845261168 * t); 0577 result += 1.98e-09 * std::cos(3.54061588502 + 30.914125635 * t); 0578 result += 1.71e-09 * std::cos(3.45356518113 + 5327.4761083828 * t); 0579 result += 1.83e-09 * std::cos(0.72325421604 + 6272.0301497275 * t); 0580 result += 2.16e-09 * std::cos(2.97174580686 + 19402.7969528166 * t); 0581 result += 1.68e-09 * std::cos(2.51550550242 + 23937.856389741 * t); 0582 result += 1.95e-09 * std::cos(0.09045393425 + 156.4007205024 * t); 0583 result += 1.79e-09 * std::cos(4.4947179809 + 31415.379249957 * t); 0584 result += 2.16e-09 * std::cos(0.42177594328 + 23539.7073863328 * t); 0585 result += 1.89e-09 * std::cos(0.37542530191 + 9814.6041002912 * t); 0586 result += 2.18e-09 * std::cos(2.36835880025 + 16627.3709153772 * t); 0587 result += 1.66e-09 * std::cos(4.23182968446 + 16840.6700108152 * t); 0588 result += 2e-09 * std::cos(2.02153258098 + 16097.6799502826 * t); 0589 result += 1.69e-09 * std::cos(0.91318727 + 95.9792272178 * t); 0590 result += 2.11e-09 * std::cos(5.73370637657 + 151.8972810852 * t); 0591 result += 2.04e-09 * std::cos(0.42643085174 + 515.463871093 * t); 0592 result += 2.12e-09 * std::cos(3.00233538977 + 12043.574281889 * t); 0593 result += 1.92e-09 * std::cos(5.46153589821 + 6379.0550772092 * t); 0594 result += 1.65e-09 * std::cos(1.38698167064 + 4171.4255366138 * t); 0595 result += 1.6e-09 * std::cos(6.23798383332 + 202.2533951741 * t); 0596 result += 2.15e-09 * std::cos(0.20889073407 + 5621.8429232104 * t); 0597 result += 1.81e-09 * std::cos(4.12439203622 + 13341.6743113068 * t); 0598 result += 1.53e-09 * std::cos(1.24460848836 + 29826.3063546732 * t); 0599 result += 1.5e-09 * std::cos(3.12999753018 + 799.8211251654 * t); 0600 result += 1.75e-09 * std::cos(4.55671604437 + 239424.390254353 * t); 0601 result += 1.92e-09 * std::cos(1.33928820063 + 394.6258850592 * t); 0602 result += 1.49e-09 * std::cos(2.65697593276 + 21.335640467 * t); 0603 result += 1.46e-09 * std::cos(5.58021191726 + 412.3710968744 * t); 0604 result += 1.56e-09 * std::cos(3.75650175503 + 12323.4230960088 * t); 0605 result += 1.43e-09 * std::cos(3.75708566606 + 58864.5439181463 * t); 0606 result += 1.43e-09 * std::cos(3.28248547724 + 29.8214381488 * t); 0607 result += 1.44e-09 * std::cos(1.07862546598 + 1265.5674786264 * t); 0608 result += 1.48e-09 * std::cos(0.23389236655 + 10021.8372800994 * t); 0609 result += 1.93e-09 * std::cos(5.92751083086 + 40879.4405046438 * t); 0610 result += 1.4e-09 * std::cos(4.97612440269 + 158.9435177832 * t); 0611 result += 1.48e-09 * std::cos(2.61640453469 + 17157.0618804718 * t); 0612 result += 1.41e-09 * std::cos(3.66871308723 + 26084.0218062162 * t); 0613 result += 1.47e-09 * std::cos(5.09968173403 + 661.232926781 * t); 0614 result += 1.46e-09 * std::cos(4.96885605695 + 57375.8019008462 * t); 0615 result += 1.42e-09 * std::cos(0.78678347839 + 12779.4507954208 * t); 0616 result += 1.34e-09 * std::cos(4.79432636012 + 111.1866422876 * t); 0617 result += 1.4e-09 * std::cos(1.27748013377 + 107.6635239386 * t); 0618 result += 1.69e-09 * std::cos(2.74893543762 + 26735.9452622132 * t); 0619 result += 1.65e-09 * std::cos(3.95288000638 + 6357.8574485587 * t); 0620 result += 1.83e-09 * std::cos(5.43418358741 + 369.6998159404 * t); 0621 result += 1.34e-09 * std::cos(3.09132862833 + 17.812522118 * t); 0622 result += 1.32e-09 * std::cos(3.05633896779 + 22490.9621214934 * t); 0623 result += 1.34e-09 * std::cos(4.09472795832 + 6599.467719648 * t); 0624 result += 1.81e-09 * std::cos(4.22950689891 + 966.9708774356 * t); 0625 result += 1.52e-09 * std::cos(5.28885894415 + 12669.2444742014 * t); 0626 result += 1.5e-09 * std::cos(5.86819430908 + 97238.6275444875 * t); 0627 result += 1.42e-09 * std::cos(5.87266532526 + 22476.7350274918 * t); 0628 result += 1.45e-09 * std::cos(5.07330784304 + 87.30820453981 * t); 0629 result += 1.33e-09 * std::cos(5.65471067133 + 31.9723058168 * t); 0630 result += 1.24e-09 * std::cos(2.83326217072 + 12566.2190102856 * t); 0631 result += 1.35e-09 * std::cos(3.12861731644 + 32217.2001810808 * t); 0632 result += 1.37e-09 * std::cos(0.86487461904 + 9924.8104215106 * t); 0633 result += 1.72e-09 * std::cos(1.98369595114 + 174242.46596405 * t); 0634 result += 1.7e-09 * std::cos(4.41115280254 + 327574.514276781 * t); 0635 result += 1.51e-09 * std::cos(0.46542099527 + 39609.6545831656 * t); 0636 result += 1.48e-09 * std::cos(2.13439571118 + 491.6632924588 * t); 0637 result += 1.53e-09 * std::cos(3.78801830344 + 17363.247428909 * t); 0638 result += 1.65e-09 * std::cos(5.31654110459 + 16943.7627850338 * t); 0639 result += 1.65e-09 * std::cos(4.06747587817 + 58953.145443294 * t); 0640 result += 1.18e-09 * std::cos(0.63846333239 + 6.0659156298 * t); 0641 result += 1.59e-09 * std::cos(0.86086959274 + 221995.028801495 * t); 0642 result += 1.19e-09 * std::cos(5.96432932413 + 1385.8952763362 * t); 0643 result += 1.14e-09 * std::cos(5.16516114595 + 25685.872802808 * t); 0644 result += 1.12e-09 * std::cos(3.39403722178 + 21393.5419698576 * t); 0645 result += 1.12e-09 * std::cos(4.92889233335 + 56.8032621698 * t); 0646 result += 1.19e-09 * std::cos(2.40637635942 + 18635.9284545362 * t); 0647 result += 1.15e-09 * std::cos(0.23374479051 + 418.9243989006 * t); 0648 result += 1.22e-09 * std::cos(0.93575234049 + 24492.4061136516 * t); 0649 result += 1.15e-09 * std::cos(4.58880032176 + 26709.6469424134 * t); 0650 result += 1.3e-09 * std::cos(4.85539251 + 22345.2603761082 * t); 0651 result += 1.4e-09 * std::cos(1.09413073202 + 44809.6502008634 * t); 0652 result += 1.12e-09 * std::cos(6.05401806281 + 433.7117378768 * t); 0653 result += 1.04e-09 * std::cos(1.54931540602 + 127.9515330346 * t); 0654 result += 1.05e-09 * std::cos(4.82620858888 + 33794.5437235286 * t); 0655 result += 1.02e-09 * std::cos(4.12448497391 + 15664.0355227086 * t); 0656 result += 1.07e-09 * std::cos(4.67919356465 + 77690.7595057385 * t); 0657 result += 1.18e-09 * std::cos(4.5232017012 + 19004.6479494084 * t); 0658 result += 1.07e-09 * std::cos(5.71774478555 + 77736.7834305025 * t); 0659 result += 1.43e-09 * std::cos(1.81201813018 + 4214.0690150848 * t); 0660 result += 1.25e-09 * std::cos(1.14419195615 + 625.6701923124 * t); 0661 result += 1.24e-09 * std::cos(3.27736514057 + 12566.08438968 * t); 0662 result += 1.1e-09 * std::cos(1.08682570828 + 2787.0430238574 * t); 0663 result += 1.05e-09 * std::cos(1.78318141871 + 18139.2945014159 * t); 0664 result += 1.02e-09 * std::cos(4.75119578149 + 12242.6462833254 * t); 0665 result += 1.37e-09 * std::cos(1.43510636754 + 86464.6133168312 * t); 0666 result += 1.01e-09 * std::cos(4.91289409429 + 401.6721217572 * t); 0667 result += 1.29e-09 * std::cos(1.23567904485 + 12029.3471878874 * t); 0668 result += 1.38e-09 * std::cos(2.45654707999 + 7576.560073574 * t); 0669 result += 1.03e-09 * std::cos(0.40004073416 + 90279.9231681033 * t); 0670 result += 1.08e-09 * std::cos(0.9898977494 + 5636.0650166766 * t); 0671 result += 1.17e-09 * std::cos(5.17362872063 + 34520.3093093808 * t); 0672 result += 1e-09 * std::cos(3.95534628189 + 5547.1993364596 * t); 0673 result += 9.8e-10 * std::cos(1.28118280598 + 21548.9623692918 * t); 0674 result += 9.7e-10 * std::cos(3.34717130592 + 16310.9790457206 * t); 0675 result += 9.8e-10 * std::cos(4.37041908717 + 34513.2630726828 * t); 0676 result += 1.25e-09 * std::cos(2.7216443296 + 24065.8079227756 * t); 0677 result += 1.02e-09 * std::cos(0.66938025772 + 10239.5838660108 * t); 0678 result += 1.19e-09 * std::cos(1.21689479331 + 1478.8665740644 * t); 0679 result += 9.4e-10 * std::cos(1.99595224256 + 13362.4497067992 * t); 0680 result += 9.4e-10 * std::cos(4.30965982872 + 26880.3198130326 * t); 0681 result += 9.5e-10 * std::cos(2.89807657534 + 34911.412076091 * t); 0682 result += 1.06e-09 * std::cos(1.0015665359 + 16522.6597160022 * t); 0683 result += 9.7e-10 * std::cos(0.89642320201 + 71980.6335747312 * t); 0684 result += 1.16e-09 * std::cos(4.19967201116 + 206.7007372966 * t); 0685 result += 9.9e-10 * std::cos(1.37437847718 + 1039.0266107904 * t); 0686 result += 1.26e-09 * std::cos(3.21642544972 + 305281.943071049 * t); 0687 result += 9.4e-10 * std::cos(0.6899787606 + 7834.1210726394 * t); 0688 result += 9.4e-10 * std::cos(5.58132218606 + 3104.9300594238 * t); 0689 result += 9.5e-10 * std::cos(3.0382374111 + 8982.810669309 * t); 0690 result += 1.08e-09 * std::cos(0.52696637156 + 276.7457718644 * t); 0691 result += 1.24e-09 * std::cos(3.43899862683 + 172146.97134054 * t); 0692 result += 1.02e-09 * std::cos(1.04031728553 + 95143.1329209781 * t); 0693 result += 1.04e-09 * std::cos(3.39218586218 + 290.972865866 * t); 0694 result += 1.1e-09 * std::cos(3.68205877433 + 22380.755800274 * t); 0695 result += 1.17e-09 * std::cos(0.78475956902 + 83286.9142695536 * t); 0696 result += 8.3e-10 * std::cos(0.18241793425 + 15141.390794312 * t); 0697 result += 8.9e-10 * std::cos(4.45371820659 + 792.7748884674 * t); 0698 result += 8.2e-10 * std::cos(4.80703651241 + 6819.8803620868 * t); 0699 result += 8.7e-10 * std::cos(3.43122851097 + 27707.5424942948 * t); 0700 result += 1.01e-09 * std::cos(5.32081603011 + 2301.58581590939 * t); 0701 result += 8.2e-10 * std::cos(0.87060089842 + 10241.2022911672 * t); 0702 result += 8.6e-10 * std::cos(4.61919461931 + 36147.4098773004 * t); 0703 result += 9.5e-10 * std::cos(2.87032884659 + 23020.653086588 * t); 0704 result += 8.8e-10 * std::cos(3.2113316569 + 33326.5787331742 * t); 0705 result += 8e-10 * std::cos(1.84900424847 + 21424.4666443034 * t); 0706 result += 1.01e-09 * std::cos(4.18796434479 + 30666.1549584328 * t); 0707 result += 1.07e-09 * std::cos(5.77864921649 + 34115.1140692746 * t); 0708 result += 1.04e-09 * std::cos(1.08739495962 + 6288.5987742988 * t); 0709 result += 1.1e-09 * std::cos(3.32898859416 + 72140.6286666874 * t); 0710 result += 8.7e-10 * std::cos(4.40657711727 + 142.1786270362 * t); 0711 result += 1.09e-09 * std::cos(1.94546030825 + 24279.1070182136 * t); 0712 result += 8.7e-10 * std::cos(4.32472045435 + 742.9900605326 * t); 0713 result += 1.07e-09 * std::cos(4.91580912547 + 277.0349937414 * t); 0714 result += 8.8e-10 * std::cos(2.10180220766 + 26482.1708096244 * t); 0715 result += 8.6e-10 * std::cos(4.01887374432 + 12491.3701014155 * t); 0716 result += 1.06e-09 * std::cos(5.49092372854 + 62883.3551395136 * t); 0717 result += 8e-10 * std::cos(6.19781316983 + 6709.6740408674 * t); 0718 result += 8.8e-10 * std::cos(2.09872810657 + 238004.524157236 * t); 0719 result += 8.3e-10 * std::cos(4.90662164029 + 51.28033786241 * t); 0720 result += 9.5e-10 * std::cos(4.13387406591 + 18216.443810661 * t); 0721 result += 7.8e-10 * std::cos(6.0694939168 + 148434.534037691 * t); 0722 result += 7.9e-10 * std::cos(3.03048221644 + 838.9692877504 * t); 0723 result += 7.4e-10 * std::cos(5.49813051211 + 29026.4852295078 * t); 0724 result += 7.3e-10 * std::cos(3.05008665738 + 567.7186377304 * t); 0725 result += 8.4e-10 * std::cos(0.46604373274 + 45.1412196366 * t); 0726 result += 9.3e-10 * std::cos(2.52267536308 + 48739.859897083 * t); 0727 result += 7.6e-10 * std::cos(1.76418124905 + 41654.9631159678 * t); 0728 result += 6.7e-10 * std::cos(5.77851227793 + 6311.5250374592 * t); 0729 result += 6.2e-10 * std::cos(3.32967880172 + 15508.6151232744 * t); 0730 result += 7.9e-10 * std::cos(5.59773841328 + 71960.3865832237 * t); 0731 result += 5.7e-10 * std::cos(3.90629505268 + 5999.2165311262 * t); 0732 result += 6.1e-10 * std::cos(0.05695043232 + 7856.89627409019 * t); 0733 result += 6.1e-10 * std::cos(5.63297958433 + 7863.9425107882 * t); 0734 result += 6.5e-10 * std::cos(3.72178394016 + 12573.2652469836 * t); 0735 result += 5.7e-10 * std::cos(4.18217219541 + 26087.9031415742 * t); 0736 result += 6.6e-10 * std::cos(3.92262333487 + 69853.3520756813 * t); 0737 result += 5.3e-10 * std::cos(5.51119362045 + 77710.2483497715 * t); 0738 result += 5.3e-10 * std::cos(4.88573986961 + 77717.2945864695 * t); 0739 result += 6.2e-10 * std::cos(2.88876342225 + 9411.4646150872 * t); 0740 result += 5.1e-10 * std::cos(1.12657183874 + 82576.9812209953 * t); 0741 result += 4.5e-10 * std::cos(2.95671076719 + 24602.612434871 * t); 0742 result += 4e-10 * std::cos(5.55145719241 + 12565.1713789146 * t); 0743 result += 3.9e-10 * std::cos(1.20838190039 + 18842.1140029734 * t); 0744 result += 4.5e-10 * std::cos(3.18590558749 + 45585.1728121874 * t); 0745 result += 4.9e-10 * std::cos(2.44790934886 + 13613.804277336 * t); 0746 return result; 0747 } 0748 0749 constexpr double getEarthL1(double t) 0750 { 0751 double result = 0.0; 0752 result += 6283.31966747491; 0753 result += 0.00206058863 * std::cos(2.67823455584 + 6283.0758499914 * t); 0754 result += 4.30343e-05 * std::cos(2.63512650414 + 12566.1516999828 * t); 0755 result += 4.25264e-06 * std::cos(1.59046980729 + 3.523118349 * t); 0756 result += 1.08977e-06 * std::cos(2.96618001993 + 1577.3435424478 * t); 0757 result += 9.3478e-07 * std::cos(2.59212835365 + 18849.2275499742 * t); 0758 result += 1.19261e-06 * std::cos(5.79557487799 + 26.2983197998 * t); 0759 result += 7.2122e-07 * std::cos(1.13846158196 + 529.6909650946 * t); 0760 result += 6.7768e-07 * std::cos(1.87472304791 + 398.1490034082 * t); 0761 result += 6.7327e-07 * std::cos(4.40918235168 + 5507.5532386674 * t); 0762 result += 5.9027e-07 * std::cos(2.8879703846 + 5223.6939198022 * t); 0763 result += 5.5976e-07 * std::cos(2.17471680261 + 155.4203994342 * t); 0764 result += 4.5407e-07 * std::cos(0.39803079805 + 796.2980068164 * t); 0765 result += 3.6369e-07 * std::cos(0.46624739835 + 775.522611324 * t); 0766 result += 2.8958e-07 * std::cos(2.64707383882 + 7.1135470008 * t); 0767 result += 1.9097e-07 * std::cos(1.84628332577 + 5486.777843175 * t); 0768 result += 2.0844e-07 * std::cos(5.34138275149 + 0.9803210682 * t); 0769 result += 1.8508e-07 * std::cos(4.96855124577 + 213.299095438 * t); 0770 result += 1.6233e-07 * std::cos(0.03216483047 + 2544.3144198834 * t); 0771 result += 1.7293e-07 * std::cos(2.99116864949 + 6275.9623029906 * t); 0772 result += 1.5832e-07 * std::cos(1.43049285325 + 2146.1654164752 * t); 0773 result += 1.4615e-07 * std::cos(1.20532366323 + 10977.078804699 * t); 0774 result += 1.1877e-07 * std::cos(3.25804815607 + 5088.6288397668 * t); 0775 result += 1.1514e-07 * std::cos(2.07502418155 + 4694.0029547076 * t); 0776 result += 9.721e-08 * std::cos(4.23925472239 + 1349.8674096588 * t); 0777 result += 9.969e-08 * std::cos(1.30262991097 + 6286.5989683404 * t); 0778 result += 9.452e-08 * std::cos(2.69957062864 + 242.728603974 * t); 0779 result += 1.2461e-07 * std::cos(2.83432285512 + 1748.016413067 * t); 0780 result += 1.1808e-07 * std::cos(5.2737979048 + 1194.4470102246 * t); 0781 result += 8.577e-08 * std::cos(5.64475868067 + 951.7184062506 * t); 0782 result += 1.0641e-07 * std::cos(0.76614199202 + 553.5694028424 * t); 0783 result += 7.576e-08 * std::cos(5.30062664886 + 2352.8661537718 * t); 0784 result += 5.834e-08 * std::cos(1.76649917904 + 1059.3819301892 * t); 0785 result += 6.385e-08 * std::cos(2.65033984967 + 9437.762934887 * t); 0786 result += 5.223e-08 * std::cos(5.66135767624 + 71430.6956181291 * t); 0787 result += 5.305e-08 * std::cos(0.90857521574 + 3154.6870848956 * t); 0788 result += 6.101e-08 * std::cos(4.66632584188 + 4690.4798363586 * t); 0789 result += 4.33e-08 * std::cos(0.24102555403 + 6812.766815086 * t); 0790 result += 5.041e-08 * std::cos(1.42490103709 + 6438.4962494256 * t); 0791 result += 4.259e-08 * std::cos(0.77355900599 + 10447.3878396044 * t); 0792 result += 5.198e-08 * std::cos(1.85353197345 + 801.8209311238 * t); 0793 result += 3.744e-08 * std::cos(2.00119516488 + 8031.0922630584 * t); 0794 result += 3.558e-08 * std::cos(2.42901552681 + 14143.4952424306 * t); 0795 result += 3.372e-08 * std::cos(3.86210700128 + 1592.5960136328 * t); 0796 result += 3.374e-08 * std::cos(0.88776219727 + 12036.4607348882 * t); 0797 result += 3.175e-08 * std::cos(3.18785710594 + 4705.7323075436 * t); 0798 result += 3.221e-08 * std::cos(0.61599835472 + 8429.2412664666 * t); 0799 result += 4.132e-08 * std::cos(5.23992859705 + 7084.8967811152 * t); 0800 result += 2.97e-08 * std::cos(6.07026318493 + 4292.3308329504 * t); 0801 result += 2.9e-08 * std::cos(2.32464208411 + 20.3553193988 * t); 0802 result += 3.504e-08 * std::cos(4.79975694359 + 6279.5527316424 * t); 0803 result += 2.95e-08 * std::cos(1.43108874817 + 5746.271337896 * t); 0804 result += 2.697e-08 * std::cos(4.80368225199 + 7234.794256242 * t); 0805 result += 2.531e-08 * std::cos(6.22290682655 + 6836.6452528338 * t); 0806 result += 2.745e-08 * std::cos(0.93466065396 + 5760.4984318976 * t); 0807 result += 3.25e-08 * std::cos(3.39954640038 + 7632.9432596502 * t); 0808 result += 2.277e-08 * std::cos(5.00277837672 + 17789.845619785 * t); 0809 result += 2.075e-08 * std::cos(3.95534978634 + 10213.285546211 * t); 0810 result += 2.061e-08 * std::cos(2.22411683077 + 5856.4776591154 * t); 0811 result += 2.252e-08 * std::cos(5.67166499885 + 11499.6562227928 * t); 0812 result += 2.148e-08 * std::cos(5.20184578235 + 11513.8833167944 * t); 0813 result += 1.886e-08 * std::cos(0.53198320577 + 3340.6124266998 * t); 0814 result += 1.875e-08 * std::cos(4.73511970207 + 83996.8473181119 * t); 0815 result += 2.06e-08 * std::cos(2.54987293999 + 25132.3033999656 * t); 0816 result += 1.794e-08 * std::cos(1.47435409831 + 4164.311989613 * t); 0817 result += 1.778e-08 * std::cos(3.02473091781 + 5.5229243074 * t); 0818 result += 2.029e-08 * std::cos(0.90960209983 + 6256.7775301916 * t); 0819 result += 2.075e-08 * std::cos(2.26767270157 + 522.5774180938 * t); 0820 result += 1.772e-08 * std::cos(3.02622802353 + 5753.3848848968 * t); 0821 result += 1.569e-08 * std::cos(6.12410242782 + 5216.5803728014 * t); 0822 result += 1.59e-08 * std::cos(4.63713748247 + 3.2863574178 * t); 0823 result += 1.542e-08 * std::cos(4.20004448567 + 13367.9726311066 * t); 0824 result += 1.427e-08 * std::cos(1.19088061711 + 3894.1818295422 * t); 0825 result += 1.375e-08 * std::cos(3.09301252193 + 135.0650800354 * t); 0826 result += 1.359e-08 * std::cos(4.24532506641 + 426.598190876 * t); 0827 result += 1.34e-08 * std::cos(5.76511818622 + 6040.3472460174 * t); 0828 result += 1.284e-08 * std::cos(3.08524663344 + 5643.1785636774 * t); 0829 result += 1.25e-08 * std::cos(3.07748157144 + 11926.2544136688 * t); 0830 result += 1.551e-08 * std::cos(3.07665451458 + 6681.2248533996 * t); 0831 result += 1.268e-08 * std::cos(2.09196018331 + 6290.1893969922 * t); 0832 result += 1.144e-08 * std::cos(3.24444699514 + 12168.0026965746 * t); 0833 result += 1.248e-08 * std::cos(3.44504937285 + 536.8045120954 * t); 0834 result += 1.118e-08 * std::cos(2.31829670425 + 16730.4636895958 * t); 0835 result += 1.105e-08 * std::cos(5.31966001019 + 23.8784377478 * t); 0836 result += 1.051e-08 * std::cos(3.75015946014 + 7860.4193924392 * t); 0837 result += 1.025e-08 * std::cos(2.44688534235 + 1990.745017041 * t); 0838 result += 9.62e-09 * std::cos(0.81771017882 + 3.881335358 * t); 0839 result += 9.1e-09 * std::cos(0.41727865299 + 7079.3738568078 * t); 0840 result += 8.83e-09 * std::cos(5.16833917651 + 11790.6290886588 * t); 0841 result += 9.57e-09 * std::cos(4.07673573735 + 6127.6554505572 * t); 0842 result += 1.11e-08 * std::cos(3.90096793825 + 11506.7697697936 * t); 0843 result += 8.02e-09 * std::cos(3.88778875582 + 10973.55568635 * t); 0844 result += 7.8e-09 * std::cos(2.39934293755 + 1589.0728952838 * t); 0845 result += 7.58e-09 * std::cos(1.30034364248 + 103.0927742186 * t); 0846 result += 7.49e-09 * std::cos(4.962758033 + 6496.3749454294 * t); 0847 result += 7.65e-09 * std::cos(3.36312388424 + 36.0278666774 * t); 0848 result += 9.15e-09 * std::cos(5.41543742089 + 206.1855484372 * t); 0849 result += 7.76e-09 * std::cos(2.57589093871 + 11371.7046897582 * t); 0850 result += 7.72e-09 * std::cos(3.98369209464 + 955.5997416086 * t); 0851 result += 7.49e-09 * std::cos(5.17890001805 + 10969.9652576982 * t); 0852 result += 8.06e-09 * std::cos(0.34218864254 + 9917.6968745098 * t); 0853 result += 7.28e-09 * std::cos(5.20962563787 + 38.0276726358 * t); 0854 result += 6.85e-09 * std::cos(2.77592961854 + 20.7753954924 * t); 0855 result += 6.36e-09 * std::cos(4.28242193632 + 28.4491874678 * t); 0856 result += 6.08e-09 * std::cos(5.63278508906 + 10984.1923516998 * t); 0857 result += 7.04e-09 * std::cos(5.60738823665 + 3738.761430108 * t); 0858 result += 6.85e-09 * std::cos(0.38876148682 + 15.252471185 * t); 0859 result += 6.01e-09 * std::cos(0.73489602442 + 419.4846438752 * t); 0860 result += 7.16e-09 * std::cos(2.65279791438 + 6309.3741697912 * t); 0861 result += 5.84e-09 * std::cos(5.54502568227 + 17298.1823273262 * t); 0862 result += 6.5e-09 * std::cos(1.13379656406 + 7058.5984613154 * t); 0863 result += 6.88e-09 * std::cos(2.59683891779 + 3496.032826134 * t); 0864 result += 4.85e-09 * std::cos(0.44467180946 + 12352.8526045448 * t); 0865 result += 5.28e-09 * std::cos(2.74936967681 + 3930.2096962196 * t); 0866 result += 5.97e-09 * std::cos(5.27668281777 + 10575.4066829418 * t); 0867 result += 5.83e-09 * std::cos(3.1892906781 + 4732.0306273434 * t); 0868 result += 5.26e-09 * std::cos(5.01697321546 + 5884.9268465832 * t); 0869 result += 5.4e-09 * std::cos(1.29175137075 + 640.8776073822 * t); 0870 result += 4.73e-09 * std::cos(5.4995330697 + 5230.807466803 * t); 0871 result += 4.06e-09 * std::cos(5.21248452189 + 220.4126424388 * t); 0872 result += 3.95e-09 * std::cos(1.87474483222 + 16200.7727245012 * t); 0873 result += 3.7e-09 * std::cos(3.84921354713 + 18073.7049386502 * t); 0874 result += 3.67e-09 * std::cos(0.88533542778 + 6283.14316029419 * t); 0875 result += 3.79e-09 * std::cos(0.37983009325 + 10177.2576795336 * t); 0876 result += 3.56e-09 * std::cos(3.84145204913 + 11712.9553182308 * t); 0877 result += 3.74e-09 * std::cos(5.01577520608 + 7.046236698 * t); 0878 result += 3.81e-09 * std::cos(4.30250406634 + 6062.6632075526 * t); 0879 result += 4.71e-09 * std::cos(0.86381834647 + 6069.7767545534 * t); 0880 result += 3.67e-09 * std::cos(1.32943839763 + 6283.0085396886 * t); 0881 result += 4.6e-09 * std::cos(5.19667219575 + 6284.0561710596 * t); 0882 result += 3.33e-09 * std::cos(5.54256205741 + 4686.8894077068 * t); 0883 result += 3.41e-09 * std::cos(4.36522989934 + 7238.6755916 * t); 0884 result += 3.36e-09 * std::cos(4.00205876835 + 3097.88382272579 * t); 0885 result += 3.59e-09 * std::cos(6.22679790284 + 245.8316462294 * t); 0886 result += 3.07e-09 * std::cos(2.35299010924 + 170.6728706192 * t); 0887 result += 3.43e-09 * std::cos(3.77164927143 + 6076.8903015542 * t); 0888 result += 2.96e-09 * std::cos(5.44152227481 + 17260.1546546904 * t); 0889 result += 3.28e-09 * std::cos(0.13837875384 + 11015.1064773348 * t); 0890 result += 2.68e-09 * std::cos(1.1390455063 + 12569.6748183318 * t); 0891 result += 2.63e-09 * std::cos(0.00538633678 + 4136.9104335162 * t); 0892 result += 2.82e-09 * std::cos(5.0439983748 + 7477.522860216 * t); 0893 result += 2.88e-09 * std::cos(3.13401177517 + 12559.038152982 * t); 0894 result += 2.59e-09 * std::cos(0.93882269387 + 5642.1982426092 * t); 0895 result += 2.92e-09 * std::cos(1.98420020514 + 12132.439962106 * t); 0896 result += 2.47e-09 * std::cos(3.84244798532 + 5429.8794682394 * t); 0897 result += 2.45e-09 * std::cos(5.70467521726 + 65147.6197681377 * t); 0898 result += 2.41e-09 * std::cos(0.99480969552 + 3634.6210245184 * t); 0899 result += 2.46e-09 * std::cos(3.06168069935 + 110.2063212194 * t); 0900 result += 2.39e-09 * std::cos(6.11855909114 + 11856.2186514245 * t); 0901 result += 2.63e-09 * std::cos(0.66348415419 + 21228.3920235458 * t); 0902 result += 2.62e-09 * std::cos(1.51070507866 + 12146.6670561076 * t); 0903 result += 2.3e-09 * std::cos(1.75927314884 + 9779.1086761254 * t); 0904 result += 2.23e-09 * std::cos(2.00967043606 + 6172.869528772 * t); 0905 result += 2.46e-09 * std::cos(1.10411690865 + 6282.0955289232 * t); 0906 result += 2.21e-09 * std::cos(3.03945240854 + 8635.9420037632 * t); 0907 result += 2.14e-09 * std::cos(4.03840869663 + 14314.1681130498 * t); 0908 result += 2.36e-09 * std::cos(5.4691507058 + 13916.0191096416 * t); 0909 result += 2.24e-09 * std::cos(4.68408089456 + 24072.9214697764 * t); 0910 result += 2.12e-09 * std::cos(2.13695625494 + 5849.3641121146 * t); 0911 result += 2.07e-09 * std::cos(3.07724246401 + 11.729352836 * t); 0912 result += 2.07e-09 * std::cos(6.10306282747 + 23543.2305046818 * t); 0913 result += 2.66e-09 * std::cos(1.00709566823 + 2388.8940204492 * t); 0914 result += 2.17e-09 * std::cos(6.27837036335 + 17267.2682016912 * t); 0915 result += 2.04e-09 * std::cos(2.34615348695 + 266.6070417218 * t); 0916 result += 1.95e-09 * std::cos(5.55015549753 + 6133.5126528568 * t); 0917 result += 1.88e-09 * std::cos(2.52667166175 + 6525.8044539654 * t); 0918 result += 1.85e-09 * std::cos(0.90960768344 + 18319.5365848796 * t); 0919 result += 1.77e-09 * std::cos(1.73429218289 + 154717.609887683 * t); 0920 result += 1.87e-09 * std::cos(4.76483647432 + 4535.0594369244 * t); 0921 result += 1.86e-09 * std::cos(4.63080493407 + 10440.2742926036 * t); 0922 result += 2.15e-09 * std::cos(2.8125545456 + 7342.4577801806 * t); 0923 result += 1.72e-09 * std::cos(1.45551888559 + 9225.539273283 * t); 0924 result += 1.62e-09 * std::cos(3.30661909388 + 639.897286314 * t); 0925 result += 1.68e-09 * std::cos(2.17671416605 + 27.4015560968 * t); 0926 result += 1.6e-09 * std::cos(1.68164180475 + 15110.4661198662 * t); 0927 result += 1.58e-09 * std::cos(0.13519771874 + 13095.8426650774 * t); 0928 result += 1.83e-09 * std::cos(0.56281322071 + 13517.8701062334 * t); 0929 result += 1.79e-09 * std::cos(3.58450811616 + 87.30820453981 * t); 0930 result += 1.52e-09 * std::cos(2.84070476818 + 5650.2921106782 * t); 0931 result += 1.82e-09 * std::cos(0.44065530624 + 17253.0411076896 * t); 0932 result += 1.6e-09 * std::cos(5.95767264171 + 4701.1165017084 * t); 0933 result += 1.42e-09 * std::cos(1.4629013752 + 11087.2851259184 * t); 0934 result += 1.42e-09 * std::cos(2.04464036087 + 20426.571092422 * t); 0935 result += 1.31e-09 * std::cos(5.40912137746 + 2699.7348193176 * t); 0936 result += 1.44e-09 * std::cos(2.07312090485 + 25158.6017197654 * t); 0937 result += 1.47e-09 * std::cos(6.15106982168 + 9623.6882766912 * t); 0938 result += 1.41e-09 * std::cos(5.55739979498 + 10454.5013866052 * t); 0939 result += 1.35e-09 * std::cos(0.06098110407 + 16723.350142595 * t); 0940 result += 1.24e-09 * std::cos(5.81218025669 + 17256.6315363414 * t); 0941 result += 1.24e-09 * std::cos(2.36293551623 + 4933.2084403326 * t); 0942 result += 1.26e-09 * std::cos(3.47435905118 + 22483.8485744926 * t); 0943 result += 1.59e-09 * std::cos(5.63954754618 + 5729.506447149 * t); 0944 result += 1.23e-09 * std::cos(3.92815963256 + 17996.0311682222 * t); 0945 result += 1.48e-09 * std::cos(3.02509280598 + 1551.045222648 * t); 0946 result += 1.2e-09 * std::cos(5.91904349732 + 6206.8097787158 * t); 0947 result += 1.34e-09 * std::cos(3.11122937825 + 21954.157609398 * t); 0948 result += 1.19e-09 * std::cos(5.5214112345 + 709.9330485583 * t); 0949 result += 1.22e-09 * std::cos(3.00813429479 + 19800.9459562248 * t); 0950 result += 1.27e-09 * std::cos(1.37618620001 + 14945.3161735544 * t); 0951 result += 1.41e-09 * std::cos(2.56889468729 + 1052.2683831884 * t); 0952 result += 1.23e-09 * std::cos(2.83671175442 + 11919.140866668 * t); 0953 result += 1.18e-09 * std::cos(0.81934438215 + 5331.3574437408 * t); 0954 result += 1.51e-09 * std::cos(2.68731829165 + 11769.8536931664 * t); 0955 result += 1.19e-09 * std::cos(5.08835797638 + 5481.2549188676 * t); 0956 result += 1.53e-09 * std::cos(2.46021790779 + 11933.3679606696 * t); 0957 result += 1.08e-09 * std::cos(1.04936452145 + 11403.676995575 * t); 0958 result += 1.28e-09 * std::cos(0.99794735107 + 8827.3902698748 * t); 0959 result += 1.44e-09 * std::cos(2.54869747042 + 227.476132789 * t); 0960 result += 1.5e-09 * std::cos(4.50631437136 + 2379.1644735716 * t); 0961 result += 1.07e-09 * std::cos(1.79272017026 + 13119.7211028252 * t); 0962 result += 1.07e-09 * std::cos(4.43556814486 + 18422.6293590982 * t); 0963 result += 1.09e-09 * std::cos(0.29269062317 + 16737.5772365966 * t); 0964 result += 1.41e-09 * std::cos(3.18979826258 + 6262.300454499 * t); 0965 result += 1.22e-09 * std::cos(4.23040027813 + 29.429508536 * t); 0966 result += 1.11e-09 * std::cos(5.16954029551 + 17782.7320727842 * t); 0967 result += 1e-09 * std::cos(3.52213872761 + 18052.9295431578 * t); 0968 result += 1.08e-09 * std::cos(1.08514212991 + 16858.4825329332 * t); 0969 result += 1.06e-09 * std::cos(1.9608524841 + 74.7815985673 * t); 0970 result += 1.1e-09 * std::cos(2.30582372873 + 16460.333529525 * t); 0971 result += 9.7e-10 * std::cos(3.5091894021 + 5333.9002410216 * t); 0972 result += 9.9e-10 * std::cos(3.56417337974 + 735.8765135318 * t); 0973 result += 9.4e-10 * std::cos(5.01857894228 + 3128.3887650958 * t); 0974 result += 9.7e-10 * std::cos(1.65579893894 + 533.2140834436 * t); 0975 result += 9.2e-10 * std::cos(0.89217162285 + 29296.6153895786 * t); 0976 result += 1.23e-09 * std::cos(3.16062050433 + 9380.9596727172 * t); 0977 result += 1.02e-09 * std::cos(1.20493500565 + 23020.653086588 * t); 0978 result += 8.8e-10 * std::cos(2.21296088224 + 12721.572099417 * t); 0979 result += 8.9e-10 * std::cos(1.5426472031 + 20199.094959633 * t); 0980 result += 1.13e-09 * std::cos(4.8332070787 + 16496.3613962024 * t); 0981 result += 1.21e-09 * std::cos(6.19860353182 + 9388.0059094152 * t); 0982 result += 8.9e-10 * std::cos(4.08082274765 + 22805.7355659936 * t); 0983 result += 9.8e-10 * std::cos(1.0918183283 + 12043.574281889 * t); 0984 result += 8.6e-10 * std::cos(1.13655027605 + 143571.324284816 * t); 0985 result += 8.8e-10 * std::cos(5.96980472191 + 107.6635239386 * t); 0986 result += 8.2e-10 * std::cos(5.01340404594 + 22003.9146348698 * t); 0987 result += 9.4e-10 * std::cos(1.69615700473 + 23006.4259925864 * t); 0988 result += 8.1e-10 * std::cos(3.00657814365 + 2118.7638603784 * t); 0989 result += 9.8e-10 * std::cos(1.39215287161 + 8662.240323563 * t); 0990 result += 7.7e-10 * std::cos(3.3355519084 + 15720.8387848784 * t); 0991 result += 8.2e-10 * std::cos(5.86880116464 + 2787.0430238574 * t); 0992 result += 7.6e-10 * std::cos(5.67183650604 + 14.2270940016 * t); 0993 result += 8.1e-10 * std::cos(6.16619455699 + 1039.0266107904 * t); 0994 result += 7.6e-10 * std::cos(3.21449884756 + 111.1866422876 * t); 0995 result += 7.8e-10 * std::cos(1.37531518377 + 21947.1113727 * t); 0996 result += 7.4e-10 * std::cos(3.58814195051 + 11609.8625440122 * t); 0997 result += 7.7e-10 * std::cos(4.84846488388 + 22743.4093795164 * t); 0998 result += 9e-10 * std::cos(1.48869013606 + 15671.0817594066 * t); 0999 result += 8.2e-10 * std::cos(3.48618399109 + 29088.811415985 * t); 1000 result += 6.9e-10 * std::cos(3.55746476593 + 4590.910180489 * t); 1001 result += 6.9e-10 * std::cos(1.93625656075 + 135.62532501 * t); 1002 result += 7e-10 * std::cos(2.66548322237 + 18875.525869774 * t); 1003 result += 6.9e-10 * std::cos(5.41478093731 + 26735.9452622132 * t); 1004 result += 7.9e-10 * std::cos(5.15154513662 + 12323.4230960088 * t); 1005 result += 9.4e-10 * std::cos(3.62899392448 + 77713.7714681205 * t); 1006 result += 7.8e-10 * std::cos(4.17011182047 + 1066.49547719 * t); 1007 result += 7.1e-10 * std::cos(3.89435637865 + 22779.4372461938 * t); 1008 result += 6.3e-10 * std::cos(4.53968787714 + 8982.810669309 * t); 1009 result += 6.9e-10 * std::cos(0.96028230548 + 14919.0178537546 * t); 1010 result += 7.6e-10 * std::cos(3.29092216589 + 2942.4634232916 * t); 1011 result += 6.3e-10 * std::cos(4.09167842893 + 16062.1845261168 * t); 1012 result += 6.5e-10 * std::cos(3.34580407184 + 51.28033786241 * t); 1013 result += 6.5e-10 * std::cos(5.75757544877 + 52670.0695933026 * t); 1014 result += 6.8e-10 * std::cos(5.75884067555 + 21424.4666443034 * t); 1015 result += 5.7e-10 * std::cos(5.4512239985 + 12592.4500197826 * t); 1016 result += 5.7e-10 * std::cos(5.25043362558 + 20995.3929664494 * t); 1017 result += 7.3e-10 * std::cos(0.53299090807 + 2301.58581590939 * t); 1018 result += 7e-10 * std::cos(4.31243357502 + 19402.7969528166 * t); 1019 result += 6.7e-10 * std::cos(2.53852336668 + 377.3736079158 * t); 1020 result += 5.6e-10 * std::cos(3.20816844695 + 24889.5747959916 * t); 1021 result += 5.3e-10 * std::cos(3.17816599142 + 18451.078546566 * t); 1022 result += 5.3e-10 * std::cos(3.61529270216 + 77.673770428 * t); 1023 result += 5.3e-10 * std::cos(0.45467549335 + 30666.1549584328 * t); 1024 result += 6.1e-10 * std::cos(0.14807288453 + 23013.5395395872 * t); 1025 result += 5.1e-10 * std::cos(3.32803972907 + 56.8983749356 * t); 1026 result += 5.2e-10 * std::cos(3.41177624177 + 23141.5583829246 * t); 1027 result += 5.8e-10 * std::cos(3.13638677202 + 309.2783226558 * t); 1028 result += 7e-10 * std::cos(2.50592323465 + 31415.379249957 * t); 1029 result += 5.2e-10 * std::cos(5.10673376738 + 17796.9591667858 * t); 1030 result += 6.7e-10 * std::cos(6.27917920454 + 22345.2603761082 * t); 1031 result += 5e-10 * std::cos(0.42577644151 + 25685.872802808 * t); 1032 result += 4.8e-10 * std::cos(0.70204553333 + 1162.4747044078 * t); 1033 result += 6.6e-10 * std::cos(3.64350022359 + 15265.8865193004 * t); 1034 result += 5e-10 * std::cos(5.7438291744 + 19.66976089979 * t); 1035 result += 5e-10 * std::cos(4.69825387775 + 28237.2334593894 * t); 1036 result += 4.7e-10 * std::cos(5.74015846442 + 12139.5535091068 * t); 1037 result += 5.4e-10 * std::cos(1.97301333704 + 23581.2581773176 * t); 1038 result += 4.9e-10 * std::cos(4.98223579027 + 10021.8372800994 * t); 1039 result += 4.6e-10 * std::cos(5.41431705539 + 33019.0211122046 * t); 1040 result += 5.1e-10 * std::cos(1.23882053879 + 12539.853380183 * t); 1041 result += 4.6e-10 * std::cos(2.41369976086 + 98068.5367163054 * t); 1042 result += 4.4e-10 * std::cos(0.80750593746 + 167283.761587666 * t); 1043 result += 4.5e-10 * std::cos(4.39613584445 + 433.7117378768 * t); 1044 result += 4.4e-10 * std::cos(2.57358208785 + 12964.300703391 * t); 1045 result += 4.6e-10 * std::cos(0.26142733448 + 11.0457002639 * t); 1046 result += 4.5e-10 * std::cos(2.46230645202 + 51868.2486621788 * t); 1047 result += 4.8e-10 * std::cos(0.89551707131 + 56600.2792895222 * t); 1048 result += 5.7e-10 * std::cos(1.8641670701 + 25287.7237993998 * t); 1049 result += 4.2e-10 * std::cos(5.26377513431 + 26084.0218062162 * t); 1050 result += 4.9e-10 * std::cos(3.17757670611 + 6303.8512454838 * t); 1051 result += 5.2e-10 * std::cos(3.65266055509 + 7872.1487452752 * t); 1052 result += 4e-10 * std::cos(1.81891629936 + 34596.3646546524 * t); 1053 result += 4.3e-10 * std::cos(1.94164978061 + 1903.4368125012 * t); 1054 result += 4.1e-10 * std::cos(0.74461854136 + 23937.856389741 * t); 1055 result += 4.8e-10 * std::cos(6.26034008181 + 28286.9904848612 * t); 1056 result += 4.5e-10 * std::cos(5.4557501753 + 60530.4889857418 * t); 1057 result += 4e-10 * std::cos(2.92105728682 + 21548.9623692918 * t); 1058 result += 4e-10 * std::cos(0.04502010161 + 38526.574350872 * t); 1059 result += 5.3e-10 * std::cos(3.64791042082 + 11925.2740926006 * t); 1060 result += 4.1e-10 * std::cos(5.04048954693 + 27832.0382192832 * t); 1061 result += 4.2e-10 * std::cos(5.19292937193 + 19004.6479494084 * t); 1062 result += 4e-10 * std::cos(2.57120233428 + 24356.7807886416 * t); 1063 result += 3.8e-10 * std::cos(3.49190341464 + 226858.23855437 * t); 1064 result += 3.9e-10 * std::cos(4.61184303844 + 95.9792272178 * t); 1065 result += 4.3e-10 * std::cos(2.20648228147 + 13521.7514415914 * t); 1066 result += 4e-10 * std::cos(5.83461945819 + 16193.6591775004 * t); 1067 result += 4.5e-10 * std::cos(3.73714372195 + 7875.6718636242 * t); 1068 result += 4.3e-10 * std::cos(1.14078465002 + 49.7570254718 * t); 1069 result += 3.7e-10 * std::cos(1.29390383811 + 310.8407988684 * t); 1070 result += 3.8e-10 * std::cos(0.9597092595 + 664.75604513 * t); 1071 result += 3.7e-10 * std::cos(4.27532649462 + 6709.6740408674 * t); 1072 result += 3.8e-10 * std::cos(2.20108541046 + 28628.3362260996 * t); 1073 result += 3.9e-10 * std::cos(0.85957361635 + 16522.6597160022 * t); 1074 result += 4e-10 * std::cos(4.35214003837 + 48739.859897083 * t); 1075 result += 3.6e-10 * std::cos(1.68167662194 + 10344.2950653858 * t); 1076 result += 4e-10 * std::cos(5.13217319067 + 15664.0355227086 * t); 1077 result += 3.6e-10 * std::cos(3.72187132496 + 30774.5016425748 * t); 1078 result += 3.6e-10 * std::cos(3.32158458257 + 16207.886271502 * t); 1079 result += 4.5e-10 * std::cos(3.94202418608 + 10988.808157535 * t); 1080 result += 3.9e-10 * std::cos(1.51948786199 + 12029.3471878874 * t); 1081 result += 2.6e-10 * std::cos(3.8768588318 + 6262.7205305926 * t); 1082 result += 2.4e-10 * std::cos(4.91804163466 + 19651.048481098 * t); 1083 result += 2.3e-10 * std::cos(0.29300197709 + 13362.4497067992 * t); 1084 result += 2.1e-10 * std::cos(3.18605672363 + 6277.552925684 * t); 1085 result += 2.1e-10 * std::cos(6.07546891132 + 18139.2945014159 * t); 1086 result += 2.2e-10 * std::cos(2.31199937177 + 6303.4311693902 * t); 1087 result += 2.1e-10 * std::cos(3.58418394393 + 18209.3302636602 * t); 1088 result += 2.6e-10 * std::cos(2.068012969 + 12573.2652469836 * t); 1089 result += 2.1e-10 * std::cos(1.56857722317 + 13341.6743113068 * t); 1090 result += 2.4e-10 * std::cos(5.72605158675 + 29864.334027309 * t); 1091 result += 2.4e-10 * std::cos(1.40237993205 + 14712.317116458 * t); 1092 result += 2.5e-10 * std::cos(5.71466092822 + 25934.1243310894 * t); 1093 return result; 1094 } 1095 1096 constexpr double getEarthL2(double t) 1097 { 1098 double result = 0.0; 1099 result += 0.0005291887; 1100 result += 8.719837e-05 * std::cos(1.07209665242 + 6283.0758499914 * t); 1101 result += 3.09125e-06 * std::cos(0.86728818832 + 12566.1516999828 * t); 1102 result += 2.7339e-07 * std::cos(0.05297871691 + 3.523118349 * t); 1103 result += 1.6334e-07 * std::cos(5.18826691036 + 26.2983197998 * t); 1104 result += 1.5752e-07 * std::cos(3.6845788943 + 155.4203994342 * t); 1105 result += 9.541e-08 * std::cos(0.75742297675 + 18849.2275499742 * t); 1106 result += 8.937e-08 * std::cos(2.05705419118 + 77713.7714681205 * t); 1107 result += 6.952e-08 * std::cos(0.8267330541 + 775.522611324 * t); 1108 result += 5.064e-08 * std::cos(4.66284525271 + 1577.3435424478 * t); 1109 result += 4.061e-08 * std::cos(1.03057162962 + 7.1135470008 * t); 1110 result += 3.463e-08 * std::cos(5.14074632811 + 796.2980068164 * t); 1111 result += 3.169e-08 * std::cos(6.05291851171 + 5507.5532386674 * t); 1112 result += 3.02e-08 * std::cos(1.19246506441 + 242.728603974 * t); 1113 result += 2.886e-08 * std::cos(6.11652627155 + 529.6909650946 * t); 1114 result += 3.81e-08 * std::cos(3.4405080349 + 5573.1428014331 * t); 1115 result += 2.714e-08 * std::cos(0.30637881025 + 398.1490034082 * t); 1116 result += 2.371e-08 * std::cos(4.38118838167 + 5223.6939198022 * t); 1117 result += 2.538e-08 * std::cos(2.27992810679 + 553.5694028424 * t); 1118 result += 2.079e-08 * std::cos(3.75435330484 + 0.9803210682 * t); 1119 result += 1.675e-08 * std::cos(0.90216407959 + 951.7184062506 * t); 1120 result += 1.534e-08 * std::cos(5.75900462759 + 1349.8674096588 * t); 1121 result += 1.224e-08 * std::cos(2.97328088405 + 2146.1654164752 * t); 1122 result += 1.449e-08 * std::cos(4.3641591397 + 1748.016413067 * t); 1123 result += 1.341e-08 * std::cos(3.72061130861 + 1194.4470102246 * t); 1124 result += 1.254e-08 * std::cos(2.94846826628 + 6438.4962494256 * t); 1125 result += 9.99e-09 * std::cos(5.98640014468 + 6286.5989683404 * t); 1126 result += 9.17e-09 * std::cos(4.79788687522 + 5088.6288397668 * t); 1127 result += 8.28e-09 * std::cos(3.31321076572 + 213.299095438 * t); 1128 result += 1.103e-08 * std::cos(1.27104454479 + 161000.685737674 * t); 1129 result += 7.62e-09 * std::cos(3.41582762988 + 5486.777843175 * t); 1130 result += 1.044e-08 * std::cos(0.60409577691 + 3154.6870848956 * t); 1131 result += 8.87e-09 * std::cos(5.23465144638 + 7084.8967811152 * t); 1132 result += 6.45e-09 * std::cos(1.60096192515 + 2544.3144198834 * t); 1133 result += 6.81e-09 * std::cos(3.43155669169 + 4694.0029547076 * t); 1134 result += 6.05e-09 * std::cos(2.47806340546 + 10977.078804699 * t); 1135 result += 7.06e-09 * std::cos(6.19393222575 + 4690.4798363586 * t); 1136 result += 6.43e-09 * std::cos(1.98042503148 + 801.8209311238 * t); 1137 result += 5.02e-09 * std::cos(1.44394375363 + 6836.6452528338 * t); 1138 result += 4.9e-09 * std::cos(2.34129524194 + 1592.5960136328 * t); 1139 result += 4.58e-09 * std::cos(1.30876448575 + 4292.3308329504 * t); 1140 result += 4.31e-09 * std::cos(0.03526421494 + 7234.794256242 * t); 1141 result += 3.79e-09 * std::cos(3.17030522615 + 6309.3741697912 * t); 1142 result += 3.48e-09 * std::cos(0.99049550009 + 6040.3472460174 * t); 1143 result += 3.86e-09 * std::cos(1.57019797263 + 71430.6956181291 * t); 1144 result += 3.47e-09 * std::cos(0.67013291338 + 1059.3819301892 * t); 1145 result += 4.58e-09 * std::cos(3.81499443681 + 149854.400134808 * t); 1146 result += 3.02e-09 * std::cos(1.91760044838 + 10447.3878396044 * t); 1147 result += 3.07e-09 * std::cos(3.55343347416 + 8031.0922630584 * t); 1148 result += 3.95e-09 * std::cos(4.93701776616 + 7632.9432596502 * t); 1149 result += 3.14e-09 * std::cos(3.18093696547 + 2352.8661537718 * t); 1150 result += 2.82e-09 * std::cos(4.41936437052 + 9437.762934887 * t); 1151 result += 2.76e-09 * std::cos(2.71314254553 + 3894.1818295422 * t); 1152 result += 2.98e-09 * std::cos(2.5203747421 + 6127.6554505572 * t); 1153 result += 2.3e-09 * std::cos(1.37790215549 + 4705.7323075436 * t); 1154 result += 2.52e-09 * std::cos(0.55330133471 + 6279.5527316424 * t); 1155 result += 2.55e-09 * std::cos(5.26570187369 + 6812.766815086 * t); 1156 result += 2.75e-09 * std::cos(0.67264264272 + 25132.3033999656 * t); 1157 result += 1.78e-09 * std::cos(0.92820785174 + 1990.745017041 * t); 1158 result += 2.21e-09 * std::cos(0.63897368842 + 6256.7775301916 * t); 1159 result += 1.55e-09 * std::cos(0.77319790838 + 14143.4952424306 * t); 1160 result += 1.5e-09 * std::cos(2.40470465561 + 426.598190876 * t); 1161 result += 1.96e-09 * std::cos(6.06877865012 + 640.8776073822 * t); 1162 result += 1.37e-09 * std::cos(2.21679460145 + 8429.2412664666 * t); 1163 result += 1.27e-09 * std::cos(3.26094223174 + 17789.845619785 * t); 1164 result += 1.28e-09 * std::cos(5.47237279946 + 12036.4607348882 * t); 1165 result += 1.22e-09 * std::cos(2.16291082757 + 10213.285546211 * t); 1166 result += 1.18e-09 * std::cos(0.45789822268 + 7058.5984613154 * t); 1167 result += 1.41e-09 * std::cos(2.34932647403 + 11506.7697697936 * t); 1168 result += 1e-09 * std::cos(0.85621569847 + 6290.1893969922 * t); 1169 result += 9.2e-10 * std::cos(5.10587476002 + 7079.3738568078 * t); 1170 result += 1.26e-09 * std::cos(2.65428307012 + 88860.0570709867 * t); 1171 result += 1.06e-09 * std::cos(5.85646710022 + 7860.4193924392 * t); 1172 result += 8.4e-10 * std::cos(3.57457554262 + 16730.4636895958 * t); 1173 result += 8.9e-10 * std::cos(4.21433259618 + 83996.8473181119 * t); 1174 result += 9.7e-10 * std::cos(5.57938280855 + 13367.9726311066 * t); 1175 result += 1.02e-09 * std::cos(2.05853060226 + 87.30820453981 * t); 1176 result += 8e-10 * std::cos(4.73792651816 + 11926.2544136688 * t); 1177 result += 8e-10 * std::cos(5.41418965044 + 10973.55568635 * t); 1178 result += 1.06e-09 * std::cos(4.10978997399 + 3496.032826134 * t); 1179 result += 1.02e-09 * std::cos(3.62650006043 + 244287.600007228 * t); 1180 result += 7.5e-10 * std::cos(4.89483161769 + 5643.1785636774 * t); 1181 result += 8.7e-10 * std::cos(0.42863750683 + 11015.1064773348 * t); 1182 result += 6.9e-10 * std::cos(1.8890876072 + 10177.2576795336 * t); 1183 result += 8.9e-10 * std::cos(1.35567273119 + 6681.2248533996 * t); 1184 result += 6.6e-10 * std::cos(0.99455837265 + 6525.8044539654 * t); 1185 result += 6.7e-10 * std::cos(5.5124099707 + 3097.88382272579 * t); 1186 result += 7.6e-10 * std::cos(2.72016814799 + 4164.311989613 * t); 1187 result += 6.3e-10 * std::cos(1.4434990254 + 9917.6968745098 * t); 1188 result += 7.8e-10 * std::cos(3.51469733747 + 11856.2186514245 * t); 1189 result += 8.5e-10 * std::cos(0.50956043858 + 10575.4066829418 * t); 1190 result += 6.7e-10 * std::cos(3.62043033405 + 16496.3613962024 * t); 1191 result += 5.5e-10 * std::cos(5.24637517308 + 3340.6124266998 * t); 1192 result += 4.8e-10 * std::cos(5.43966777314 + 20426.571092422 * t); 1193 result += 6.4e-10 * std::cos(5.79535817813 + 2388.8940204492 * t); 1194 result += 4.6e-10 * std::cos(5.43499966519 + 6275.9623029906 * t); 1195 result += 5e-10 * std::cos(3.86263598617 + 5729.506447149 * t); 1196 result += 4.4e-10 * std::cos(1.52269529228 + 12168.0026965746 * t); 1197 result += 5.7e-10 * std::cos(4.96352373486 + 14945.3161735544 * t); 1198 result += 4.5e-10 * std::cos(1.0086123016 + 8635.9420037632 * t); 1199 result += 4.3e-10 * std::cos(3.30685683359 + 9779.1086761254 * t); 1200 result += 4.2e-10 * std::cos(0.6348125893 + 2699.7348193176 * t); 1201 result += 4.1e-10 * std::cos(5.67996766641 + 11712.9553182308 * t); 1202 result += 5.6e-10 * std::cos(4.34024451468 + 90955.5516944961 * t); 1203 result += 4.1e-10 * std::cos(5.81722212845 + 709.9330485583 * t); 1204 result += 5.3e-10 * std::cos(6.17052087143 + 233141.314404362 * t); 1205 result += 3.7e-10 * std::cos(3.12495025087 + 16200.7727245012 * t); 1206 result += 3.5e-10 * std::cos(5.76973458495 + 12569.6748183318 * t); 1207 result += 3.7e-10 * std::cos(0.31656444326 + 24356.7807886416 * t); 1208 result += 3.5e-10 * std::cos(0.96229051027 + 17298.1823273262 * t); 1209 result += 3.3e-10 * std::cos(5.23130355867 + 5331.3574437408 * t); 1210 result += 3.5e-10 * std::cos(0.62517020593 + 25158.6017197654 * t); 1211 result += 3.5e-10 * std::cos(0.80004512129 + 13916.0191096416 * t); 1212 result += 3.7e-10 * std::cos(2.89336088688 + 12721.572099417 * t); 1213 result += 3e-10 * std::cos(4.50198402401 + 23543.2305046818 * t); 1214 result += 3e-10 * std::cos(5.31355708693 + 18319.5365848796 * t); 1215 result += 2.9e-10 * std::cos(3.47275229977 + 13119.7211028252 * t); 1216 result += 2.9e-10 * std::cos(3.11002782516 + 4136.9104335162 * t); 1217 result += 3.2e-10 * std::cos(5.52273255667 + 5753.3848848968 * t); 1218 result += 3.5e-10 * std::cos(3.7969999668 + 143571.324284816 * t); 1219 result += 2.6e-10 * std::cos(1.50634201907 + 154717.609887683 * t); 1220 result += 3e-10 * std::cos(3.53519084118 + 6284.0561710596 * t); 1221 result += 2.3e-10 * std::cos(4.41808025967 + 5884.9268465832 * t); 1222 result += 2.5e-10 * std::cos(1.38477355808 + 65147.6197681377 * t); 1223 result += 2.3e-10 * std::cos(3.49782549797 + 7477.522860216 * t); 1224 result += 1.9e-10 * std::cos(3.14329413716 + 6496.3749454294 * t); 1225 result += 1.9e-10 * std::cos(2.20135125199 + 18073.7049386502 * t); 1226 result += 1.9e-10 * std::cos(4.95020255309 + 3930.2096962196 * t); 1227 result += 1.9e-10 * std::cos(0.57998702747 + 31415.379249957 * t); 1228 result += 2.1e-10 * std::cos(1.75474323399 + 12139.5535091068 * t); 1229 result += 1.9e-10 * std::cos(3.92233070499 + 19651.048481098 * t); 1230 result += 1.4e-10 * std::cos(0.98131213224 + 12559.038152982 * t); 1231 result += 1.9e-10 * std::cos(4.93309333729 + 2942.4634232916 * t); 1232 result += 1.6e-10 * std::cos(5.55997534558 + 8827.3902698748 * t); 1233 result += 1.3e-10 * std::cos(1.68808165516 + 4535.0594369244 * t); 1234 result += 1.3e-10 * std::cos(0.33982116161 + 4933.2084403326 * t); 1235 result += 1.2e-10 * std::cos(1.85426309994 + 5856.4776591154 * t); 1236 result += 1e-10 * std::cos(4.82763996845 + 13095.8426650774 * t); 1237 result += 1.1e-10 * std::cos(5.38005490571 + 11790.6290886588 * t); 1238 result += 1e-10 * std::cos(1.40815507226 + 10988.808157535 * t); 1239 result += 1.1e-10 * std::cos(3.05005267431 + 17260.1546546904 * t); 1240 result += 1e-10 * std::cos(4.93364992366 + 12352.8526045448 * t); 1241 return result; 1242 } 1243 1244 constexpr double getEarthL3(double t) 1245 { 1246 double result = 0.0; 1247 result += 2.89226e-06 * std::cos(5.84384198723 + 6283.0758499914 * t); 1248 result += 3.4955e-07; 1249 result += 1.6819e-07 * std::cos(5.48766912348 + 12566.1516999828 * t); 1250 result += 2.962e-08 * std::cos(5.19577265202 + 155.4203994342 * t); 1251 result += 1.288e-08 * std::cos(4.72200252235 + 3.523118349 * t); 1252 result += 6.35e-09 * std::cos(5.96925937141 + 242.728603974 * t); 1253 result += 7.14e-09 * std::cos(5.30045809128 + 18849.2275499742 * t); 1254 result += 4.02e-09 * std::cos(3.78682982419 + 553.5694028424 * t); 1255 result += 7.2e-10 * std::cos(4.2976812618 + 6286.5989683404 * t); 1256 result += 6.7e-10 * std::cos(0.90721687647 + 6127.6554505572 * t); 1257 result += 3.6e-10 * std::cos(5.24029648014 + 6438.4962494256 * t); 1258 result += 2.4e-10 * std::cos(5.16003960716 + 25132.3033999656 * t); 1259 result += 2.3e-10 * std::cos(3.01921570335 + 6309.3741697912 * t); 1260 result += 1.7e-10 * std::cos(5.82863573502 + 6525.8044539654 * t); 1261 result += 1.7e-10 * std::cos(3.6777286393 + 71430.6956181291 * t); 1262 result += 9e-11 * std::cos(4.58467294499 + 1577.3435424478 * t); 1263 result += 8e-11 * std::cos(1.40626662824 + 11856.2186514245 * t); 1264 result += 8e-11 * std::cos(5.07561257196 + 6256.7775301916 * t); 1265 result += 7e-11 * std::cos(2.82473374405 + 83996.8473181119 * t); 1266 result += 5e-11 * std::cos(2.71488713339 + 10977.078804699 * t); 1267 result += 5e-11 * std::cos(3.76879847273 + 12036.4607348882 * t); 1268 result += 5e-11 * std::cos(4.28412873331 + 6275.9623029906 * t); 1269 return result; 1270 } 1271 1272 constexpr double getEarthL4(double t) 1273 { 1274 double result = 0.0; 1275 result -= -1.14084e-06; 1276 result += 7.717e-08 * std::cos(4.13446589358 + 6283.0758499914 * t); 1277 result += 7.65e-09 * std::cos(3.83803776214 + 12566.1516999828 * t); 1278 result += 4.2e-09 * std::cos(0.41925861858 + 155.4203994342 * t); 1279 result += 4e-10 * std::cos(3.5984758584 + 18849.2275499742 * t); 1280 result += 4.1e-10 * std::cos(3.14398414077 + 3.523118349 * t); 1281 result += 3.5e-10 * std::cos(5.00298940826 + 5573.1428014331 * t); 1282 result += 1.3e-10 * std::cos(0.48794833701 + 77713.7714681205 * t); 1283 result += 1e-10 * std::cos(5.6480176635 + 6127.6554505572 * t); 1284 result += 8e-11 * std::cos(2.84160570605 + 161000.685737674 * t); 1285 result += 2e-11 * std::cos(0.54912904658 + 6438.4962494256 * t); 1286 return result; 1287 } 1288 1289 constexpr double getEarthL5(double t) 1290 { 1291 double result = 0.0; 1292 result -= -8.78e-09; 1293 result += 1.72e-09 * std::cos(2.7657906951 + 6283.0758499914 * t); 1294 result += 5e-10 * std::cos(2.01353298182 + 155.4203994342 * t); 1295 result += 2.8e-10 * std::cos(2.21496423926 + 12566.1516999828 * t); 1296 result += 5e-11 * std::cos(1.75600058765 + 18849.2275499742 * t); 1297 return result; 1298 } 1299 1300 constexpr double getEarthB0(double t) 1301 { 1302 double result = 0.0; 1303 result += 2.7962e-06 * std::cos(3.19870156017 + 84334.6615813083 * t); 1304 result += 1.01643e-06 * std::cos(5.42248619256 + 5507.5532386674 * t); 1305 result += 8.0445e-07 * std::cos(3.88013204458 + 5223.6939198022 * t); 1306 result += 4.3806e-07 * std::cos(3.70444689758 + 2352.8661537718 * t); 1307 result += 3.1933e-07 * std::cos(4.00026369781 + 1577.3435424478 * t); 1308 result += 2.2724e-07 * std::cos(3.9847383156 + 1047.7473117547 * t); 1309 result += 1.6392e-07 * std::cos(3.56456119782 + 5856.4776591154 * t); 1310 result += 1.8141e-07 * std::cos(4.98367470263 + 6283.0758499914 * t); 1311 result += 1.4443e-07 * std::cos(3.70275614914 + 9437.762934887 * t); 1312 result += 1.4304e-07 * std::cos(3.41117857525 + 10213.285546211 * t); 1313 result += 1.1246e-07 * std::cos(4.8282069053 + 14143.4952424306 * t); 1314 result += 1.09e-07 * std::cos(2.08574562327 + 6812.766815086 * t); 1315 result += 9.714e-08 * std::cos(3.47303947752 + 4694.0029547076 * t); 1316 result += 1.0367e-07 * std::cos(4.05663927946 + 71092.8813549327 * t); 1317 result += 8.775e-08 * std::cos(4.44016515669 + 5753.3848848968 * t); 1318 result += 8.366e-08 * std::cos(4.9925151218 + 7084.8967811152 * t); 1319 result += 6.921e-08 * std::cos(4.32559054073 + 6275.9623029906 * t); 1320 result += 9.145e-08 * std::cos(1.14182646613 + 6620.8901131878 * t); 1321 result += 7.194e-08 * std::cos(3.60193205752 + 529.6909650946 * t); 1322 result += 7.698e-08 * std::cos(5.55425745881 + 167621.575850862 * t); 1323 result += 5.285e-08 * std::cos(2.48446991566 + 4705.7323075436 * t); 1324 result += 5.208e-08 * std::cos(6.24992674537 + 18073.7049386502 * t); 1325 result += 4.529e-08 * std::cos(2.33827747356 + 6309.3741697912 * t); 1326 result += 5.579e-08 * std::cos(4.41023653738 + 7860.4193924392 * t); 1327 result += 4.743e-08 * std::cos(0.70995680136 + 5884.9268465832 * t); 1328 result += 4.301e-08 * std::cos(1.10255777773 + 6681.2248533996 * t); 1329 result += 3.849e-08 * std::cos(1.82229412531 + 5486.777843175 * t); 1330 result += 4.093e-08 * std::cos(5.11700141207 + 13367.9726311066 * t); 1331 result += 3.681e-08 * std::cos(0.43793170356 + 3154.6870848956 * t); 1332 result += 3.42e-08 * std::cos(5.42034800952 + 6069.7767545534 * t); 1333 result += 3.617e-08 * std::cos(6.04641937526 + 3930.2096962196 * t); 1334 result += 3.67e-08 * std::cos(4.58210192227 + 12194.0329146209 * t); 1335 result += 2.918e-08 * std::cos(1.95463881126 + 10977.078804699 * t); 1336 result += 2.797e-08 * std::cos(5.61259275048 + 11790.6290886588 * t); 1337 result += 2.502e-08 * std::cos(0.60499729367 + 6496.3749454294 * t); 1338 result += 2.319e-08 * std::cos(5.01648216014 + 1059.3819301892 * t); 1339 result += 2.684e-08 * std::cos(1.39470396488 + 22003.9146348698 * t); 1340 result += 2.428e-08 * std::cos(3.24183056052 + 78051.5857313169 * t); 1341 result += 2.12e-08 * std::cos(4.30691000285 + 5643.1785636774 * t); 1342 result += 2.257e-08 * std::cos(3.15557225618 + 90617.7374312997 * t); 1343 result += 1.813e-08 * std::cos(3.75574218285 + 3340.6124266998 * t); 1344 result += 2.226e-08 * std::cos(2.79699346659 + 12036.4607348882 * t); 1345 result += 1.888e-08 * std::cos(0.86991545823 + 8635.9420037632 * t); 1346 result += 1.517e-08 * std::cos(1.95852055701 + 398.1490034082 * t); 1347 result += 1.581e-08 * std::cos(3.19976230948 + 5088.6288397668 * t); 1348 result += 1.421e-08 * std::cos(6.25530883827 + 2544.3144198834 * t); 1349 result += 1.595e-08 * std::cos(0.25619915135 + 17298.1823273262 * t); 1350 result += 1.391e-08 * std::cos(4.69964175561 + 7058.5984613154 * t); 1351 result += 1.478e-08 * std::cos(2.81808207569 + 25934.1243310894 * t); 1352 result += 1.481e-08 * std::cos(3.65823554806 + 11506.7697697936 * t); 1353 result += 1.693e-08 * std::cos(4.95689385293 + 156475.290247996 * t); 1354 result += 1.183e-08 * std::cos(1.29343061246 + 775.522611324 * t); 1355 result += 1.114e-08 * std::cos(2.37889311846 + 3738.761430108 * t); 1356 result += 9.94e-09 * std::cos(4.30088900425 + 9225.539273283 * t); 1357 result += 9.24e-09 * std::cos(3.06451026812 + 4164.311989613 * t); 1358 result += 8.67e-09 * std::cos(0.55606931068 + 8429.2412664666 * t); 1359 result += 9.88e-09 * std::cos(5.97286104208 + 7079.3738568078 * t); 1360 result += 8.24e-09 * std::cos(1.50984806173 + 10447.3878396044 * t); 1361 result += 9.15e-09 * std::cos(0.12635654592 + 11015.1064773348 * t); 1362 result += 7.42e-09 * std::cos(1.99159139281 + 26087.9031415742 * t); 1363 result -= -1.039e-08; 1364 result += 8.5e-09 * std::cos(4.24120016095 + 29864.334027309 * t); 1365 result += 7.55e-09 * std::cos(2.8963187332 + 4732.0306273434 * t); 1366 result += 7.14e-09 * std::cos(1.37548118603 + 2146.1654164752 * t); 1367 result += 7.08e-09 * std::cos(1.91406542362 + 8031.0922630584 * t); 1368 result += 7.46e-09 * std::cos(0.57893808616 + 796.2980068164 * t); 1369 result += 8.02e-09 * std::cos(5.1233913723 + 2942.4634232916 * t); 1370 result += 7.51e-09 * std::cos(1.67479850166 + 21228.3920235458 * t); 1371 result += 6.02e-09 * std::cos(4.09976538826 + 64809.8055049413 * t); 1372 result += 5.94e-09 * std::cos(3.49580704962 + 16496.3613962024 * t); 1373 result += 5.92e-09 * std::cos(4.59481504319 + 4690.4798363586 * t); 1374 result += 5.3e-09 * std::cos(5.739792952 + 8827.3902698748 * t); 1375 result += 5.03e-09 * std::cos(5.66433137112 + 33794.5437235286 * t); 1376 result += 4.83e-09 * std::cos(1.57106522411 + 801.8209311238 * t); 1377 result += 4.38e-09 * std::cos(0.06707733767 + 3128.3887650958 * t); 1378 result += 4.23e-09 * std::cos(2.86944595927 + 12566.1516999828 * t); 1379 result += 5.04e-09 * std::cos(3.2620766916 + 7632.9432596502 * t); 1380 result += 5.52e-09 * std::cos(1.02926440457 + 239762.204517549 * t); 1381 result += 4.27e-09 * std::cos(3.6743437821 + 213.299095438 * t); 1382 result += 4.04e-09 * std::cos(1.46193297142 + 15720.8387848784 * t); 1383 result += 5.03e-09 * std::cos(4.85802444134 + 6290.1893969922 * t); 1384 result += 4.17e-09 * std::cos(0.81920713533 + 5216.5803728014 * t); 1385 result += 3.65e-09 * std::cos(0.01002966162 + 12168.0026965746 * t); 1386 result += 3.63e-09 * std::cos(1.28376436579 + 6206.8097787158 * t); 1387 result += 3.53e-09 * std::cos(4.7005913311 + 7234.794256242 * t); 1388 result += 4.15e-09 * std::cos(0.96862624175 + 4136.9104335162 * t); 1389 result += 3.87e-09 * std::cos(3.09145061418 + 25158.6017197654 * t); 1390 result += 3.73e-09 * std::cos(2.65119262792 + 7342.4577801806 * t); 1391 result += 3.61e-09 * std::cos(2.97762937739 + 9623.6882766912 * t); 1392 result += 4.18e-09 * std::cos(3.75759994446 + 5230.807466803 * t); 1393 result += 3.96e-09 * std::cos(1.22507712354 + 6438.4962494256 * t); 1394 result += 3.22e-09 * std::cos(1.21162178805 + 8662.240323563 * t); 1395 result += 2.84e-09 * std::cos(5.64170320068 + 1589.0728952838 * t); 1396 result += 3.79e-09 * std::cos(1.72248432748 + 14945.3161735544 * t); 1397 result += 3.2e-09 * std::cos(3.94161159962 + 7330.8231617461 * t); 1398 result += 3.13e-09 * std::cos(5.47602376446 + 1194.4470102246 * t); 1399 result += 2.92e-09 * std::cos(1.38971327603 + 11769.8536931664 * t); 1400 result += 3.05e-09 * std::cos(0.80429352049 + 37724.7534197482 * t); 1401 result += 2.57e-09 * std::cos(5.81382809757 + 426.598190876 * t); 1402 result += 2.65e-09 * std::cos(6.10358507671 + 6836.6452528338 * t); 1403 result += 2.5e-09 * std::cos(4.56452895547 + 7477.522860216 * t); 1404 result += 2.66e-09 * std::cos(2.62926282354 + 7238.6755916 * t); 1405 result += 2.63e-09 * std::cos(6.22089501237 + 6133.5126528568 * t); 1406 result += 3.06e-09 * std::cos(2.79682380531 + 1748.016413067 * t); 1407 result += 2.36e-09 * std::cos(2.46093023714 + 11371.7046897582 * t); 1408 result += 3.16e-09 * std::cos(1.62662805006 + 250908.490120415 * t); 1409 result += 2.16e-09 * std::cos(3.68721275185 + 5849.3641121146 * t); 1410 result += 2.3e-09 * std::cos(0.36165162947 + 5863.5912061162 * t); 1411 result += 2.33e-09 * std::cos(5.03509933858 + 20426.571092422 * t); 1412 result += 2e-09 * std::cos(5.86073159059 + 4535.0594369244 * t); 1413 result += 2.77e-09 * std::cos(4.65400292395 + 82239.1669577989 * t); 1414 result += 2.09e-09 * std::cos(3.72323200804 + 10973.55568635 * t); 1415 result += 1.99e-09 * std::cos(5.05186622555 + 5429.8794682394 * t); 1416 result += 2.56e-09 * std::cos(2.4092327977 + 19651.048481098 * t); 1417 result += 2.1e-09 * std::cos(4.50691909144 + 29088.811415985 * t); 1418 result += 1.81e-09 * std::cos(6.00294783127 + 4292.3308329504 * t); 1419 result += 2.49e-09 * std::cos(0.12900984422 + 154379.795624486 * t); 1420 result += 2.09e-09 * std::cos(3.87759458598 + 17789.845619785 * t); 1421 result += 2.25e-09 * std::cos(3.18339652605 + 18875.525869774 * t); 1422 result += 1.91e-09 * std::cos(4.53897489299 + 18477.1087646123 * t); 1423 result += 1.72e-09 * std::cos(2.09694183014 + 13095.8426650774 * t); 1424 result += 1.82e-09 * std::cos(3.161079435 + 16730.4636895958 * t); 1425 result += 1.88e-09 * std::cos(2.22746128596 + 41654.9631159678 * t); 1426 result += 1.64e-09 * std::cos(5.18686275017 + 5481.2549188676 * t); 1427 result += 1.6e-09 * std::cos(2.49298855159 + 12592.4500197826 * t); 1428 result += 1.55e-09 * std::cos(1.5959543823 + 10021.8372800994 * t); 1429 result += 1.35e-09 * std::cos(0.21349051064 + 10988.808157535 * t); 1430 result += 1.78e-09 * std::cos(3.8037517797 + 23581.2581773176 * t); 1431 result += 1.23e-09 * std::cos(1.66800739151 + 15110.4661198662 * t); 1432 result += 1.22e-09 * std::cos(2.72678272244 + 18849.2275499742 * t); 1433 result += 1.26e-09 * std::cos(1.1767551291 + 14919.0178537546 * t); 1434 result += 1.42e-09 * std::cos(3.95053441332 + 337.8142631964 * t); 1435 result += 1.16e-09 * std::cos(6.06340906229 + 6709.6740408674 * t); 1436 result += 1.37e-09 * std::cos(3.52143246757 + 12139.5535091068 * t); 1437 result += 1.36e-09 * std::cos(2.92179113542 + 32217.2001810808 * t); 1438 result += 1.1e-09 * std::cos(3.51203379263 + 18052.9295431578 * t); 1439 result += 1.47e-09 * std::cos(4.63371971408 + 22805.7355659936 * t); 1440 result += 1.08e-09 * std::cos(5.45280814878 + 7.1135470008 * t); 1441 result += 1.48e-09 * std::cos(0.65447253687 + 95480.9471841745 * t); 1442 result += 1.19e-09 * std::cos(5.92110458985 + 33019.0211122046 * t); 1443 result += 1.1e-09 * std::cos(5.34824206306 + 639.897286314 * t); 1444 result += 1.06e-09 * std::cos(3.71081682629 + 14314.1681130498 * t); 1445 result += 1.39e-09 * std::cos(6.17607198418 + 24356.7807886416 * t); 1446 result += 1.18e-09 * std::cos(5.5973871267 + 161338.50000087 * t); 1447 result += 1.17e-09 * std::cos(3.6506527164 + 45585.1728121874 * t); 1448 result += 1.27e-09 * std::cos(4.74596574209 + 49515.382508407 * t); 1449 result += 1.2e-09 * std::cos(1.04211499785 + 6915.8595893046 * t); 1450 result += 1.2e-09 * std::cos(5.60638811846 + 5650.2921106782 * t); 1451 result += 1.15e-09 * std::cos(3.10668213289 + 14712.317116458 * t); 1452 result += 9.9e-10 * std::cos(0.69018940049 + 12779.4507954208 * t); 1453 result += 9.7e-10 * std::cos(1.07908724794 + 9917.6968745098 * t); 1454 result += 9.3e-10 * std::cos(2.62295197319 + 17260.1546546904 * t); 1455 result += 9.9e-10 * std::cos(4.45774681732 + 4933.2084403326 * t); 1456 result += 1.23e-09 * std::cos(1.37488922089 + 28286.9904848612 * t); 1457 result += 1.21e-09 * std::cos(5.19767249813 + 27511.4678735372 * t); 1458 result += 1.05e-09 * std::cos(0.87192267806 + 77375.9572049241 * t); 1459 result += 8.7e-10 * std::cos(3.9363781295 + 17654.7805397496 * t); 1460 result += 1.22e-09 * std::cos(2.2395606868 + 83997.0911355954 * t); 1461 result += 8.7e-10 * std::cos(4.18201600952 + 22779.4372461938 * t); 1462 result += 1.04e-09 * std::cos(4.59580877295 + 1349.8674096588 * t); 1463 result += 1.02e-09 * std::cos(2.83545248411 + 12352.8526045448 * t); 1464 result += 1.02e-09 * std::cos(3.97386522171 + 10818.1352869158 * t); 1465 result += 1.01e-09 * std::cos(4.32892825857 + 36147.4098773004 * t); 1466 result += 9.4e-10 * std::cos(5.00001709261 + 150192.214398004 * t); 1467 result += 7.7e-10 * std::cos(3.97199369296 + 1592.5960136328 * t); 1468 result += 1e-09 * std::cos(6.07733097102 + 26735.9452622132 * t); 1469 result += 8.6e-10 * std::cos(5.2602963825 + 28313.288804661 * t); 1470 result += 9.3e-10 * std::cos(4.31900620254 + 44809.6502008634 * t); 1471 result += 7.6e-10 * std::cos(6.22743405935 + 13521.7514415914 * t); 1472 result += 7.2e-10 * std::cos(1.55820597747 + 6256.7775301916 * t); 1473 result += 8.2e-10 * std::cos(4.95202664555 + 10575.4066829418 * t); 1474 result += 8.2e-10 * std::cos(1.69647647075 + 1990.745017041 * t); 1475 result += 7.5e-10 * std::cos(2.29836095644 + 3634.6210245184 * t); 1476 result += 7.5e-10 * std::cos(2.66367876557 + 16200.7727245012 * t); 1477 result += 8.7e-10 * std::cos(0.26630214764 + 31441.6775697568 * t); 1478 result += 7.7e-10 * std::cos(2.25530954137 + 5235.3285382367 * t); 1479 result += 7.6e-10 * std::cos(1.09869730846 + 12903.9659631792 * t); 1480 result += 5.8e-10 * std::cos(4.28246138307 + 12559.038152982 * t); 1481 result += 6.4e-10 * std::cos(5.51112830114 + 173904.651700853 * t); 1482 result += 5.6e-10 * std::cos(2.60133794851 + 73188.3759784421 * t); 1483 result += 5.5e-10 * std::cos(5.81483150022 + 143233.51002162 * t); 1484 result += 5.4e-10 * std::cos(3.38482031504 + 323049.118787103 * t); 1485 result += 3.9e-10 * std::cos(3.28500401343 + 71768.5098813255 * t); 1486 result += 3.9e-10 * std::cos(3.1123991069 + 96900.8132812911 * t); 1487 return result; 1488 } 1489 1490 constexpr double getEarthB1(double t) 1491 { 1492 double result = 0.0; 1493 result += 9.03e-08 * std::cos(3.8972906189 + 5507.5532386674 * t); 1494 result += 6.177e-08 * std::cos(1.73038850355 + 5223.6939198022 * t); 1495 result += 3.8e-08 * std::cos(5.24404145734 + 2352.8661537718 * t); 1496 result += 2.834e-08 * std::cos(2.4734503745 + 1577.3435424478 * t); 1497 result += 1.817e-08 * std::cos(0.41874743765 + 6283.0758499914 * t); 1498 result += 1.499e-08 * std::cos(1.83320979291 + 5856.4776591154 * t); 1499 result += 1.466e-08 * std::cos(5.69401926017 + 5753.3848848968 * t); 1500 result += 1.301e-08 * std::cos(2.18890066314 + 9437.762934887 * t); 1501 result += 1.233e-08 * std::cos(4.95222451476 + 10213.285546211 * t); 1502 result += 1.021e-08 * std::cos(0.12866660208 + 7860.4193924392 * t); 1503 result += 9.82e-09 * std::cos(0.09005453285 + 14143.4952424306 * t); 1504 result += 8.65e-09 * std::cos(1.73949953555 + 3930.2096962196 * t); 1505 result += 5.81e-09 * std::cos(2.26949174067 + 5884.9268465832 * t); 1506 result += 5.24e-09 * std::cos(5.65662503159 + 529.6909650946 * t); 1507 result += 4.73e-09 * std::cos(6.22750969242 + 6309.3741697912 * t); 1508 result += 4.51e-09 * std::cos(1.53288619213 + 18073.7049386502 * t); 1509 result += 3.64e-09 * std::cos(3.61614477374 + 13367.9726311066 * t); 1510 result += 3.72e-09 * std::cos(3.2247072132 + 6275.9623029906 * t); 1511 result += 2.68e-09 * std::cos(2.34341267879 + 11790.6290886588 * t); 1512 result += 3.22e-09 * std::cos(0.94084045832 + 6069.7767545534 * t); 1513 result += 2.32e-09 * std::cos(0.26781182579 + 7058.5984613154 * t); 1514 result += 2.16e-09 * std::cos(6.05952221329 + 10977.078804699 * t); 1515 result += 2.32e-09 * std::cos(2.93325646109 + 22003.9146348698 * t); 1516 result += 2.04e-09 * std::cos(3.86264841382 + 6496.3749454294 * t); 1517 result += 2.02e-09 * std::cos(2.81892511133 + 15720.8387848784 * t); 1518 result += 1.85e-09 * std::cos(4.93512381859 + 12036.4607348882 * t); 1519 result += 2.2e-09 * std::cos(3.99305643742 + 6812.766815086 * t); 1520 result += 1.66e-09 * std::cos(1.74970002999 + 11506.7697697936 * t); 1521 result += 2.12e-09 * std::cos(1.57166285369 + 4694.0029547076 * t); 1522 result += 1.57e-09 * std::cos(1.08259734788 + 5643.1785636774 * t); 1523 result += 1.54e-09 * std::cos(5.99434678412 + 5486.777843175 * t); 1524 result += 1.44e-09 * std::cos(5.23285656085 + 78051.5857313169 * t); 1525 result += 1.44e-09 * std::cos(1.16454655948 + 90617.7374312997 * t); 1526 result += 1.37e-09 * std::cos(2.67760436027 + 6290.1893969922 * t); 1527 result += 1.8e-09 * std::cos(2.06509026215 + 7084.8967811152 * t); 1528 result += 1.21e-09 * std::cos(5.90212574947 + 9225.539273283 * t); 1529 result += 1.5e-09 * std::cos(2.00175038718 + 5230.807466803 * t); 1530 result += 1.49e-09 * std::cos(5.06157254516 + 17298.1823273262 * t); 1531 result += 1.18e-09 * std::cos(5.39979058038 + 3340.6124266998 * t); 1532 result += 1.61e-09 * std::cos(3.32421999691 + 6283.3196674749 * t); 1533 result += 1.21e-09 * std::cos(4.36722193162 + 19651.048481098 * t); 1534 result += 1.16e-09 * std::cos(5.83462858507 + 4705.7323075436 * t); 1535 result += 1.28e-09 * std::cos(4.35489873365 + 25934.1243310894 * t); 1536 result += 1.43e-09; 1537 result += 1.09e-09 * std::cos(2.52157834166 + 6438.4962494256 * t); 1538 result += 9.9e-10 * std::cos(2.70727488041 + 5216.5803728014 * t); 1539 result += 1.03e-09 * std::cos(0.93782340879 + 8827.3902698748 * t); 1540 result += 8.2e-10 * std::cos(4.2921468039 + 8635.9420037632 * t); 1541 result += 7.9e-10 * std::cos(2.24085737326 + 1059.3819301892 * t); 1542 result += 9.7e-10 * std::cos(5.50959692365 + 29864.334027309 * t); 1543 result += 7.2e-10 * std::cos(0.21891639822 + 21228.3920235458 * t); 1544 result += 7.1e-10 * std::cos(2.86755026812 + 6681.2248533996 * t); 1545 result += 7.4e-10 * std::cos(2.20184828895 + 37724.7534197482 * t); 1546 result += 6.3e-10 * std::cos(4.45586625948 + 7079.3738568078 * t); 1547 result += 6.1e-10 * std::cos(0.63918772258 + 33794.5437235286 * t); 1548 result += 4.7e-10 * std::cos(2.09070235724 + 3128.3887650958 * t); 1549 result += 4.7e-10 * std::cos(3.325438433 + 26087.9031415742 * t); 1550 result += 4.9e-10 * std::cos(1.60680905005 + 6702.5604938666 * t); 1551 result += 5.7e-10 * std::cos(0.11215813438 + 29088.811415985 * t); 1552 result += 5.6e-10 * std::cos(5.47982934911 + 775.522611324 * t); 1553 result += 5e-10 * std::cos(1.89396788463 + 12139.5535091068 * t); 1554 result += 4.7e-10 * std::cos(2.9721490724 + 20426.571092422 * t); 1555 result += 4.1e-10 * std::cos(5.5532939489 + 11015.1064773348 * t); 1556 result += 4.1e-10 * std::cos(5.91861144924 + 23581.2581773176 * t); 1557 result += 4.5e-10 * std::cos(4.95273290181 + 5863.5912061162 * t); 1558 result += 5e-10 * std::cos(3.62740835096 + 41654.9631159678 * t); 1559 result += 3.7e-10 * std::cos(6.09033460601 + 64809.8055049413 * t); 1560 result += 3.7e-10 * std::cos(5.86153655431 + 12566.1516999828 * t); 1561 result += 4.6e-10 * std::cos(1.65798680284 + 25158.6017197654 * t); 1562 result += 3.8e-10 * std::cos(2.00673650251 + 426.598190876 * t); 1563 result += 3.6e-10 * std::cos(6.24373396652 + 6283.14316029419 * t); 1564 result += 3.6e-10 * std::cos(0.40465162918 + 6283.0085396886 * t); 1565 result += 3.2e-10 * std::cos(6.03707103538 + 2942.4634232916 * t); 1566 result += 4.1e-10 * std::cos(4.86809570283 + 1592.5960136328 * t); 1567 result += 2.8e-10 * std::cos(4.38359423735 + 7632.9432596502 * t); 1568 result += 2.8e-10 * std::cos(6.03334294232 + 17789.845619785 * t); 1569 result += 2.6e-10 * std::cos(3.88971333608 + 5331.3574437408 * t); 1570 result += 2.6e-10 * std::cos(5.94932724051 + 16496.3613962024 * t); 1571 result += 3.1e-10 * std::cos(1.44666331503 + 16730.4636895958 * t); 1572 result += 2.6e-10 * std::cos(6.26376705837 + 23543.2305046818 * t); 1573 result += 3.3e-10 * std::cos(0.93797239147 + 213.299095438 * t); 1574 result += 2.6e-10 * std::cos(3.71858432944 + 13095.8426650774 * t); 1575 result += 2.7e-10 * std::cos(0.60565274405 + 10988.808157535 * t); 1576 result += 2.3e-10 * std::cos(4.4438898555 + 18849.2275499742 * t); 1577 result += 2.8e-10 * std::cos(1.53862289477 + 6279.4854213396 * t); 1578 result += 2.8e-10 * std::cos(1.96831814872 + 6286.6662786432 * t); 1579 result += 2.8e-10 * std::cos(5.78094918529 + 15110.4661198662 * t); 1580 result += 2.6e-10 * std::cos(2.48165809843 + 5729.506447149 * t); 1581 result += 2e-10 * std::cos(3.85655029499 + 9623.6882766912 * t); 1582 result += 2.1e-10 * std::cos(5.83006047147 + 7234.794256242 * t); 1583 result += 2.1e-10 * std::cos(0.69628570421 + 398.1490034082 * t); 1584 result += 2.2e-10 * std::cos(5.02222806555 + 6127.6554505572 * t); 1585 result += 2e-10 * std::cos(3.4761126529 + 6148.010769956 * t); 1586 result += 2e-10 * std::cos(0.90769829044 + 5481.2549188676 * t); 1587 result += 2e-10 * std::cos(0.03081589303 + 6418.1409300268 * t); 1588 result += 2e-10 * std::cos(3.74220084927 + 1589.0728952838 * t); 1589 result += 2.1e-10 * std::cos(4.00149269576 + 3154.6870848956 * t); 1590 result += 1.8e-10 * std::cos(1.58348238359 + 2118.7638603784 * t); 1591 result += 1.9e-10 * std::cos(0.85407021371 + 14712.317116458 * t); 1592 return result; 1593 } 1594 1595 constexpr double getEarthB2(double t) 1596 { 1597 double result = 0.0; 1598 result += 1.662e-08 * std::cos(1.62703209173 + 84334.6615813083 * t); 1599 result += 4.92e-09 * std::cos(2.41382223971 + 1047.7473117547 * t); 1600 result += 3.44e-09 * std::cos(2.24353004539 + 5507.5532386674 * t); 1601 result += 2.58e-09 * std::cos(6.00906896311 + 5223.6939198022 * t); 1602 result += 1.31e-09 * std::cos(0.9544734524 + 6283.0758499914 * t); 1603 result += 8.6e-10 * std::cos(1.67530247303 + 7860.4193924392 * t); 1604 result += 9e-10 * std::cos(0.97606804452 + 1577.3435424478 * t); 1605 result += 9e-10 * std::cos(0.37899871725 + 2352.8661537718 * t); 1606 result += 8.9e-10 * std::cos(6.25807507963 + 10213.285546211 * t); 1607 result += 7.5e-10 * std::cos(0.84213523741 + 167621.575850862 * t); 1608 result += 5.2e-10 * std::cos(1.70501566089 + 14143.4952424306 * t); 1609 result += 5.7e-10 * std::cos(6.15295833679 + 12194.0329146209 * t); 1610 result += 5.1e-10 * std::cos(1.2761601674 + 5753.3848848968 * t); 1611 result += 5.1e-10 * std::cos(5.37229738682 + 6812.766815086 * t); 1612 result += 3.4e-10 * std::cos(1.73672994279 + 7058.5984613154 * t); 1613 result += 3.8e-10 * std::cos(2.77761031485 + 10988.808157535 * t); 1614 result += 4.6e-10 * std::cos(3.38617099014 + 156475.290247996 * t); 1615 result += 2.1e-10 * std::cos(1.95248349228 + 8827.3902698748 * t); 1616 result += 1.8e-10 * std::cos(3.33419222028 + 8429.2412664666 * t); 1617 result += 1.9e-10 * std::cos(4.32945160287 + 17789.845619785 * t); 1618 result += 1.7e-10 * std::cos(0.66191210656 + 6283.0085396886 * t); 1619 result += 1.8e-10 * std::cos(3.74885333072 + 11769.8536931664 * t); 1620 result += 1.7e-10 * std::cos(4.23058370776 + 10977.078804699 * t); 1621 result += 1.7e-10 * std::cos(1.78116162721 + 5486.777843175 * t); 1622 result += 2.1e-10 * std::cos(1.36972913918 + 12036.4607348882 * t); 1623 result += 1.7e-10 * std::cos(2.79601092529 + 796.2980068164 * t); 1624 result += 1.5e-10 * std::cos(0.4308784885 + 11790.6290886588 * t); 1625 result += 1.7e-10 * std::cos(1.35132152761 + 78051.5857313169 * t); 1626 result += 1.5e-10 * std::cos(1.17032155085 + 213.299095438 * t); 1627 result += 1.8e-10 * std::cos(2.85221514199 + 5088.6288397668 * t); 1628 result += 1.7e-10 * std::cos(0.21780913672 + 6283.14316029419 * t); 1629 result += 1.3e-10 * std::cos(1.21201504386 + 25132.3033999656 * t); 1630 result += 1.2e-10 * std::cos(1.12953712197 + 90617.7374312997 * t); 1631 result += 1.2e-10 * std::cos(5.13714452592 + 7079.3738568078 * t); 1632 result += 1.3e-10 * std::cos(3.79842135217 + 4933.2084403326 * t); 1633 result += 1.2e-10 * std::cos(4.89407978213 + 3738.761430108 * t); 1634 result += 1.5e-10 * std::cos(6.05682328852 + 398.1490034082 * t); 1635 result += 1.4e-10 * std::cos(4.81029291856 + 4694.0029547076 * t); 1636 result += 1.1e-10 * std::cos(0.61684523405 + 3128.3887650958 * t); 1637 result += 1.1e-10 * std::cos(5.328765385 + 6040.3472460174 * t); 1638 result += 1.4e-10 * std::cos(5.27227350286 + 4535.0594369244 * t); 1639 result += 1.1e-10 * std::cos(2.39292099451 + 5331.3574437408 * t); 1640 result += 1e-10 * std::cos(4.4529653271 + 6525.8044539654 * t); 1641 result += 1.4e-10 * std::cos(4.66400985037 + 8031.0922630584 * t); 1642 result += 1e-10 * std::cos(3.22472385926 + 9437.762934887 * t); 1643 result += 1.1e-10 * std::cos(3.80913404437 + 801.8209311238 * t); 1644 result += 1e-10 * std::cos(5.15032130575 + 11371.7046897582 * t); 1645 result += 1.3e-10 * std::cos(0.98720797401 + 5729.506447149 * t); 1646 result += 9e-11 * std::cos(5.94191743597 + 7632.9432596502 * t); 1647 return result; 1648 } 1649 1650 constexpr double getEarthB3(double t) 1651 { 1652 double result = 0.0; 1653 result += 1.1e-10 * std::cos(0.23877262399 + 7860.4193924392 * t); 1654 result += 9e-11 * std::cos(1.16069982609 + 5507.5532386674 * t); 1655 result += 8e-11 * std::cos(1.65357552925 + 5884.9268465832 * t); 1656 result += 8e-11 * std::cos(2.86720038197 + 7058.5984613154 * t); 1657 result += 7e-11 * std::cos(3.04818741666 + 5486.777843175 * t); 1658 result += 7e-11 * std::cos(2.59437103785 + 529.6909650946 * t); 1659 result += 8e-11 * std::cos(4.02863090524 + 6256.7775301916 * t); 1660 result += 8e-11 * std::cos(2.42003508927 + 5753.3848848968 * t); 1661 result += 6e-11 * std::cos(0.84181087594 + 6275.9623029906 * t); 1662 result += 6e-11 * std::cos(5.40160929468 + 1577.3435424478 * t); 1663 result += 7e-11 * std::cos(2.73399865247 + 6309.3741697912 * t); 1664 return result; 1665 } 1666 1667 constexpr double getEarthB4(double t) 1668 { 1669 double result = 0.0; 1670 result += 4e-11 * std::cos(0.79662198849 + 6438.4962494256 * t); 1671 result += 5e-11 * std::cos(0.84308705203 + 1047.7473117547 * t); 1672 result += 5e-11 * std::cos(0.05711572303 + 84334.6615813083 * t); 1673 result += 3e-11 * std::cos(3.46779895686 + 6279.5527316424 * t); 1674 result += 3e-11 * std::cos(2.89822201212 + 6127.6554505572 * t); 1675 return result; 1676 } 1677 1678 constexpr double getEarthR0(double t) 1679 { 1680 double result = 0.0; 1681 result += 1.00013988799; 1682 result += 0.01670699626 * std::cos(3.09846350771 + 6283.0758499914 * t); 1683 result += 0.00013956023 * std::cos(3.0552460962 + 12566.1516999828 * t); 1684 result += 3.08372e-05 * std::cos(5.19846674381 + 77713.7714681205 * t); 1685 result += 1.628461e-05 * std::cos(1.17387749012 + 5753.3848848968 * t); 1686 result += 1.575568e-05 * std::cos(2.84685245825 + 7860.4193924392 * t); 1687 result += 9.24799e-06 * std::cos(5.45292234084 + 11506.7697697936 * t); 1688 result += 5.42444e-06 * std::cos(4.56409149777 + 3930.2096962196 * t); 1689 result += 4.7211e-06 * std::cos(3.66100022149 + 5884.9268465832 * t); 1690 result += 3.2878e-06 * std::cos(5.89983646482 + 5223.6939198022 * t); 1691 result += 3.45983e-06 * std::cos(0.96368617687 + 5507.5532386674 * t); 1692 result += 3.06784e-06 * std::cos(0.29867139512 + 5573.1428014331 * t); 1693 result += 1.74844e-06 * std::cos(3.01193636534 + 18849.2275499742 * t); 1694 result += 2.43189e-06 * std::cos(4.27349536153 + 11790.6290886588 * t); 1695 result += 2.11829e-06 * std::cos(5.84714540314 + 1577.3435424478 * t); 1696 result += 1.85752e-06 * std::cos(5.02194447178 + 10977.078804699 * t); 1697 result += 1.09835e-06 * std::cos(5.05510636285 + 5486.777843175 * t); 1698 result += 9.8316e-07 * std::cos(0.88681311277 + 6069.7767545534 * t); 1699 result += 8.6499e-07 * std::cos(5.68959778254 + 15720.8387848784 * t); 1700 result += 8.5825e-07 * std::cos(1.27083733351 + 161000.685737674 * t); 1701 result += 6.2916e-07 * std::cos(0.92177108832 + 529.6909650946 * t); 1702 result += 5.7056e-07 * std::cos(2.01374292014 + 83996.8473181119 * t); 1703 result += 6.4903e-07 * std::cos(0.27250613787 + 17260.1546546904 * t); 1704 result += 4.9384e-07 * std::cos(3.24501240359 + 2544.3144198834 * t); 1705 result += 5.5736e-07 * std::cos(5.24159798933 + 71430.6956181291 * t); 1706 result += 4.2515e-07 * std::cos(6.01110242003 + 6275.9623029906 * t); 1707 result += 4.6963e-07 * std::cos(2.57805070386 + 775.522611324 * t); 1708 result += 3.8968e-07 * std::cos(5.36071738169 + 4694.0029547076 * t); 1709 result += 4.4661e-07 * std::cos(5.53715807302 + 9437.762934887 * t); 1710 result += 3.566e-07 * std::cos(1.67468058995 + 12036.4607348882 * t); 1711 result += 3.1921e-07 * std::cos(0.18368229781 + 5088.6288397668 * t); 1712 result += 3.1846e-07 * std::cos(1.77775642085 + 398.1490034082 * t); 1713 result += 3.3193e-07 * std::cos(0.24370300098 + 7084.8967811152 * t); 1714 result += 3.8245e-07 * std::cos(2.39255343974 + 8827.3902698748 * t); 1715 result += 2.8464e-07 * std::cos(1.21344868176 + 6286.5989683404 * t); 1716 result += 3.749e-07 * std::cos(0.82952922332 + 19651.048481098 * t); 1717 result += 3.6957e-07 * std::cos(4.90107591914 + 12139.5535091068 * t); 1718 result += 3.4537e-07 * std::cos(1.84270693282 + 2942.4634232916 * t); 1719 result += 2.6275e-07 * std::cos(4.58896850401 + 10447.3878396044 * t); 1720 result += 2.4596e-07 * std::cos(3.78660875483 + 8429.2412664666 * t); 1721 result += 2.3587e-07 * std::cos(0.26866117066 + 796.2980068164 * t); 1722 result += 2.7793e-07 * std::cos(1.89934330904 + 6279.5527316424 * t); 1723 result += 2.3927e-07 * std::cos(4.99598548138 + 5856.4776591154 * t); 1724 result += 2.0349e-07 * std::cos(4.65267995431 + 2146.1654164752 * t); 1725 result += 2.3287e-07 * std::cos(2.80783650928 + 14143.4952424306 * t); 1726 result += 2.2103e-07 * std::cos(1.95004702988 + 3154.6870848956 * t); 1727 result += 1.9506e-07 * std::cos(5.38227371393 + 2352.8661537718 * t); 1728 result += 1.7958e-07 * std::cos(0.19871379385 + 6812.766815086 * t); 1729 result += 1.7174e-07 * std::cos(4.43315560735 + 10213.285546211 * t); 1730 result += 1.619e-07 * std::cos(5.23160507859 + 17789.845619785 * t); 1731 result += 1.7314e-07 * std::cos(6.15200787916 + 16730.4636895958 * t); 1732 result += 1.3814e-07 * std::cos(5.18962074032 + 8031.0922630584 * t); 1733 result += 1.8833e-07 * std::cos(0.67306674027 + 149854.400134808 * t); 1734 result += 1.8331e-07 * std::cos(2.25348733734 + 23581.2581773176 * t); 1735 result += 1.3641e-07 * std::cos(3.68516118804 + 4705.7323075436 * t); 1736 result += 1.3139e-07 * std::cos(0.65289581324 + 13367.9726311066 * t); 1737 result += 1.0414e-07 * std::cos(4.33285688538 + 11769.8536931664 * t); 1738 result += 9.978e-08 * std::cos(4.20126336355 + 6309.3741697912 * t); 1739 result += 1.0169e-07 * std::cos(1.59390681369 + 4690.4798363586 * t); 1740 result += 7.564e-08 * std::cos(2.6256059739 + 6256.7775301916 * t); 1741 result += 9.661e-08 * std::cos(3.6758679122 + 27511.4678735372 * t); 1742 result += 6.743e-08 * std::cos(0.56270332741 + 3340.6124266998 * t); 1743 result += 8.743e-08 * std::cos(6.06359123461 + 1748.016413067 * t); 1744 result += 7.786e-08 * std::cos(3.67371235637 + 12168.0026965746 * t); 1745 result += 6.633e-08 * std::cos(5.66149277792 + 11371.7046897582 * t); 1746 result += 7.712e-08 * std::cos(0.31242577789 + 7632.9432596502 * t); 1747 result += 6.592e-08 * std::cos(3.13576266188 + 801.8209311238 * t); 1748 result += 7.46e-08 * std::cos(5.64757188143 + 11926.2544136688 * t); 1749 result += 6.933e-08 * std::cos(2.923845864 + 6681.2248533996 * t); 1750 result += 6.802e-08 * std::cos(1.4232980642 + 23013.5395395872 * t); 1751 result += 6.115e-08 * std::cos(5.13393615454 + 1194.4470102246 * t); 1752 result += 6.477e-08 * std::cos(2.64986648492 + 19804.8272915828 * t); 1753 result += 5.233e-08 * std::cos(4.62434053374 + 6438.4962494256 * t); 1754 result += 6.147e-08 * std::cos(3.02863936662 + 233141.314404362 * t); 1755 result += 4.608e-08 * std::cos(1.72194702724 + 7234.794256242 * t); 1756 result += 4.221e-08 * std::cos(1.55697533729 + 7238.6755916 * t); 1757 result += 5.314e-08 * std::cos(2.40716580847 + 11499.6562227928 * t); 1758 result += 5.128e-08 * std::cos(5.3239896569 + 11513.8833167944 * t); 1759 result += 4.77e-08 * std::cos(0.25554312006 + 11856.2186514245 * t); 1760 result += 5.519e-08 * std::cos(2.09089154502 + 17298.1823273262 * t); 1761 result += 5.625e-08 * std::cos(4.34052903053 + 90955.5516944961 * t); 1762 result += 4.578e-08 * std::cos(4.4656964157 + 5746.271337896 * t); 1763 result += 3.788e-08 * std::cos(4.9072938351 + 4164.311989613 * t); 1764 result += 5.337e-08 * std::cos(5.09957905104 + 31441.6775697568 * t); 1765 result += 3.967e-08 * std::cos(1.20054555174 + 1349.8674096588 * t); 1766 result += 4.008e-08 * std::cos(3.03007204392 + 1059.3819301892 * t); 1767 result += 3.476e-08 * std::cos(0.7608027703 + 10973.55568635 * t); 1768 result += 4.232e-08 * std::cos(1.05485713117 + 5760.4984318976 * t); 1769 result += 4.582e-08 * std::cos(3.76570026763 + 6386.16862421 * t); 1770 result += 3.335e-08 * std::cos(3.13829943354 + 6836.6452528338 * t); 1771 result += 3.418e-08 * std::cos(3.00072390334 + 4292.3308329504 * t); 1772 result += 3.598e-08 * std::cos(5.70718084323 + 5643.1785636774 * t); 1773 result += 3.237e-08 * std::cos(4.16448773994 + 9917.6968745098 * t); 1774 result += 4.154e-08 * std::cos(2.59941292162 + 7058.5984613154 * t); 1775 result += 3.362e-08 * std::cos(4.54577697964 + 4732.0306273434 * t); 1776 result += 2.978e-08 * std::cos(1.3056126882 + 6283.14316029419 * t); 1777 result += 2.765e-08 * std::cos(0.51311975679 + 26.2983197998 * t); 1778 result += 2.802e-08 * std::cos(5.66263240521 + 8635.9420037632 * t); 1779 result += 2.927e-08 * std::cos(5.73787481548 + 16200.7727245012 * t); 1780 result += 3.164e-08 * std::cos(1.69140262657 + 11015.1064773348 * t); 1781 result += 2.598e-08 * std::cos(2.96244118586 + 25132.3033999656 * t); 1782 result += 3.519e-08 * std::cos(3.62639325753 + 244287.600007228 * t); 1783 result += 2.676e-08 * std::cos(4.2072570085 + 18073.7049386502 * t); 1784 result += 2.978e-08 * std::cos(1.74971565805 + 6283.0085396886 * t); 1785 result += 2.287e-08 * std::cos(1.06975704977 + 14314.1681130498 * t); 1786 result += 2.863e-08 * std::cos(5.92838131397 + 14712.317116458 * t); 1787 result += 3.071e-08 * std::cos(0.23793217002 + 35371.8872659764 * t); 1788 result += 2.656e-08 * std::cos(0.8995930178 + 12352.8526045448 * t); 1789 result += 2.415e-08 * std::cos(2.79975176257 + 709.9330485583 * t); 1790 result += 2.814e-08 * std::cos(3.51488206882 + 21228.3920235458 * t); 1791 result += 1.977e-08 * std::cos(2.6135829755 + 951.7184062506 * t); 1792 result += 2.548e-08 * std::cos(2.47684686575 + 6208.2942514241 * t); 1793 result += 1.999e-08 * std::cos(0.5609038816 + 7079.3738568078 * t); 1794 result += 2.305e-08 * std::cos(1.05376461628 + 22483.8485744926 * t); 1795 result += 1.855e-08 * std::cos(2.86090681163 + 5216.5803728014 * t); 1796 result += 2.157e-08 * std::cos(1.31396741861 + 154717.609887683 * t); 1797 result += 1.97e-08 * std::cos(4.36929875289 + 167283.761587666 * t); 1798 result += 1.635e-08 * std::cos(5.85571606764 + 10984.1923516998 * t); 1799 result += 1.754e-08 * std::cos(2.14452408833 + 6290.1893969922 * t); 1800 result += 2.154e-08 * std::cos(6.03828341543 + 10873.9860304804 * t); 1801 result += 1.714e-08 * std::cos(3.70157691113 + 1592.5960136328 * t); 1802 result += 1.541e-08 * std::cos(6.21598380732 + 23543.2305046818 * t); 1803 result += 1.611e-08 * std::cos(1.99824499377 + 10969.9652576982 * t); 1804 result += 1.712e-08 * std::cos(1.34295663542 + 3128.3887650958 * t); 1805 result += 1.642e-08 * std::cos(5.55026665339 + 6496.3749454294 * t); 1806 result += 1.502e-08 * std::cos(5.43948825854 + 155.4203994342 * t); 1807 result += 1.827e-08 * std::cos(5.91227480261 + 3738.761430108 * t); 1808 result += 1.726e-08 * std::cos(2.16764983583 + 10575.4066829418 * t); 1809 result += 1.532e-08 * std::cos(5.3568310707 + 13521.7514415914 * t); 1810 result += 1.829e-08 * std::cos(1.66006148731 + 39302.096962196 * t); 1811 result += 1.605e-08 * std::cos(1.90928637633 + 6133.5126528568 * t); 1812 result += 1.282e-08 * std::cos(2.46014880418 + 13916.0191096416 * t); 1813 result += 1.211e-08 * std::cos(4.4136063155 + 3894.1818295422 * t); 1814 result += 1.394e-08 * std::cos(1.77801929354 + 9225.539273283 * t); 1815 result += 1.571e-08 * std::cos(4.95512957592 + 25158.6017197654 * t); 1816 result += 1.205e-08 * std::cos(1.19212540615 + 3.523118349 * t); 1817 result += 1.132e-08 * std::cos(2.69830084955 + 6040.3472460174 * t); 1818 result += 1.504e-08 * std::cos(5.77002730341 + 18209.3302636602 * t); 1819 result += 1.393e-08 * std::cos(1.62621805428 + 5120.6011455836 * t); 1820 result += 1.077e-08 * std::cos(2.93931554233 + 17256.6315363414 * t); 1821 result += 1.232e-08 * std::cos(0.71655165307 + 143571.324284816 * t); 1822 result += 1.087e-08 * std::cos(0.99769687939 + 955.5997416086 * t); 1823 result += 1.068e-08 * std::cos(5.28472576231 + 65147.6197681377 * t); 1824 result += 9.8e-09 * std::cos(5.10949204607 + 6172.869528772 * t); 1825 result += 1.169e-08 * std::cos(3.11664290862 + 14945.3161735544 * t); 1826 result += 1.202e-08 * std::cos(4.02992510402 + 553.5694028424 * t); 1827 result += 9.79e-09 * std::cos(2.00000879212 + 15110.4661198662 * t); 1828 result += 9.62e-09 * std::cos(4.023807714 + 6282.0955289232 * t); 1829 result += 9.99e-09 * std::cos(3.6264300279 + 6262.300454499 * t); 1830 result += 1.03e-08 * std::cos(5.84989900289 + 213.299095438 * t); 1831 result += 1.014e-08 * std::cos(2.84221578218 + 8662.240323563 * t); 1832 result += 1.185e-08 * std::cos(1.51330541132 + 17654.7805397496 * t); 1833 result += 9.67e-09 * std::cos(2.67081017562 + 5650.2921106782 * t); 1834 result += 1.222e-08 * std::cos(2.65423784904 + 88860.0570709867 * t); 1835 result += 9.81e-09 * std::cos(2.36370360283 + 6206.8097787158 * t); 1836 result += 1.033e-08 * std::cos(0.13874927606 + 11712.9553182308 * t); 1837 result += 1.103e-08 * std::cos(3.08477302937 + 43232.3066584156 * t); 1838 result += 7.81e-09 * std::cos(2.53372735932 + 16496.3613962024 * t); 1839 result += 1.019e-08 * std::cos(3.04569392376 + 6037.244203762 * t); 1840 result += 7.95e-09 * std::cos(5.80662989111 + 5230.807466803 * t); 1841 result += 8.13e-09 * std::cos(3.57710279439 + 10177.2576795336 * t); 1842 result += 9.62e-09 * std::cos(5.31470594766 + 6284.0561710596 * t); 1843 result += 7.21e-09 * std::cos(5.96264301567 + 12559.038152982 * t); 1844 result += 9.66e-09 * std::cos(2.74714939953 + 6244.9428143536 * t); 1845 result += 9.21e-09 * std::cos(0.10155275926 + 29088.811415985 * t); 1846 result += 6.92e-09 * std::cos(3.89764447548 + 1589.0728952838 * t); 1847 result += 7.19e-09 * std::cos(5.91791450402 + 4136.9104335162 * t); 1848 result += 7.72e-09 * std::cos(4.05505682353 + 6127.6554505572 * t); 1849 result += 7.12e-09 * std::cos(5.49291532439 + 22003.9146348698 * t); 1850 result += 6.72e-09 * std::cos(1.60700490811 + 11087.2851259184 * t); 1851 result += 6.9e-09 * std::cos(4.50539825563 + 426.598190876 * t); 1852 result += 8.54e-09 * std::cos(3.26104981596 + 20426.571092422 * t); 1853 result += 6.56e-09 * std::cos(4.3241018294 + 16858.4825329332 * t); 1854 result += 8.4e-09 * std::cos(2.59572585222 + 28766.924424484 * t); 1855 result += 6.92e-09 * std::cos(0.61650089011 + 11403.676995575 * t); 1856 result += 7e-09 * std::cos(3.40901167143 + 7.1135470008 * t); 1857 result += 7.26e-09 * std::cos(0.04243053594 + 5481.2549188676 * t); 1858 result += 5.57e-09 * std::cos(4.78317696534 + 20199.094959633 * t); 1859 result += 6.49e-09 * std::cos(1.04027912958 + 6062.6632075526 * t); 1860 result += 6.33e-09 * std::cos(5.70229959167 + 45892.730433157 * t); 1861 result += 5.92e-09 * std::cos(6.11836729658 + 9623.6882766912 * t); 1862 result += 5.23e-09 * std::cos(3.62840021266 + 5333.9002410216 * t); 1863 result += 6.04e-09 * std::cos(5.57734696185 + 10344.2950653858 * t); 1864 result += 4.96e-09 * std::cos(2.21023499449 + 1990.745017041 * t); 1865 result += 6.91e-09 * std::cos(1.96071732602 + 12416.5885028482 * t); 1866 result += 6.4e-09 * std::cos(1.59074172032 + 18319.5365848796 * t); 1867 result += 6.25e-09 * std::cos(3.82362791378 + 13517.8701062334 * t); 1868 result += 6.63e-09 * std::cos(5.08444996779 + 283.8593188652 * t); 1869 result += 4.75e-09 * std::cos(1.17025894287 + 12569.6748183318 * t); 1870 result += 6.64e-09 * std::cos(4.50029469969 + 47162.5163546352 * t); 1871 result += 5.69e-09 * std::cos(0.16310365162 + 17267.2682016912 * t); 1872 result += 5.68e-09 * std::cos(3.86100969474 + 6076.8903015542 * t); 1873 result += 5.39e-09 * std::cos(4.83282276086 + 18422.6293590982 * t); 1874 result += 4.66e-09 * std::cos(0.75872342878 + 7342.4577801806 * t); 1875 result += 5.41e-09 * std::cos(3.07212190507 + 226858.23855437 * t); 1876 result += 4.58e-09 * std::cos(0.26774483096 + 4590.910180489 * t); 1877 result += 6.1e-09 * std::cos(1.53597051291 + 33019.0211122046 * t); 1878 result += 6.17e-09 * std::cos(2.62356328726 + 11190.377900137 * t); 1879 result += 5.48e-09 * std::cos(4.55798855791 + 18875.525869774 * t); 1880 result += 6.33e-09 * std::cos(4.60110281228 + 66567.4858652543 * t); 1881 result += 5.96e-09 * std::cos(5.78202396722 + 632.7837393132 * t); 1882 result += 5.33e-09 * std::cos(5.01786882904 + 12132.439962106 * t); 1883 result += 6.03e-09 * std::cos(5.38458554802 + 316428.228673915 * t); 1884 result += 4.69e-09 * std::cos(0.59168241917 + 21954.157609398 * t); 1885 result += 5.48e-09 * std::cos(3.50613163558 + 17253.0411076896 * t); 1886 result += 5.02e-09 * std::cos(0.98804327589 + 11609.8625440122 * t); 1887 result += 5.68e-09 * std::cos(1.98497313089 + 7668.6374249425 * t); 1888 result += 4.82e-09 * std::cos(1.62141803864 + 12146.6670561076 * t); 1889 result += 3.91e-09 * std::cos(3.68718382989 + 18052.9295431578 * t); 1890 result += 4.57e-09 * std::cos(3.7720573734 + 156137.475984799 * t); 1891 result += 4.01e-09 * std::cos(5.28260651958 + 15671.0817594066 * t); 1892 result += 4.69e-09 * std::cos(1.80963184268 + 12562.6285816338 * t); 1893 result += 5.08e-09 * std::cos(3.36399024699 + 20597.2439630412 * t); 1894 result += 4.5e-09 * std::cos(5.6605429925 + 10454.5013866052 * t); 1895 result += 3.75e-09 * std::cos(4.98534633105 + 9779.1086761254 * t); 1896 result += 5.23e-09 * std::cos(0.97215560834 + 155427.542936241 * t); 1897 result += 4.03e-09 * std::cos(5.13939866506 + 1551.045222648 * t); 1898 result += 3.72e-09 * std::cos(3.69883738807 + 9388.0059094152 * t); 1899 result += 3.67e-09 * std::cos(4.43875659716 + 4535.0594369244 * t); 1900 result += 4.06e-09 * std::cos(4.208631566 + 12592.4500197826 * t); 1901 result += 3.6e-09 * std::cos(2.53924644657 + 242.728603974 * t); 1902 result += 4.71e-09 * std::cos(4.61907324819 + 5436.9930152402 * t); 1903 result += 4.41e-09 * std::cos(5.83872966262 + 3496.032826134 * t); 1904 result += 3.85e-09 * std::cos(4.94496680973 + 24356.7807886416 * t); 1905 result += 3.49e-09 * std::cos(6.15018231784 + 19800.9459562248 * t); 1906 result += 3.55e-09 * std::cos(0.21895678106 + 5429.8794682394 * t); 1907 result += 3.44e-09 * std::cos(5.62993724928 + 2379.1644735716 * t); 1908 result += 3.8e-09 * std::cos(2.72105213143 + 11933.3679606696 * t); 1909 result += 4.32e-09 * std::cos(0.24221790536 + 17996.0311682222 * t); 1910 result += 3.78e-09 * std::cos(5.22517556974 + 7477.522860216 * t); 1911 result += 3.37e-09 * std::cos(5.10888041439 + 5849.3641121146 * t); 1912 result += 3.15e-09 * std::cos(0.57827745123 + 10557.5941608238 * t); 1913 result += 3.18e-09 * std::cos(4.49953141399 + 3634.6210245184 * t); 1914 result += 3.23e-09 * std::cos(1.54274281393 + 10440.2742926036 * t); 1915 result += 3.09e-09 * std::cos(5.76839284397 + 20.7753954924 * t); 1916 result += 3.01e-09 * std::cos(2.34727604008 + 4686.8894077068 * t); 1917 result += 4.14e-09 * std::cos(5.9323760231 + 51092.7260508548 * t); 1918 result += 3.61e-09 * std::cos(2.1639860955 + 28237.2334593894 * t); 1919 result += 2.88e-09 * std::cos(0.18376252189 + 13095.8426650774 * t); 1920 result += 2.77e-09 * std::cos(5.12952205045 + 13119.7211028252 * t); 1921 result += 3.27e-09 * std::cos(6.19222146204 + 6268.8487559898 * t); 1922 result += 2.73e-09 * std::cos(0.30522428863 + 23141.5583829246 * t); 1923 result += 2.67e-09 * std::cos(5.76152585786 + 5966.6839803348 * t); 1924 result += 3.08e-09 * std::cos(5.99280509979 + 22805.7355659936 * t); 1925 result += 3.45e-09 * std::cos(2.92489919444 + 36949.2308084242 * t); 1926 result += 2.53e-09 * std::cos(5.20995219509 + 24072.9214697764 * t); 1927 result += 3.42e-09 * std::cos(5.72702586209 + 16460.333529525 * t); 1928 result += 2.61e-09 * std::cos(2.00304796059 + 6148.010769956 * t); 1929 result += 2.38e-09 * std::cos(5.08264392839 + 6915.8595893046 * t); 1930 result += 2.49e-09 * std::cos(2.94762789744 + 135.0650800354 * t); 1931 result += 3.06e-09 * std::cos(3.89764686987 + 10988.808157535 * t); 1932 result += 3.05e-09 * std::cos(0.05827812117 + 4701.1165017084 * t); 1933 result += 3.19e-09 * std::cos(2.95712862064 + 163096.180361183 * t); 1934 result += 2.09e-09 * std::cos(4.43768461442 + 6546.1597733642 * t); 1935 result += 2.7e-09 * std::cos(2.06643178717 + 4804.209275927 * t); 1936 result += 2.17e-09 * std::cos(0.73691592312 + 6303.8512454838 * t); 1937 result += 2.06e-09 * std::cos(0.32075959415 + 25934.1243310894 * t); 1938 result += 2.18e-09 * std::cos(0.18428135264 + 28286.9904848612 * t); 1939 result += 2.05e-09 * std::cos(5.21312087405 + 20995.3929664494 * t); 1940 result += 1.99e-09 * std::cos(0.44384292491 + 16737.5772365966 * t); 1941 result += 2.3e-09 * std::cos(6.06567392849 + 6287.0080032545 * t); 1942 result += 2.19e-09 * std::cos(1.291942163 + 5326.7866940208 * t); 1943 result += 2.01e-09 * std::cos(1.74700937253 + 22743.4093795164 * t); 1944 result += 2.07e-09 * std::cos(4.45440927276 + 6279.4854213396 * t); 1945 result += 2.69e-09 * std::cos(6.0564044503 + 64471.9912417449 * t); 1946 result += 1.9e-09 * std::cos(0.99256176518 + 29296.6153895786 * t); 1947 result += 2.38e-09 * std::cos(5.42471431221 + 39609.6545831656 * t); 1948 result += 2.62e-09 * std::cos(5.26961924198 + 522.5774180938 * t); 1949 result += 2.1e-09 * std::cos(4.68618183158 + 6254.6266625236 * t); 1950 result += 1.97e-09 * std::cos(2.8062455408 + 4933.2084403326 * t); 1951 result += 2.52e-09 * std::cos(4.36220154608 + 40879.4405046438 * t); 1952 result += 2.61e-09 * std::cos(1.07241516738 + 55022.9357470744 * t); 1953 result += 1.89e-09 * std::cos(3.82966734476 + 419.4846438752 * t); 1954 result += 1.85e-09 * std::cos(4.14324541379 + 5642.1982426092 * t); 1955 result += 2.47e-09 * std::cos(3.44855612987 + 6702.5604938666 * t); 1956 result += 2.05e-09 * std::cos(4.04424043223 + 536.8045120954 * t); 1957 result += 1.91e-09 * std::cos(3.14082686083 + 16723.350142595 * t); 1958 result += 2.22e-09 * std::cos(5.16263907319 + 23539.7073863328 * t); 1959 result += 1.8e-09 * std::cos(4.56214752149 + 6489.2613984286 * t); 1960 result += 2.19e-09 * std::cos(0.80382553358 + 16627.3709153772 * t); 1961 result += 2.27e-09 * std::cos(0.60156339452 + 5905.7022420756 * t); 1962 result += 1.68e-09 * std::cos(0.88753528161 + 16062.1845261168 * t); 1963 result += 1.58e-09 * std::cos(0.92127725775 + 23937.856389741 * t); 1964 result += 1.57e-09 * std::cos(4.69607868164 + 6805.6532680852 * t); 1965 result += 2.07e-09 * std::cos(4.88410451334 + 6286.6662786432 * t); 1966 result += 1.6e-09 * std::cos(4.95943826846 + 10021.8372800994 * t); 1967 result += 1.66e-09 * std::cos(0.97126433565 + 3097.88382272579 * t); 1968 result += 2.09e-09 * std::cos(5.75663411805 + 3646.3503773544 * t); 1969 result += 1.75e-09 * std::cos(6.12762824412 + 239424.390254353 * t); 1970 result += 1.73e-09 * std::cos(3.13887234973 + 6179.9830757728 * t); 1971 result += 1.57e-09 * std::cos(3.62822058179 + 18451.078546566 * t); 1972 result += 1.57e-09 * std::cos(4.67695912235 + 6709.6740408674 * t); 1973 result += 1.46e-09 * std::cos(3.09506069735 + 4907.3020501456 * t); 1974 result += 1.65e-09 * std::cos(2.2713912876 + 10660.6869350424 * t); 1975 result += 2.01e-09 * std::cos(1.67701267433 + 2107.0345075424 * t); 1976 result += 1.44e-09 * std::cos(3.96947747592 + 6019.9919266186 * t); 1977 result += 1.71e-09 * std::cos(5.91302216729 + 6058.7310542895 * t); 1978 result += 1.44e-09 * std::cos(2.1315565512 + 26084.0218062162 * t); 1979 result += 1.51e-09 * std::cos(0.67417383554 + 2388.8940204492 * t); 1980 result += 1.89e-09 * std::cos(5.07122281033 + 263.0839233728 * t); 1981 result += 1.46e-09 * std::cos(5.10373877968 + 10770.8932562618 * t); 1982 result += 1.87e-09 * std::cos(1.23915444627 + 19402.7969528166 * t); 1983 result += 1.74e-09 * std::cos(0.08407293391 + 9380.9596727172 * t); 1984 result += 1.37e-09 * std::cos(1.26247412309 + 12566.2190102856 * t); 1985 result += 1.37e-09 * std::cos(3.52826010842 + 639.897286314 * t); 1986 result += 1.48e-09 * std::cos(1.76124372592 + 5888.4499649322 * t); 1987 result += 1.64e-09 * std::cos(2.39195095081 + 6357.8574485587 * t); 1988 result += 1.46e-09 * std::cos(2.43675816553 + 5881.4037282342 * t); 1989 result += 1.61e-09 * std::cos(1.15721259372 + 26735.9452622132 * t); 1990 result += 1.31e-09 * std::cos(2.51859277344 + 6599.467719648 * t); 1991 result += 1.53e-09 * std::cos(5.85203687779 + 6281.5913772831 * t); 1992 result += 1.51e-09 * std::cos(3.72338532649 + 12669.2444742014 * t); 1993 result += 1.32e-09 * std::cos(2.38417741883 + 6525.8044539654 * t); 1994 result += 1.29e-09 * std::cos(0.75556744143 + 5017.508371365 * t); 1995 result += 1.27e-09 * std::cos(0.00254936441 + 10027.9031957292 * t); 1996 result += 1.48e-09 * std::cos(2.85102145528 + 6418.1409300268 * t); 1997 result += 1.43e-09 * std::cos(5.74460279367 + 26087.9031415742 * t); 1998 result += 1.72e-09 * std::cos(0.4128996224 + 174242.46596405 * t); 1999 result += 1.36e-09 * std::cos(4.15497742275 + 6311.5250374592 * t); 2000 result += 1.7e-09 * std::cos(5.98194913129 + 327574.514276781 * t); 2001 result += 1.24e-09 * std::cos(1.65497607604 + 32217.2001810808 * t); 2002 result += 1.36e-09 * std::cos(2.48430783417 + 13341.6743113068 * t); 2003 result += 1.65e-09 * std::cos(2.496679246 + 58953.145443294 * t); 2004 result += 1.23e-09 * std::cos(3.45660563754 + 6277.552925684 * t); 2005 result += 1.17e-09 * std::cos(0.86065134175 + 6245.0481773556 * t); 2006 result += 1.49e-09 * std::cos(5.61358280963 + 5729.506447149 * t); 2007 result += 1.53e-09 * std::cos(0.2686002995 + 245.8316462294 * t); 2008 result += 1.28e-09 * std::cos(0.71204006588 + 103.0927742186 * t); 2009 result += 1.59e-09 * std::cos(2.43166592149 + 221995.028801495 * t); 2010 result += 1.3e-09 * std::cos(2.80707316718 + 6016.4688082696 * t); 2011 result += 1.37e-09 * std::cos(1.70657709294 + 12566.08438968 * t); 2012 result += 1.11e-09 * std::cos(1.56305648432 + 17782.7320727842 * t); 2013 result += 1.13e-09 * std::cos(3.58302904101 + 25685.872802808 * t); 2014 result += 1.09e-09 * std::cos(3.26403795962 + 6819.8803620868 * t); 2015 result += 1.22e-09 * std::cos(0.34120688217 + 1162.4747044078 * t); 2016 result += 1.19e-09 * std::cos(5.84644718278 + 12721.572099417 * t); 2017 result += 1.44e-09 * std::cos(2.28899679126 + 12489.8856287072 * t); 2018 result += 1.37e-09 * std::cos(5.82029768354 + 44809.6502008634 * t); 2019 result += 1.07e-09 * std::cos(2.4281854414 + 5547.1993364596 * t); 2020 result += 1.34e-09 * std::cos(1.26539982939 + 5331.3574437408 * t); 2021 result += 1.03e-09 * std::cos(5.96518130595 + 6321.1035226272 * t); 2022 result += 1.09e-09 * std::cos(0.33808549034 + 11300.5842213564 * t); 2023 result += 1.29e-09 * std::cos(5.89187277327 + 12029.3471878874 * t); 2024 result += 1.22e-09 * std::cos(5.77325634636 + 11919.140866668 * t); 2025 result += 1.07e-09 * std::cos(6.2499898935 + 77690.7595057385 * t); 2026 result += 1.07e-09 * std::cos(1.00535580713 + 77736.7834305025 * t); 2027 result += 1.43e-09 * std::cos(0.24122178432 + 4214.0690150848 * t); 2028 result += 1.43e-09 * std::cos(0.88529649733 + 7576.560073574 * t); 2029 result += 1.07e-09 * std::cos(2.92124030496 + 31415.379249957 * t); 2030 result += 9.9e-10 * std::cos(5.70862227072 + 5540.0857894588 * t); 2031 result += 1.1e-09 * std::cos(0.37528037383 + 5863.5912061162 * t); 2032 result += 1.04e-09 * std::cos(4.44107178366 + 2118.7638603784 * t); 2033 result += 9.8e-10 * std::cos(5.95877916706 + 4061.2192153944 * t); 2034 result += 1.13e-09 * std::cos(1.24206857385 + 84672.4758445047 * t); 2035 result += 1.24e-09 * std::cos(2.55619029867 + 12539.853380183 * t); 2036 result += 1.1e-09 * std::cos(3.66952094329 + 238004.524157236 * t); 2037 result += 1.12e-09 * std::cos(4.32512422943 + 97238.6275444875 * t); 2038 result += 9.7e-10 * std::cos(3.70151541181 + 11720.0688652316 * t); 2039 result += 1.2e-09 * std::cos(1.26895630252 + 12043.574281889 * t); 2040 result += 9.4e-10 * std::cos(2.56461130309 + 19004.6479494084 * t); 2041 result += 1.17e-09 * std::cos(3.65425622684 + 34520.3093093808 * t); 2042 result += 9.8e-10 * std::cos(0.13589994287 + 11080.1715789176 * t); 2043 result += 9.7e-10 * std::cos(5.38330115253 + 7834.1210726394 * t); 2044 result += 9.7e-10 * std::cos(2.46722096722 + 71980.6335747312 * t); 2045 result += 9.5e-10 * std::cos(5.36958330451 + 6288.5987742988 * t); 2046 result += 1.11e-09 * std::cos(5.01961920313 + 11823.1616394502 * t); 2047 result += 9e-10 * std::cos(2.72299804525 + 26880.3198130326 * t); 2048 result += 9.9e-10 * std::cos(0.90164266377 + 18635.9284545362 * t); 2049 result += 1.26e-09 * std::cos(4.78722177847 + 305281.943071049 * t); 2050 result += 9.3e-10 * std::cos(0.21240380046 + 18139.2945014159 * t); 2051 result += 1.24e-09 * std::cos(5.00979495566 + 172146.97134054 * t); 2052 result += 9.9e-10 * std::cos(5.67090026475 + 16522.6597160022 * t); 2053 result += 9.2e-10 * std::cos(2.28180963676 + 12491.3701014155 * t); 2054 result += 9e-10 * std::cos(4.50544881196 + 40077.61957352 * t); 2055 result += 1e-09 * std::cos(2.00639461612 + 12323.4230960088 * t); 2056 result += 9.5e-10 * std::cos(5.68801979087 + 14919.0178537546 * t); 2057 result += 8.7e-10 * std::cos(1.86043406047 + 27707.5424942948 * t); 2058 result += 1.05e-09 * std::cos(3.02903468417 + 22345.2603761082 * t); 2059 result += 8.7e-10 * std::cos(5.43970168638 + 6272.0301497275 * t); 2060 result += 8.9e-10 * std::cos(1.63389387182 + 33326.5787331742 * t); 2061 result += 8.2e-10 * std::cos(5.58298993353 + 10241.2022911672 * t); 2062 result += 9.4e-10 * std::cos(5.47749711149 + 9924.8104215106 * t); 2063 result += 8.2e-10 * std::cos(4.71988314145 + 15141.390794312 * t); 2064 result += 9.7e-10 * std::cos(5.61458778738 + 2787.0430238574 * t); 2065 result += 9.6e-10 * std::cos(3.89073946348 + 6379.0550772092 * t); 2066 result += 8.1e-10 * std::cos(3.13038482444 + 36147.4098773004 * t); 2067 result += 1.1e-09 * std::cos(4.89978492291 + 72140.6286666874 * t); 2068 result += 9.7e-10 * std::cos(5.20764563059 + 6303.4311693902 * t); 2069 result += 8.2e-10 * std::cos(5.26342716139 + 9814.6041002912 * t); 2070 result += 1.09e-09 * std::cos(2.3555558977 + 83286.9142695536 * t); 2071 result += 9.7e-10 * std::cos(2.58492958057 + 30666.1549584328 * t); 2072 result += 9.3e-10 * std::cos(1.32651591333 + 23020.653086588 * t); 2073 result += 7.8e-10 * std::cos(3.99588630754 + 11293.4706743556 * t); 2074 result += 9e-10 * std::cos(0.57771932738 + 26482.1708096244 * t); 2075 result += 1.06e-09 * std::cos(3.92012705073 + 62883.3551395136 * t); 2076 result += 9.8e-10 * std::cos(2.94397773524 + 316.3918696566 * t); 2077 result += 7.6e-10 * std::cos(3.96310417608 + 29026.4852295078 * t); 2078 result += 7.8e-10 * std::cos(1.97068529306 + 90279.9231681033 * t); 2079 result += 7.6e-10 * std::cos(0.23027966596 + 21424.4666443034 * t); 2080 result += 8e-10 * std::cos(2.23099742212 + 266.6070417218 * t); 2081 result += 7.9e-10 * std::cos(1.46227790922 + 8982.810669309 * t); 2082 result += 1.02e-09 * std::cos(4.92129953565 + 5621.8429232104 * t); 2083 result += 1e-09 * std::cos(0.39243148321 + 24279.1070182136 * t); 2084 result += 7.1e-10 * std::cos(1.52014858474 + 33794.5437235286 * t); 2085 result += 7.6e-10 * std::cos(0.22880641443 + 57375.8019008462 * t); 2086 result += 9.1e-10 * std::cos(0.96515913904 + 48739.859897083 * t); 2087 result += 7.5e-10 * std::cos(2.77638585157 + 12964.300703391 * t); 2088 result += 7.7e-10 * std::cos(5.18846946344 + 11520.9968637952 * t); 2089 result += 6.8e-10 * std::cos(0.50006599129 + 4274.5183108324 * t); 2090 result += 7.5e-10 * std::cos(2.07323762803 + 15664.0355227086 * t); 2091 result += 7.4e-10 * std::cos(1.01884134928 + 6393.2821712108 * t); 2092 result += 7.7e-10 * std::cos(0.4666517878 + 16207.886271502 * t); 2093 result += 8.1e-10 * std::cos(4.10452219483 + 161710.618786232 * t); 2094 result += 6.7e-10 * std::cos(3.83840630887 + 6262.7205305926 * t); 2095 result += 7.1e-10 * std::cos(3.91415523291 + 7875.6718636242 * t); 2096 result += 8.1e-10 * std::cos(0.91938383237 + 74.7815985673 * t); 2097 result += 8.3e-10 * std::cos(4.69916218791 + 23006.4259925864 * t); 2098 result += 6.3e-10 * std::cos(2.32556465878 + 6279.1945146334 * t); 2099 result += 6.5e-10 * std::cos(5.41938745446 + 28628.3362260996 * t); 2100 result += 6.5e-10 * std::cos(3.02336771694 + 5959.570433334 * t); 2101 result += 6.4e-10 * std::cos(3.3103319837 + 2636.725472637 * t); 2102 result += 6.4e-10 * std::cos(0.18375587519 + 1066.49547719 * t); 2103 result += 8e-10 * std::cos(5.81239171612 + 12341.8069042809 * t); 2104 result += 6.6e-10 * std::cos(2.15105504851 + 38.0276726358 * t); 2105 result += 6.2e-10 * std::cos(2.43313614978 + 10138.1095169486 * t); 2106 result += 6e-10 * std::cos(3.1615390647 + 5490.300961524 * t); 2107 result += 6.9e-10 * std::cos(0.30764736334 + 7018.9523635232 * t); 2108 result += 6.8e-10 * std::cos(2.24442548639 + 24383.0791084414 * t); 2109 result += 7.8e-10 * std::cos(1.39649386463 + 9411.4646150872 * t); 2110 result += 6.3e-10 * std::cos(0.72976362625 + 6286.9571853494 * t); 2111 result += 7.3e-10 * std::cos(4.95125917731 + 6453.7487206106 * t); 2112 result += 7.8e-10 * std::cos(0.32736023459 + 6528.9074962208 * t); 2113 result += 5.9e-10 * std::cos(4.95362151577 + 35707.7100829074 * t); 2114 result += 7e-10 * std::cos(2.37962727525 + 15508.6151232744 * t); 2115 result += 7.3e-10 * std::cos(1.35229143111 + 5327.4761083828 * t); 2116 result += 7.2e-10 * std::cos(5.91833527334 + 10881.0995774812 * t); 2117 result += 5.9e-10 * std::cos(5.36231868425 + 10239.5838660108 * t); 2118 result += 5.9e-10 * std::cos(1.63156134967 + 61306.0115970658 * t); 2119 result += 5.4e-10 * std::cos(4.29491690425 + 21947.1113727 * t); 2120 result += 5.7e-10 * std::cos(5.89190132575 + 34513.2630726828 * t); 2121 result += 7.4e-10 * std::cos(1.38235845304 + 9967.4538999816 * t); 2122 result += 5.3e-10 * std::cos(3.86543309344 + 32370.9789915656 * t); 2123 result += 5.5e-10 * std::cos(4.51794544854 + 34911.412076091 * t); 2124 result += 6.3e-10 * std::cos(5.41479412056 + 11502.8376165305 * t); 2125 result += 6.3e-10 * std::cos(2.34416220742 + 11510.7019230567 * t); 2126 result += 6.8e-10 * std::cos(0.77493931112 + 29864.334027309 * t); 2127 result += 6e-10 * std::cos(5.57024703495 + 5756.9080032458 * t); 2128 result += 7.2e-10 * std::cos(2.80863088166 + 10866.8724834796 * t); 2129 result += 6.1e-10 * std::cos(2.69736991384 + 82576.9812209953 * t); 2130 result += 6.3e-10 * std::cos(5.32068807257 + 3116.6594122598 * t); 2131 result += 5.2e-10 * std::cos(1.02278758099 + 6272.4391846416 * t); 2132 result += 6.9e-10 * std::cos(5.00698550308 + 25287.7237993998 * t); 2133 result += 6.6e-10 * std::cos(6.12047940728 + 12074.488407524 * t); 2134 result += 5.1e-10 * std::cos(2.59519527563 + 11396.5634485742 * t); 2135 result += 5.6e-10 * std::cos(2.57995973521 + 17892.9383940036 * t); 2136 result += 5.9e-10 * std::cos(0.4416723762 + 250570.675857219 * t); 2137 result += 5.9e-10 * std::cos(3.84070143543 + 5483.254724826 * t); 2138 result += 4.9e-10 * std::cos(0.54704693048 + 22594.054895712 * t); 2139 result += 6.5e-10 * std::cos(2.38423614501 + 52670.0695933026 * t); 2140 result += 6.9e-10 * std::cos(5.34363738671 + 66813.5648357332 * t); 2141 result += 5.7e-10 * std::cos(5.42770501007 + 310145.152823924 * t); 2142 result += 5.3e-10 * std::cos(1.17760296075 + 149.5631971346 * t); 2143 result += 6.1e-10 * std::cos(4.02090887211 + 34596.3646546524 * t); 2144 result += 4.9e-10 * std::cos(4.18361320516 + 18606.4989460002 * t); 2145 result += 5.5e-10 * std::cos(0.83886167974 + 20452.8694122218 * t); 2146 result += 5e-10 * std::cos(1.46327331958 + 37455.7264959744 * t); 2147 result += 4.8e-10 * std::cos(4.53854727167 + 29822.7832363242 * t); 2148 result += 5.8e-10 * std::cos(3.34847975377 + 33990.6183442862 * t); 2149 result += 6.5e-10 * std::cos(1.45522693982 + 76251.3277706202 * t); 2150 result += 5.6e-10 * std::cos(2.35650663692 + 37724.7534197482 * t); 2151 result += 5.2e-10 * std::cos(2.61551081496 + 5999.2165311262 * t); 2152 result += 5.3e-10 * std::cos(0.17334326094 + 77717.2945864695 * t); 2153 result += 5.3e-10 * std::cos(0.79879700631 + 77710.2483497715 * t); 2154 result += 4.7e-10 * std::cos(0.43240779709 + 735.8765135318 * t); 2155 result += 5.3e-10 * std::cos(4.58763261686 + 11616.976091013 * t); 2156 result += 4.8e-10 * std::cos(6.20230111054 + 4171.4255366138 * t); 2157 result += 5.2e-10 * std::cos(1.09723616404 + 640.8776073822 * t); 2158 result += 5.7e-10 * std::cos(3.42008310383 + 50317.2034395308 * t); 2159 result += 5.3e-10 * std::cos(1.01528448581 + 149144.46708625 * t); 2160 result += 4.7e-10 * std::cos(3.00924906195 + 52175.8062831484 * t); 2161 result += 5.2e-10 * std::cos(2.03254070404 + 6293.7125153412 * t); 2162 result += 4.8e-10 * std::cos(0.12356889734 + 13362.4497067992 * t); 2163 result += 4.5e-10 * std::cos(3.37963782356 + 10763.779709261 * t); 2164 result += 4.7e-10 * std::cos(5.50981287869 + 12779.4507954208 * t); 2165 result += 6.2e-10 * std::cos(5.45209070099 + 949.1756089698 * t); 2166 result += 6.1e-10 * std::cos(2.93237974631 + 5791.4125575326 * t); 2167 result += 4.4e-10 * std::cos(2.87440620802 + 8584.6616659008 * t); 2168 result += 4.6e-10 * std::cos(4.0314179656 + 10667.8004820432 * t); 2169 result += 4.7e-10 * std::cos(3.89902931422 + 3903.9113764198 * t); 2170 result += 4.6e-10 * std::cos(2.75700467329 + 6993.0088985497 * t); 2171 result += 4.5e-10 * std::cos(1.933862933 + 206.1855484372 * t); 2172 result += 4.7e-10 * std::cos(2.57670800912 + 11492.542675792 * t); 2173 result += 4.4e-10 * std::cos(3.62570223167 + 63658.8777508376 * t); 2174 result += 5.1e-10 * std::cos(0.84536826273 + 12345.739057544 * t); 2175 result += 4.3e-10 * std::cos(0.01524970172 + 37853.8754993826 * t); 2176 result += 4.1e-10 * std::cos(3.27146326065 + 8858.3149443206 * t); 2177 result += 4.5e-10 * std::cos(3.03765521215 + 65236.2212932854 * t); 2178 result += 4.7e-10 * std::cos(1.44447548944 + 21393.5419698576 * t); 2179 result += 5.8e-10 * std::cos(5.45843180927 + 1975.492545856 * t); 2180 result += 5e-10 * std::cos(2.13285524146 + 12573.2652469836 * t); 2181 result += 4.1e-10 * std::cos(1.32190847146 + 2547.8375382324 * t); 2182 result += 4.7e-10 * std::cos(3.67579608544 + 28313.288804661 * t); 2183 result += 4.1e-10 * std::cos(2.24013475126 + 8273.8208670324 * t); 2184 result += 4.7e-10 * std::cos(6.21438985953 + 10991.3058987006 * t); 2185 result += 4.2e-10 * std::cos(3.0163181735 + 853.196381752 * t); 2186 result += 5.6e-10 * std::cos(1.09773690181 + 77376.2010224076 * t); 2187 result += 4e-10 * std::cos(2.35698541041 + 2699.7348193176 * t); 2188 result += 4.3e-10 * std::cos(5.28030898459 + 17796.9591667858 * t); 2189 result += 5.4e-10 * std::cos(2.59175932091 + 22910.4467653686 * t); 2190 result += 5.4e-10 * std::cos(0.88027764102 + 71960.3865832237 * t); 2191 result += 5.5e-10 * std::cos(0.07988899477 + 83467.1563530173 * t); 2192 result += 3.9e-10 * std::cos(1.12867321442 + 9910.583327509 * t); 2193 result += 4e-10 * std::cos(1.35670430524 + 27177.8515292002 * t); 2194 result += 3.9e-10 * std::cos(4.39624220245 + 5618.3198048614 * t); 2195 result += 4.2e-10 * std::cos(4.78798367468 + 7856.89627409019 * t); 2196 result += 4.7e-10 * std::cos(2.75482175292 + 18202.2167166594 * t); 2197 result += 3.9e-10 * std::cos(1.97008298629 + 24491.4257925834 * t); 2198 result += 4.2e-10 * std::cos(4.04346599946 + 7863.9425107882 * t); 2199 result += 3.8e-10 * std::cos(0.49178679251 + 38650.173506199 * t); 2200 result += 3.6e-10 * std::cos(4.86047906533 + 4157.1984426122 * t); 2201 result += 4.3e-10 * std::cos(5.64354880978 + 1062.9050485382 * t); 2202 result += 3.6e-10 * std::cos(3.98066313627 + 12565.1713789146 * t); 2203 result += 4.2e-10 * std::cos(2.30753932657 + 6549.6828917132 * t); 2204 result += 4e-10 * std::cos(5.3969491832 + 9498.2122306346 * t); 2205 result += 4e-10 * std::cos(3.30603243754 + 23536.116957681 * t); 2206 result += 5e-10 * std::cos(6.15760345261 + 78051.3419138334 * t); 2207 return result; 2208 } 2209 2210 constexpr double getEarthR1(double t) 2211 { 2212 double result = 0.0; 2213 result += 0.00103018608 * std::cos(1.10748969588 + 6283.0758499914 * t); 2214 result += 1.721238e-05 * std::cos(1.06442301418 + 12566.1516999828 * t); 2215 result -= -7.02215e-06; 2216 result += 3.2346e-07 * std::cos(1.02169059149 + 18849.2275499742 * t); 2217 result += 3.0799e-07 * std::cos(2.84353804832 + 5507.5532386674 * t); 2218 result += 2.4971e-07 * std::cos(1.31906709482 + 5223.6939198022 * t); 2219 result += 1.8485e-07 * std::cos(1.42429748614 + 1577.3435424478 * t); 2220 result += 1.0078e-07 * std::cos(5.91378194648 + 10977.078804699 * t); 2221 result += 8.634e-08 * std::cos(0.27146150602 + 5486.777843175 * t); 2222 result += 8.654e-08 * std::cos(1.42046854427 + 6275.9623029906 * t); 2223 result += 5.069e-08 * std::cos(1.68613426734 + 5088.6288397668 * t); 2224 result += 4.985e-08 * std::cos(6.01401770704 + 6286.5989683404 * t); 2225 result += 4.669e-08 * std::cos(5.98724494073 + 529.6909650946 * t); 2226 result += 4.395e-08 * std::cos(0.51800238019 + 4694.0029547076 * t); 2227 result += 3.872e-08 * std::cos(4.74969833437 + 2544.3144198834 * t); 2228 result += 3.75e-08 * std::cos(5.07097685568 + 796.2980068164 * t); 2229 result += 4.1e-08 * std::cos(1.08424786092 + 9437.762934887 * t); 2230 result += 3.518e-08 * std::cos(0.02290216272 + 83996.8473181119 * t); 2231 result += 3.436e-08 * std::cos(0.94937019624 + 71430.6956181291 * t); 2232 result += 3.221e-08 * std::cos(6.15628775313 + 2146.1654164752 * t); 2233 result += 3.414e-08 * std::cos(5.41218322538 + 775.522611324 * t); 2234 result += 2.863e-08 * std::cos(5.48432847146 + 10447.3878396044 * t); 2235 result += 2.52e-08 * std::cos(0.24276941146 + 398.1490034082 * t); 2236 result += 2.201e-08 * std::cos(4.95216196651 + 6812.766815086 * t); 2237 result += 2.186e-08 * std::cos(0.41991743105 + 8031.0922630584 * t); 2238 result += 2.838e-08 * std::cos(3.42034351366 + 2352.8661537718 * t); 2239 result += 2.554e-08 * std::cos(6.13241878525 + 6438.4962494256 * t); 2240 result += 1.932e-08 * std::cos(5.31374608366 + 8429.2412664666 * t); 2241 result += 2.429e-08 * std::cos(3.09164528262 + 4690.4798363586 * t); 2242 result += 1.73e-08 * std::cos(1.5368620855 + 4705.7323075436 * t); 2243 result += 2.25e-08 * std::cos(3.68863633842 + 7084.8967811152 * t); 2244 result += 2.093e-08 * std::cos(1.28191783032 + 1748.016413067 * t); 2245 result += 1.441e-08 * std::cos(0.81656250862 + 14143.4952424306 * t); 2246 result += 1.483e-08 * std::cos(3.22225357771 + 7234.794256242 * t); 2247 result += 1.754e-08 * std::cos(3.22883705112 + 6279.5527316424 * t); 2248 result += 1.583e-08 * std::cos(4.09702349428 + 11499.6562227928 * t); 2249 result += 1.575e-08 * std::cos(5.53890170575 + 3154.6870848956 * t); 2250 result += 1.847e-08 * std::cos(1.82040335363 + 7632.9432596502 * t); 2251 result += 1.504e-08 * std::cos(3.63293385726 + 11513.8833167944 * t); 2252 result += 1.337e-08 * std::cos(4.64440864339 + 6836.6452528338 * t); 2253 result += 1.275e-08 * std::cos(2.69341415363 + 1349.8674096588 * t); 2254 result += 1.352e-08 * std::cos(6.15101580257 + 5746.271337896 * t); 2255 result += 1.125e-08 * std::cos(3.35673439497 + 17789.845619785 * t); 2256 result += 1.47e-08 * std::cos(3.65282991755 + 1194.4470102246 * t); 2257 result += 1.177e-08 * std::cos(2.57676109092 + 13367.9726311066 * t); 2258 result += 1.101e-08 * std::cos(4.49748696552 + 4292.3308329504 * t); 2259 result += 1.234e-08 * std::cos(5.65036509521 + 5760.4984318976 * t); 2260 result += 9.84e-09 * std::cos(0.65517395136 + 5856.4776591154 * t); 2261 result += 9.28e-09 * std::cos(2.32420318751 + 10213.285546211 * t); 2262 result += 1.077e-08 * std::cos(5.82812169132 + 12036.4607348882 * t); 2263 result += 9.16e-09 * std::cos(0.76613009583 + 16730.4636895958 * t); 2264 result += 8.77e-09 * std::cos(1.50137505051 + 11926.2544136688 * t); 2265 result += 1.023e-08 * std::cos(5.62076589825 + 6256.7775301916 * t); 2266 result += 8.51e-09 * std::cos(0.65709335533 + 155.4203994342 * t); 2267 result += 8.02e-09 * std::cos(4.10519132088 + 951.7184062506 * t); 2268 result += 8.57e-09 * std::cos(1.41661697538 + 5753.3848848968 * t); 2269 result += 9.94e-09 * std::cos(1.14418521187 + 1059.3819301892 * t); 2270 result += 8.13e-09 * std::cos(1.63948433322 + 6681.2248533996 * t); 2271 result += 6.62e-09 * std::cos(4.5520045226 + 5216.5803728014 * t); 2272 result += 6.44e-09 * std::cos(4.19478168733 + 6040.3472460174 * t); 2273 result += 6.26e-09 * std::cos(1.50767713598 + 5643.1785636774 * t); 2274 result += 5.9e-09 * std::cos(6.18277145205 + 4164.311989613 * t); 2275 result += 6.35e-09 * std::cos(0.52413263542 + 6290.1893969922 * t); 2276 result += 6.5e-09 * std::cos(0.9793569035 + 25132.3033999656 * t); 2277 result += 5.68e-09 * std::cos(2.30125315873 + 10973.55568635 * t); 2278 result += 5.47e-09 * std::cos(5.27256412213 + 3340.6124266998 * t); 2279 result += 5.47e-09 * std::cos(2.20144422886 + 1592.5960136328 * t); 2280 result += 5.26e-09 * std::cos(0.92464258226 + 11371.7046897582 * t); 2281 result += 4.9e-09 * std::cos(5.90951388655 + 3894.1818295422 * t); 2282 result += 4.78e-09 * std::cos(1.66857963179 + 12168.0026965746 * t); 2283 result += 5.16e-09 * std::cos(3.59803483887 + 10969.9652576982 * t); 2284 result += 5.18e-09 * std::cos(3.97914412373 + 17298.1823273262 * t); 2285 result += 5.34e-09 * std::cos(5.03740926442 + 9917.6968745098 * t); 2286 result += 4.87e-09 * std::cos(2.50545369269 + 6127.6554505572 * t); 2287 result += 4.16e-09 * std::cos(4.04828175503 + 10984.1923516998 * t); 2288 result += 5.38e-09 * std::cos(5.54081539805 + 553.5694028424 * t); 2289 result += 4.02e-09 * std::cos(2.16544019233 + 7860.4193924392 * t); 2290 result += 5.53e-09 * std::cos(2.32177369366 + 11506.7697697936 * t); 2291 result += 3.67e-09 * std::cos(3.3915253225 + 6496.3749454294 * t); 2292 result += 3.6e-09 * std::cos(5.34379853282 + 7079.3738568078 * t); 2293 result += 3.37e-09 * std::cos(3.61563704045 + 11790.6290886588 * t); 2294 result += 4.56e-09 * std::cos(0.30754294809 + 801.8209311238 * t); 2295 result += 4.17e-09 * std::cos(3.70009308674 + 10575.4066829418 * t); 2296 result += 3.81e-09 * std::cos(5.82033971802 + 7058.5984613154 * t); 2297 result += 3.21e-09 * std::cos(0.31988767355 + 16200.7727245012 * t); 2298 result += 3.64e-09 * std::cos(1.08414306177 + 6309.3741697912 * t); 2299 result += 2.94e-09 * std::cos(4.54798604957 + 11856.2186514245 * t); 2300 result += 2.9e-09 * std::cos(1.26473978562 + 8635.9420037632 * t); 2301 result += 3.99e-09 * std::cos(4.16998866302 + 26.2983197998 * t); 2302 result += 2.62e-09 * std::cos(5.08316906342 + 10177.2576795336 * t); 2303 result += 2.43e-09 * std::cos(2.2574609119 + 11712.9553182308 * t); 2304 result += 2.37e-09 * std::cos(1.05070575346 + 242.728603974 * t); 2305 result += 2.75e-09 * std::cos(3.45319481756 + 5884.9268465832 * t); 2306 result += 2.55e-09 * std::cos(5.38496831087 + 21228.3920235458 * t); 2307 result += 3.07e-09 * std::cos(4.24313526604 + 3738.761430108 * t); 2308 result += 2.16e-09 * std::cos(3.46037894728 + 213.299095438 * t); 2309 result += 1.96e-09 * std::cos(0.69029243914 + 1990.745017041 * t); 2310 result += 1.98e-09 * std::cos(5.16301829964 + 12352.8526045448 * t); 2311 result += 2.14e-09 * std::cos(3.91876200279 + 13916.0191096416 * t); 2312 result += 2.12e-09 * std::cos(4.00861198517 + 5230.807466803 * t); 2313 result += 1.84e-09 * std::cos(5.59805976614 + 6283.14316029419 * t); 2314 result += 1.84e-09 * std::cos(2.85275392124 + 7238.6755916 * t); 2315 result += 1.79e-09 * std::cos(2.54259058334 + 14314.1681130498 * t); 2316 result += 2.25e-09 * std::cos(1.64458698399 + 4732.0306273434 * t); 2317 result += 2.36e-09 * std::cos(5.58826125715 + 6069.7767545534 * t); 2318 result += 1.87e-09 * std::cos(2.72805985443 + 6062.6632075526 * t); 2319 result += 1.84e-09 * std::cos(6.04216273598 + 6283.0085396886 * t); 2320 result += 2.3e-09 * std::cos(3.62591335086 + 6284.0561710596 * t); 2321 result += 1.63e-09 * std::cos(2.19117396803 + 18073.7049386502 * t); 2322 result += 1.72e-09 * std::cos(0.9761295074 + 3930.2096962196 * t); 2323 result += 2.15e-09 * std::cos(1.04672844028 + 3496.032826134 * t); 2324 result += 1.69e-09 * std::cos(4.75084479006 + 17267.2682016912 * t); 2325 result += 1.52e-09 * std::cos(0.19390712179 + 9779.1086761254 * t); 2326 result += 1.82e-09 * std::cos(5.16288118255 + 17253.0411076896 * t); 2327 result += 1.49e-09 * std::cos(0.8094418426 + 709.9330485583 * t); 2328 result += 1.63e-09 * std::cos(2.1920957039 + 6076.8903015542 * t); 2329 result += 1.86e-09 * std::cos(5.01159497089 + 11015.1064773348 * t); 2330 result += 1.34e-09 * std::cos(0.97765485759 + 65147.6197681377 * t); 2331 result += 1.41e-09 * std::cos(4.38421981312 + 4136.9104335162 * t); 2332 result += 1.58e-09 * std::cos(4.60974280627 + 9623.6882766912 * t); 2333 result += 1.33e-09 * std::cos(3.30508592837 + 154717.609887683 * t); 2334 result += 1.63e-09 * std::cos(6.11782626245 + 3.523118349 * t); 2335 result += 1.74e-09 * std::cos(1.58078542187 + 7.1135470008 * t); 2336 result += 1.41e-09 * std::cos(0.49976927274 + 25158.6017197654 * t); 2337 result += 1.24e-09 * std::cos(6.03440460031 + 9225.539273283 * t); 2338 result += 1.5e-09 * std::cos(5.30166336812 + 13517.8701062334 * t); 2339 result += 1.27e-09 * std::cos(1.92389511438 + 22483.8485744926 * t); 2340 result += 1.21e-09 * std::cos(2.37813129011 + 167283.761587666 * t); 2341 result += 1.2e-09 * std::cos(3.98423684853 + 4686.8894077068 * t); 2342 result += 1.17e-09 * std::cos(5.81072642211 + 12569.6748183318 * t); 2343 result += 1.22e-09 * std::cos(5.60973054224 + 5642.1982426092 * t); 2344 result += 1.57e-09 * std::cos(3.40236426002 + 16496.3613962024 * t); 2345 result += 1.29e-09 * std::cos(2.10705116371 + 1589.0728952838 * t); 2346 result += 1.16e-09 * std::cos(0.55839966736 + 5849.3641121146 * t); 2347 result += 1.23e-09 * std::cos(1.52961392771 + 12559.038152982 * t); 2348 result += 1.11e-09 * std::cos(0.44848279675 + 6172.869528772 * t); 2349 result += 1.23e-09 * std::cos(5.81645568991 + 6282.0955289232 * t); 2350 result += 1.5e-09 * std::cos(4.26278409223 + 3128.3887650958 * t); 2351 result += 1.06e-09 * std::cos(2.27437761356 + 5429.8794682394 * t); 2352 result += 1.04e-09 * std::cos(4.42743707728 + 23543.2305046818 * t); 2353 result += 1.21e-09 * std::cos(0.39459045915 + 12132.439962106 * t); 2354 result += 1.04e-09 * std::cos(2.41842602527 + 426.598190876 * t); 2355 result += 1.1e-09 * std::cos(5.80381480447 + 16858.4825329332 * t); 2356 result += 1e-09 * std::cos(2.93805577485 + 4535.0594369244 * t); 2357 result += 9.7e-10 * std::cos(3.97935904984 + 6133.5126528568 * t); 2358 result += 1.1e-09 * std::cos(6.22339014386 + 12146.6670561076 * t); 2359 result += 9.8e-10 * std::cos(0.87576563709 + 6525.8044539654 * t); 2360 result += 9.8e-10 * std::cos(3.15248421301 + 10440.2742926036 * t); 2361 result += 9.5e-10 * std::cos(2.461684111 + 3097.88382272579 * t); 2362 result += 8.8e-10 * std::cos(0.23371480284 + 13119.7211028252 * t); 2363 result += 9.8e-10 * std::cos(5.77016493489 + 7342.4577801806 * t); 2364 result += 9.2e-10 * std::cos(6.03915555063 + 20426.571092422 * t); 2365 result += 9.6e-10 * std::cos(5.56909292561 + 2388.8940204492 * t); 2366 result += 8.1e-10 * std::cos(1.32131147691 + 5650.2921106782 * t); 2367 result += 8.6e-10 * std::cos(3.94529200528 + 10454.5013866052 * t); 2368 result += 7.6e-10 * std::cos(2.70729716925 + 143571.324284816 * t); 2369 result += 9.1e-10 * std::cos(5.64100034152 + 8827.3902698748 * t); 2370 result += 7.6e-10 * std::cos(1.80783856698 + 28286.9904848612 * t); 2371 result += 8.1e-10 * std::cos(1.90858992196 + 29088.811415985 * t); 2372 result += 7.5e-10 * std::cos(3.40955892978 + 5481.2549188676 * t); 2373 result += 6.9e-10 * std::cos(4.49936170873 + 17256.6315363414 * t); 2374 result += 8.8e-10 * std::cos(1.10098454357 + 11769.8536931664 * t); 2375 result += 6.6e-10 * std::cos(2.78285801977 + 536.8045120954 * t); 2376 result += 6.8e-10 * std::cos(3.88179770758 + 17260.1546546904 * t); 2377 result += 8.4e-10 * std::cos(1.59303306354 + 9380.9596727172 * t); 2378 result += 8.8e-10 * std::cos(3.88076636762 + 7477.522860216 * t); 2379 result += 6.1e-10 * std::cos(6.17558202197 + 11087.2851259184 * t); 2380 result += 6e-10 * std::cos(4.34824715818 + 6206.8097787158 * t); 2381 result += 8.2e-10 * std::cos(4.59843208943 + 9388.0059094152 * t); 2382 result += 7.9e-10 * std::cos(1.63131230601 + 4933.2084403326 * t); 2383 result += 7.8e-10 * std::cos(4.20905757484 + 5729.506447149 * t); 2384 result += 5.7e-10 * std::cos(5.48157926651 + 18319.5365848796 * t); 2385 result += 6e-10 * std::cos(1.01261781084 + 12721.572099417 * t); 2386 result += 5.6e-10 * std::cos(1.63031935692 + 15720.8387848784 * t); 2387 result += 5.5e-10 * std::cos(0.24926735018 + 15110.4661198662 * t); 2388 result += 6.1e-10 * std::cos(5.93059279661 + 12539.853380183 * t); 2389 result += 5.5e-10 * std::cos(4.84298966314 + 13095.8426650774 * t); 2390 result += 6.7e-10 * std::cos(6.11690589247 + 8662.240323563 * t); 2391 result += 5.4e-10 * std::cos(5.73750638571 + 3634.6210245184 * t); 2392 result += 7.4e-10 * std::cos(1.05466745829 + 16460.333529525 * t); 2393 result += 5.3e-10 * std::cos(2.29084335688 + 16062.1845261168 * t); 2394 result += 6.4e-10 * std::cos(2.13513767927 + 7875.6718636242 * t); 2395 result += 6.7e-10 * std::cos(0.07096807518 + 14945.3161735544 * t); 2396 result += 5.1e-10 * std::cos(2.31511194429 + 6262.7205305926 * t); 2397 result += 5.7e-10 * std::cos(5.77055471237 + 12043.574281889 * t); 2398 result += 5.6e-10 * std::cos(4.41980790431 + 4701.1165017084 * t); 2399 result += 5.9e-10 * std::cos(5.87963500073 + 5331.3574437408 * t); 2400 result += 5.8e-10 * std::cos(2.30546168628 + 955.5997416086 * t); 2401 result += 4.9e-10 * std::cos(1.93839278478 + 5333.9002410216 * t); 2402 result += 4.8e-10 * std::cos(2.69973662261 + 6709.6740408674 * t); 2403 result += 6.4e-10 * std::cos(1.64379897981 + 6262.300454499 * t); 2404 result += 4.6e-10 * std::cos(3.98449608961 + 98068.5367163054 * t); 2405 result += 5e-10 * std::cos(3.68875893005 + 12323.4230960088 * t); 2406 result += 4.5e-10 * std::cos(3.30068569697 + 22003.9146348698 * t); 2407 result += 4.7e-10 * std::cos(1.26317154881 + 11919.140866668 * t); 2408 result += 4.5e-10 * std::cos(0.89150445122 + 51868.2486621788 * t); 2409 result += 4.3e-10 * std::cos(1.61526242998 + 6277.552925684 * t); 2410 result += 4.3e-10 * std::cos(5.74295325645 + 11403.676995575 * t); 2411 result += 4.4e-10 * std::cos(3.43070646822 + 10021.8372800994 * t); 2412 result += 5.6e-10 * std::cos(0.02481833774 + 15671.0817594066 * t); 2413 result += 5.5e-10 * std::cos(3.14274403422 + 33019.0211122046 * t); 2414 result += 4.5e-10 * std::cos(3.00877289177 + 8982.810669309 * t); 2415 result += 4.6e-10 * std::cos(0.73303568429 + 6303.4311693902 * t); 2416 result += 4.9e-10 * std::cos(1.60455690285 + 6303.8512454838 * t); 2417 result += 4.5e-10 * std::cos(0.40210030323 + 6805.6532680852 * t); 2418 result += 5.3e-10 * std::cos(0.94869680175 + 10988.808157535 * t); 2419 result += 4.1e-10 * std::cos(1.61122384329 + 6819.8803620868 * t); 2420 result += 5.5e-10 * std::cos(0.89439119424 + 11933.3679606696 * t); 2421 result += 4.5e-10 * std::cos(3.88495384656 + 60530.4889857418 * t); 2422 result += 4e-10 * std::cos(4.75740908001 + 38526.574350872 * t); 2423 result += 4e-10 * std::cos(1.49921251887 + 18451.078546566 * t); 2424 result += 4e-10 * std::cos(3.77498297228 + 26087.9031415742 * t); 2425 result += 5.1e-10 * std::cos(1.70258603562 + 1551.045222648 * t); 2426 result += 3.9e-10 * std::cos(2.97100699926 + 2118.7638603784 * t); 2427 result += 5.3e-10 * std::cos(5.19854123078 + 77713.7714681205 * t); 2428 result += 4.7e-10 * std::cos(4.26356628717 + 21424.4666443034 * t); 2429 result += 3.7e-10 * std::cos(0.62902722802 + 24356.7807886416 * t); 2430 result += 3.6e-10 * std::cos(0.11087914947 + 10344.2950653858 * t); 2431 result += 3.6e-10 * std::cos(0.77037556319 + 12029.3471878874 * t); 2432 result += 3.5e-10 * std::cos(3.30933994515 + 24072.9214697764 * t); 2433 result += 3.5e-10 * std::cos(5.93650887012 + 31570.7996493912 * t); 2434 result += 3.6e-10 * std::cos(2.15108874765 + 30774.5016425748 * t); 2435 result += 3.6e-10 * std::cos(1.75078825382 + 16207.886271502 * t); 2436 result += 3.3e-10 * std::cos(5.06264177921 + 226858.23855437 * t); 2437 result += 3.4e-10 * std::cos(6.168913788 + 24491.4257925834 * t); 2438 result += 3.5e-10 * std::cos(3.19120695549 + 32217.2001810808 * t); 2439 result += 3.4e-10 * std::cos(2.31528650443 + 55798.4583583984 * t); 2440 result += 3.2e-10 * std::cos(4.21446357042 + 15664.0355227086 * t); 2441 result += 3.9e-10 * std::cos(1.24979117796 + 6418.1409300268 * t); 2442 result += 3.7e-10 * std::cos(4.1194365577 + 2787.0430238574 * t); 2443 result += 3.2e-10 * std::cos(1.6288771089 + 639.897286314 * t); 2444 result += 3.8e-10 * std::cos(5.89832942685 + 640.8776073822 * t); 2445 result += 3.2e-10 * std::cos(1.72442327688 + 27433.889215875 * t); 2446 result += 3.1e-10 * std::cos(2.78828943753 + 12139.5535091068 * t); 2447 result += 3.5e-10 * std::cos(4.44608896525 + 18202.2167166594 * t); 2448 result += 3.4e-10 * std::cos(3.96287980676 + 18216.443810661 * t); 2449 result += 3.3e-10 * std::cos(4.73611335874 + 16723.350142595 * t); 2450 result += 3.4e-10 * std::cos(1.43910280005 + 49515.382508407 * t); 2451 result += 3.1e-10 * std::cos(0.23302920161 + 23581.2581773176 * t); 2452 result += 2.9e-10 * std::cos(2.0263384022 + 11609.8625440122 * t); 2453 result += 3e-10 * std::cos(2.5492323024 + 9924.8104215106 * t); 2454 result += 3.2e-10 * std::cos(4.91793198558 + 11300.5842213564 * t); 2455 result += 2.8e-10 * std::cos(0.26187189577 + 13521.7514415914 * t); 2456 result += 2.8e-10 * std::cos(3.84568936822 + 2699.7348193176 * t); 2457 result += 2.9e-10 * std::cos(1.83149729794 + 29822.7832363242 * t); 2458 result += 3.3e-10 * std::cos(4.60320094415 + 19004.6479494084 * t); 2459 result += 2.7e-10 * std::cos(4.46183450287 + 6702.5604938666 * t); 2460 result += 3e-10 * std::cos(4.4649407224 + 36147.4098773004 * t); 2461 result += 2.7e-10 * std::cos(0.03211931363 + 6279.7894925736 * t); 2462 result += 2.6e-10 * std::cos(5.46497324333 + 6245.0481773556 * t); 2463 result += 3.5e-10 * std::cos(4.52695674113 + 36949.2308084242 * t); 2464 result += 2.7e-10 * std::cos(3.52528177609 + 10770.8932562618 * t); 2465 result += 2.6e-10 * std::cos(1.48499438453 + 11080.1715789176 * t); 2466 result += 3.5e-10 * std::cos(2.82154380962 + 19402.7969528166 * t); 2467 result += 2.5e-10 * std::cos(2.46339998836 + 6279.4854213396 * t); 2468 result += 2.6e-10 * std::cos(4.97688894643 + 16737.5772365966 * t); 2469 result += 2.6e-10 * std::cos(2.36136541526 + 17996.0311682222 * t); 2470 result += 2.9e-10 * std::cos(4.15148654061 + 45892.730433157 * t); 2471 result += 2.6e-10 * std::cos(4.50714272714 + 17796.9591667858 * t); 2472 result += 2.7e-10 * std::cos(4.72625223674 + 1066.49547719 * t); 2473 result += 2.5e-10 * std::cos(2.89309528854 + 6286.6662786432 * t); 2474 result += 2.7e-10 * std::cos(0.37462444357 + 12964.300703391 * t); 2475 result += 2.9e-10 * std::cos(4.94860010533 + 5863.5912061162 * t); 2476 result += 3.1e-10 * std::cos(3.93096113577 + 29864.334027309 * t); 2477 result += 2.4e-10 * std::cos(6.14987193584 + 18606.4989460002 * t); 2478 result += 2.4e-10 * std::cos(3.74225964547 + 29026.4852295078 * t); 2479 result += 2.5e-10 * std::cos(5.70460621565 + 27707.5424942948 * t); 2480 result += 2.5e-10 * std::cos(5.33928840652 + 15141.390794312 * t); 2481 result += 2.7e-10 * std::cos(3.0232089714 + 6286.3622074092 * t); 2482 result += 2.3e-10 * std::cos(0.28364955406 + 5327.4761083828 * t); 2483 result += 2.6e-10 * std::cos(1.34240461687 + 18875.525869774 * t); 2484 result += 2.4e-10 * std::cos(1.33998410121 + 19800.9459562248 * t); 2485 result += 2.5e-10 * std::cos(6.00172494004 + 6489.2613984286 * t); 2486 result += 2.2e-10 * std::cos(1.81777974484 + 6288.5987742988 * t); 2487 result += 2.2e-10 * std::cos(3.5860360664 + 6915.8595893046 * t); 2488 result += 2.9e-10 * std::cos(2.09564449439 + 15265.8865193004 * t); 2489 result += 2.2e-10 * std::cos(1.02173599251 + 11925.2740926006 * t); 2490 result += 2.2e-10 * std::cos(4.74660932338 + 28230.1872226914 * t); 2491 result += 2.1e-10 * std::cos(2.30688751432 + 5999.2165311262 * t); 2492 result += 2.1e-10 * std::cos(3.2265494443 + 25934.1243310894 * t); 2493 result += 2.1e-10 * std::cos(3.04956726238 + 6566.9351688566 * t); 2494 result += 2.7e-10 * std::cos(5.35653084499 + 33794.5437235286 * t); 2495 result += 2.8e-10 * std::cos(3.91168324815 + 18208.349942592 * t); 2496 result += 2e-10 * std::cos(1.52296293311 + 135.0650800354 * t); 2497 result += 2.2e-10 * std::cos(4.66462839521 + 13362.4497067992 * t); 2498 result += 1.9e-10 * std::cos(1.78121167862 + 156137.475984799 * t); 2499 result += 1.9e-10 * std::cos(2.99969102221 + 19651.048481098 * t); 2500 result += 1.9e-10 * std::cos(2.86664273362 + 18422.6293590982 * t); 2501 result += 2.5e-10 * std::cos(0.94995632141 + 31415.379249957 * t); 2502 result += 1.9e-10 * std::cos(4.71432851499 + 77690.7595057385 * t); 2503 result += 1.9e-10 * std::cos(2.54227398241 + 77736.7834305025 * t); 2504 result += 2e-10 * std::cos(5.91915117116 + 48739.859897083 * t); 2505 return result; 2506 } 2507 2508 constexpr double getEarthR2(double t) 2509 { 2510 double result = 0.0; 2511 result += 4.359385e-05 * std::cos(5.78455133738 + 6283.0758499914 * t); 2512 result += 1.23633e-06 * std::cos(5.57934722157 + 12566.1516999828 * t); 2513 result -= -1.2341e-07; 2514 result += 8.792e-08 * std::cos(3.62777733395 + 77713.7714681205 * t); 2515 result += 5.689e-08 * std::cos(1.86958905084 + 5573.1428014331 * t); 2516 result += 3.301e-08 * std::cos(5.47027913302 + 18849.2275499742 * t); 2517 result += 1.471e-08 * std::cos(4.48028885617 + 5507.5532386674 * t); 2518 result += 1.013e-08 * std::cos(2.81456417694 + 5223.6939198022 * t); 2519 result += 8.54e-09 * std::cos(3.10878241236 + 1577.3435424478 * t); 2520 result += 1.102e-08 * std::cos(2.84173992403 + 161000.685737674 * t); 2521 result += 6.48e-09 * std::cos(5.47349498544 + 775.522611324 * t); 2522 result += 6.09e-09 * std::cos(1.37969434104 + 6438.4962494256 * t); 2523 result += 4.99e-09 * std::cos(4.4164924225 + 6286.5989683404 * t); 2524 result += 4.17e-09 * std::cos(0.90242451175 + 10977.078804699 * t); 2525 result += 4.02e-09 * std::cos(3.2037658529 + 5088.6288397668 * t); 2526 result += 3.51e-09 * std::cos(1.8107922777 + 5486.777843175 * t); 2527 result += 4.67e-09 * std::cos(3.65753702738 + 7084.8967811152 * t); 2528 result += 4.58e-09 * std::cos(5.38585314743 + 149854.400134808 * t); 2529 result += 3.04e-09 * std::cos(3.51701098693 + 796.2980068164 * t); 2530 result += 2.66e-09 * std::cos(6.17413982699 + 6836.6452528338 * t); 2531 result += 2.79e-09 * std::cos(1.84120501086 + 4694.0029547076 * t); 2532 result += 2.6e-09 * std::cos(1.41629543251 + 2146.1654164752 * t); 2533 result += 2.66e-09 * std::cos(3.13832905677 + 71430.6956181291 * t); 2534 result += 3.21e-09 * std::cos(5.35313367048 + 3154.6870848956 * t); 2535 result += 2.38e-09 * std::cos(2.17720020018 + 155.4203994342 * t); 2536 result += 2.93e-09 * std::cos(4.61501268144 + 4690.4798363586 * t); 2537 result += 2.29e-09 * std::cos(4.7596958807 + 7234.794256242 * t); 2538 result += 2.11e-09 * std::cos(0.21868065485 + 4705.7323075436 * t); 2539 result += 2.01e-09 * std::cos(4.21905743357 + 1349.8674096588 * t); 2540 result += 1.95e-09 * std::cos(4.57808285364 + 529.6909650946 * t); 2541 result += 2.53e-09 * std::cos(2.81496293039 + 1748.016413067 * t); 2542 result += 1.82e-09 * std::cos(5.70454011389 + 6040.3472460174 * t); 2543 result += 1.79e-09 * std::cos(6.02897097053 + 4292.3308329504 * t); 2544 result += 1.86e-09 * std::cos(1.58690991244 + 6309.3741697912 * t); 2545 result += 1.7e-09 * std::cos(2.90220009715 + 9437.762934887 * t); 2546 result += 1.66e-09 * std::cos(1.99984925026 + 8031.0922630584 * t); 2547 result += 1.58e-09 * std::cos(0.04783713552 + 2544.3144198834 * t); 2548 result += 1.97e-09 * std::cos(2.01083639502 + 1194.4470102246 * t); 2549 result += 1.65e-09 * std::cos(5.78372596778 + 83996.8473181119 * t); 2550 result += 2.14e-09 * std::cos(3.38285934319 + 7632.9432596502 * t); 2551 result += 1.4e-09 * std::cos(0.36401486094 + 10447.3878396044 * t); 2552 result += 1.51e-09 * std::cos(0.95153163031 + 6127.6554505572 * t); 2553 result += 1.36e-09 * std::cos(1.48426306582 + 2352.8661537718 * t); 2554 result += 1.27e-09 * std::cos(5.48475435134 + 951.7184062506 * t); 2555 result += 1.26e-09 * std::cos(5.26866506592 + 6279.5527316424 * t); 2556 result += 1.25e-09 * std::cos(3.75754889288 + 6812.766815086 * t); 2557 result += 1.01e-09 * std::cos(4.95015746147 + 398.1490034082 * t); 2558 result += 1.02e-09 * std::cos(0.68468295277 + 1592.5960136328 * t); 2559 result += 1e-09 * std::cos(1.14568935785 + 3894.1818295422 * t); 2560 result += 1.29e-09 * std::cos(0.76540016965 + 553.5694028424 * t); 2561 result += 1.09e-09 * std::cos(5.41063597567 + 6256.7775301916 * t); 2562 result += 7.5e-10 * std::cos(5.84804322893 + 242.728603974 * t); 2563 result += 9.5e-10 * std::cos(1.94452244083 + 11856.2186514245 * t); 2564 result += 7.7e-10 * std::cos(0.69373708195 + 8429.2412664666 * t); 2565 result += 1e-09 * std::cos(5.19725292131 + 244287.600007228 * t); 2566 result += 8e-10 * std::cos(6.18440483705 + 1059.3819301892 * t); 2567 result += 6.9e-10 * std::cos(5.25699888595 + 14143.4952424306 * t); 2568 result += 8.5e-10 * std::cos(5.39484725499 + 25132.3033999656 * t); 2569 result += 6.6e-10 * std::cos(0.51779993906 + 801.8209311238 * t); 2570 result += 5.5e-10 * std::cos(5.16878202461 + 7058.5984613154 * t); 2571 result += 5.1e-10 * std::cos(3.88759155247 + 12036.4607348882 * t); 2572 result += 5e-10 * std::cos(5.57636570536 + 6290.1893969922 * t); 2573 result += 6.1e-10 * std::cos(2.24359003264 + 8635.9420037632 * t); 2574 result += 5e-10 * std::cos(5.54441900966 + 1990.745017041 * t); 2575 result += 5.6e-10 * std::cos(4.0030107804 + 13367.9726311066 * t); 2576 result += 5.2e-10 * std::cos(4.13138898038 + 7860.4193924392 * t); 2577 result += 5.2e-10 * std::cos(3.90943054011 + 26.2983197998 * t); 2578 result += 4.1e-10 * std::cos(3.5712848278 + 7079.3738568078 * t); 2579 result += 5.6e-10 * std::cos(2.76959005761 + 90955.5516944961 * t); 2580 result += 4.2e-10 * std::cos(1.91461189199 + 7477.522860216 * t); 2581 result += 4.2e-10 * std::cos(0.42728171713 + 10213.285546211 * t); 2582 result += 4.2e-10 * std::cos(1.09413724455 + 709.9330485583 * t); 2583 result += 3.9e-10 * std::cos(3.93298068961 + 10973.55568635 * t); 2584 result += 3.8e-10 * std::cos(6.17935925345 + 9917.6968745098 * t); 2585 result += 4.9e-10 * std::cos(0.83021145241 + 11506.7697697936 * t); 2586 result += 5.3e-10 * std::cos(1.45828359397 + 233141.314404362 * t); 2587 result += 4.7e-10 * std::cos(6.21568666789 + 6681.2248533996 * t); 2588 result += 3.7e-10 * std::cos(0.3635930998 + 10177.2576795336 * t); 2589 result += 3.5e-10 * std::cos(3.33024911524 + 5643.1785636774 * t); 2590 result += 3.4e-10 * std::cos(5.63446915337 + 6525.8044539654 * t); 2591 result += 3.5e-10 * std::cos(5.36033855038 + 25158.6017197654 * t); 2592 result += 3.4e-10 * std::cos(5.36319798321 + 4933.2084403326 * t); 2593 result += 3.3e-10 * std::cos(4.24722336872 + 12569.6748183318 * t); 2594 result += 4.3e-10 * std::cos(5.26370903404 + 10575.4066829418 * t); 2595 result += 4.2e-10 * std::cos(5.08837645072 + 11015.1064773348 * t); 2596 result += 4e-10 * std::cos(1.98334703186 + 6284.0561710596 * t); 2597 result += 4.2e-10 * std::cos(4.22496037505 + 88860.0570709867 * t); 2598 result += 2.9e-10 * std::cos(3.1908862817 + 11926.2544136688 * t); 2599 result += 2.9e-10 * std::cos(0.15217616684 + 12168.0026965746 * t); 2600 result += 3e-10 * std::cos(1.61904744136 + 9779.1086761254 * t); 2601 result += 2.7e-10 * std::cos(0.76388991416 + 1589.0728952838 * t); 2602 result += 3.6e-10 * std::cos(2.74712003443 + 3738.761430108 * t); 2603 result += 3.3e-10 * std::cos(3.08807829566 + 3930.2096962196 * t); 2604 result += 3.1e-10 * std::cos(5.34906619513 + 143571.324284816 * t); 2605 result += 2.5e-10 * std::cos(0.10240267494 + 22483.8485744926 * t); 2606 result += 3e-10 * std::cos(3.47110495524 + 14945.3161735544 * t); 2607 result += 2.4e-10 * std::cos(1.10425016019 + 4535.0594369244 * t); 2608 result += 2.4e-10 * std::cos(1.5803725978 + 6496.3749454294 * t); 2609 result += 2.3e-10 * std::cos(3.87710321433 + 6275.9623029906 * t); 2610 result += 2.5e-10 * std::cos(3.9452977897 + 3128.3887650958 * t); 2611 result += 2.3e-10 * std::cos(3.44685609601 + 4136.9104335162 * t); 2612 result += 2.3e-10 * std::cos(3.83156029849 + 5753.3848848968 * t); 2613 result += 2.2e-10 * std::cos(1.86956128067 + 16730.4636895958 * t); 2614 result += 2.5e-10 * std::cos(2.42188933855 + 5729.506447149 * t); 2615 result += 2e-10 * std::cos(1.78208352927 + 17789.845619785 * t); 2616 result += 2.1e-10 * std::cos(4.303630874 + 16858.4825329332 * t); 2617 result += 2.1e-10 * std::cos(0.49258939822 + 29088.811415985 * t); 2618 result += 2.5e-10 * std::cos(1.33030250444 + 6282.0955289232 * t); 2619 result += 2.7e-10 * std::cos(2.54785812264 + 3496.032826134 * t); 2620 result += 2.2e-10 * std::cos(1.1123252195 + 12721.572099417 * t); 2621 result += 2.1e-10 * std::cos(5.97759081637 + 7.1135470008 * t); 2622 result += 1.9e-10 * std::cos(0.80292033311 + 16062.1845261168 * t); 2623 result += 2.3e-10 * std::cos(4.12454848769 + 2388.8940204492 * t); 2624 result += 2.2e-10 * std::cos(4.92663152168 + 18875.525869774 * t); 2625 result += 2.3e-10 * std::cos(5.68902059771 + 16460.333529525 * t); 2626 result += 2.3e-10 * std::cos(4.97346265647 + 17260.1546546904 * t); 2627 result += 2.3e-10 * std::cos(3.03021283729 + 66567.4858652543 * t); 2628 result += 1.6e-10 * std::cos(3.89740925257 + 5331.3574437408 * t); 2629 result += 1.7e-10 * std::cos(3.08268671348 + 154717.609887683 * t); 2630 result += 1.6e-10 * std::cos(3.95085099736 + 3097.88382272579 * t); 2631 result += 1.6e-10 * std::cos(3.99041783945 + 6283.14316029419 * t); 2632 result += 2e-10 * std::cos(6.10644140189 + 167283.761587666 * t); 2633 result += 1.5e-10 * std::cos(4.09775914607 + 11712.9553182308 * t); 2634 result += 1.6e-10 * std::cos(5.717699407 + 17298.1823273262 * t); 2635 result += 1.6e-10 * std::cos(3.28894009404 + 5884.9268465832 * t); 2636 result += 1.5e-10 * std::cos(5.64785377164 + 12559.038152982 * t); 2637 result += 1.6e-10 * std::cos(4.4345208093 + 6283.0085396886 * t); 2638 result += 1.4e-10 * std::cos(2.31721603062 + 5481.2549188676 * t); 2639 result += 1.4e-10 * std::cos(4.43479032305 + 13517.8701062334 * t); 2640 result += 1.4e-10 * std::cos(4.73209312936 + 7342.4577801806 * t); 2641 result += 1.2e-10 * std::cos(0.64705975463 + 18073.7049386502 * t); 2642 result += 1.1e-10 * std::cos(1.514433322 + 16200.7727245012 * t); 2643 result += 1.1e-10 * std::cos(0.88708889185 + 21228.3920235458 * t); 2644 result += 1.4e-10 * std::cos(4.50116508534 + 640.8776073822 * t); 2645 result += 1.1e-10 * std::cos(4.64339996198 + 11790.6290886588 * t); 2646 result += 1.1e-10 * std::cos(1.31064298246 + 4164.311989613 * t); 2647 result += 9e-11 * std::cos(3.02238989305 + 23543.2305046818 * t); 2648 result += 9e-11 * std::cos(2.04999402381 + 22003.9146348698 * t); 2649 result += 9e-11 * std::cos(4.91488110218 + 213.299095438 * t); 2650 return result; 2651 } 2652 2653 constexpr double getEarthR3(double t) 2654 { 2655 double result = 0.0; 2656 result += 1.44595e-06 * std::cos(4.27319435148 + 6283.0758499914 * t); 2657 result += 6.729e-08 * std::cos(3.91697608662 + 12566.1516999828 * t); 2658 result += 7.74e-09; 2659 result += 2.47e-09 * std::cos(3.73019298781 + 18849.2275499742 * t); 2660 result += 3.6e-10 * std::cos(2.8008140905 + 6286.5989683404 * t); 2661 result += 3.3e-10 * std::cos(5.62216602775 + 6127.6554505572 * t); 2662 result += 1.9e-10 * std::cos(3.71292621802 + 6438.4962494256 * t); 2663 result += 1.6e-10 * std::cos(4.26011484232 + 6525.8044539654 * t); 2664 result += 1.6e-10 * std::cos(3.50416887054 + 6256.7775301916 * t); 2665 result += 1.4e-10 * std::cos(3.62127621114 + 25132.3033999656 * t); 2666 result += 1.1e-10 * std::cos(4.39200958819 + 4705.7323075436 * t); 2667 result += 1.1e-10 * std::cos(5.22327127059 + 6040.3472460174 * t); 2668 result += 1e-10 * std::cos(4.28045254647 + 83996.8473181119 * t); 2669 result += 9e-11 * std::cos(1.56864096494 + 5507.5532386674 * t); 2670 result += 1.1e-10 * std::cos(1.37795688024 + 6309.3741697912 * t); 2671 result += 1e-10 * std::cos(5.19937959068 + 71430.6956181291 * t); 2672 result += 9e-11 * std::cos(0.4727519993 + 6279.5527316424 * t); 2673 result += 9e-11 * std::cos(0.74642756529 + 5729.506447149 * t); 2674 result += 7e-11 * std::cos(2.9737489156 + 775.522611324 * t); 2675 result += 7e-11 * std::cos(3.28615691021 + 7058.5984613154 * t); 2676 result += 7e-11 * std::cos(2.19184402142 + 6812.766815086 * t); 2677 result += 5e-11 * std::cos(3.15419034438 + 529.6909650946 * t); 2678 result += 6e-11 * std::cos(4.54725567047 + 1059.3819301892 * t); 2679 result += 5e-11 * std::cos(1.51104406936 + 7079.3738568078 * t); 2680 result += 7e-11 * std::cos(2.98052059053 + 6681.2248533996 * t); 2681 result += 5e-11 * std::cos(2.30961231391 + 12036.4607348882 * t); 2682 result += 5e-11 * std::cos(3.71102966917 + 6290.1893969922 * t); 2683 return result; 2684 } 2685 2686 constexpr double getEarthR4(double t) 2687 { 2688 double result = 0.0; 2689 result += 3.858e-08 * std::cos(2.56384387339 + 6283.0758499914 * t); 2690 result += 3.06e-09 * std::cos(2.2676950123 + 12566.1516999828 * t); 2691 result += 5.3e-10 * std::cos(3.44031471924 + 5573.1428014331 * t); 2692 result += 1.5e-10 * std::cos(2.04794573436 + 18849.2275499742 * t); 2693 result += 1.3e-10 * std::cos(2.05688873673 + 77713.7714681205 * t); 2694 result += 7e-11 * std::cos(4.4121885448 + 161000.685737674 * t); 2695 result += 5e-11 * std::cos(5.26154653107 + 6438.4962494256 * t); 2696 result += 5e-11 * std::cos(4.07695126049 + 6127.6554505572 * t); 2697 result += 6e-11 * std::cos(3.81514213664 + 149854.400134808 * t); 2698 result += 3e-11 * std::cos(1.28175749811 + 6286.5989683404 * t); 2699 return result; 2700 } 2701 2702 constexpr double getEarthR5(double t) 2703 { 2704 double result = 0.0; 2705 result += 8.6e-10 * std::cos(1.21579741687 + 6283.0758499914 * t); 2706 result += 1.2e-10 * std::cos(0.65617264033 + 12566.1516999828 * t); 2707 result += 1e-11 * std::cos(0.38068797142 + 18849.2275499742 * t); 2708 return result; 2709 } 2710 2711 constexpr double getJulianThousandYears(double jd) 2712 { 2713 constexpr double DaysOf1000Years = 365.25 * 1000; 2714 return (jd - J2000) / DaysOf1000Years; 2715 } 2716 2717 constexpr double mod2Pi(double r) 2718 { 2719 while (r < 0) { 2720 r += std::numbers::pi * 2; 2721 } 2722 while (r > 2 * std::numbers::pi) { 2723 r -= std::numbers::pi * 2; 2724 } 2725 return r; 2726 } 2727 2728 /** 2729 * Calculates the Heliocentric Yellow Meridian (rad) of the Earth by Julian day 2730 */ 2731 constexpr double getSunEclipticLongitudeForEarth(double julianDay) 2732 { 2733 const double t = getJulianThousandYears(julianDay); 2734 const double L0 = getEarthL0(t); 2735 const double L1 = getEarthL1(t); 2736 const double L2 = getEarthL2(t); 2737 const double L3 = getEarthL3(t); 2738 const double L4 = getEarthL4(t); 2739 const double L5 = getEarthL5(t); 2740 const double L = ((((L5 * t + L4) * t + L3) * t + L2) * t + L1) * t + L0; 2741 return mod2Pi(L); 2742 } 2743 2744 constexpr double getSunEclipticLatitudeForEarth(double jd) 2745 { 2746 const double t = getJulianThousandYears(jd); 2747 const double B0 = getEarthB0(t); 2748 const double B1 = getEarthB1(t); 2749 const double B2 = getEarthB2(t); 2750 const double B3 = getEarthB3(t); 2751 const double B4 = getEarthB4(t); 2752 const double B = ((((B4 * t) + B3) * t + B2) * t + B1) * t + B0; 2753 return B; 2754 } 2755 2756 constexpr double getJulianCentury(double julianDay) 2757 { 2758 // days of 100 years 2759 constexpr double DaysOfCentury = 365.25 * 100; 2760 return (julianDay - J2000) / DaysOfCentury; 2761 } 2762 2763 constexpr double secondsToDegrees(double seconds) 2764 { 2765 return seconds / 3600; 2766 } 2767 2768 constexpr double degreesToRadians(double degrees) 2769 { 2770 return degrees * std::numbers::pi / 180; 2771 } 2772 2773 constexpr double secondsToRadians(double seconds) 2774 { 2775 return degreesToRadians(secondsToDegrees(seconds)); 2776 } 2777 2778 consteval double coefficient() 2779 { 2780 return secondsToRadians(0.0001); 2781 } 2782 2783 void getEarthNutationParameter(EarthNutationParameter &earthNutationParameter, double T) 2784 { 2785 const double T2 = T * T; 2786 const double T3 = T2 * T; 2787 2788 earthNutationParameter.D = degreesToRadians(297.85036 + 445267.111480 * T - 0.0019142 * T2 + T3 / 189474.0); 2789 earthNutationParameter.M = degreesToRadians(357.52772 + 35999.050340 * T - 0.0001603 * T2 - T3 / 300000.0); 2790 earthNutationParameter.Mp = degreesToRadians(134.96298 + 477198.867398 * T + 0.0086972 * T2 + T3 / 56250.0); 2791 earthNutationParameter.F = degreesToRadians(93.27191 + 483202.017538 * T - 0.0036825 * T2 + T3 / 327270.0); 2792 earthNutationParameter.Omega = degreesToRadians(125.04452 - 1934.136261 * T + 0.0020708 * T2 + T3 / 450000.0); 2793 } 2794 2795 double calcEarthLongitudeNutation(double T) 2796 { 2797 EarthNutationParameter radian; 2798 getEarthNutationParameter(radian, T); 2799 double result = 0.0; 2800 for (std::size_t i = 0; i < s_nuation.size(); i++) { 2801 double theta = 2802 s_nuation[i].D * radian.D + s_nuation[i].M * radian.M + s_nuation[i].Mp * radian.Mp + s_nuation[i].F * radian.F + s_nuation[i].Omega * radian.Omega; 2803 result += (s_nuation[i].Sine1 + s_nuation[i].Sine2 * T) * std::sin(theta); 2804 } 2805 return result * coefficient(); 2806 } 2807 2808 constexpr double Vsop2Fk5LongitudeCorrection(double latitude, double longitude, double julianDay) 2809 { 2810 const double t = getJulianCentury(julianDay); 2811 const double lp = latitude - degreesToRadians(1.397) * t - degreesToRadians(0.00031) * t * t; 2812 return secondsToRadians(-0.09033 + 0.03916 * (std::cos(lp) + std::sin(lp)) * std::tan(longitude)); 2813 } 2814 2815 /** 2816 * Calculates ecliptical longitude of earth in heliocentric coordinates based on VSOP87D table 2817 * @see https://ftp.imcce.fr/pub/ephem/planets/vsop87/VSOP87D.ear 2818 * @return earth longitude in radians 2819 */ 2820 constexpr double getSunRadiusForEarth(double julianDay) 2821 { 2822 const double t = getJulianThousandYears(julianDay); 2823 const double R0 = getEarthR0(t); 2824 const double R1 = getEarthR1(t); 2825 const double R2 = getEarthR2(t); 2826 const double R3 = getEarthR3(t); 2827 const double R4 = getEarthR4(t); 2828 const double R5 = getEarthR5(t); 2829 const double R = ((((R5 * t + R4) * t + R3) * t + R2) * t + R1) * t + R0; 2830 return R; 2831 } 2832 2833 double getEarthEclipticLongitudeForSun(double jd) 2834 { 2835 double l = getSunEclipticLongitudeForEarth(jd); 2836 const double b = getSunEclipticLatitudeForEarth(jd); 2837 l += calcEarthLongitudeNutation(getJulianCentury(jd)); 2838 l += Vsop2Fk5LongitudeCorrection(l, b, jd); 2839 l = mod2Pi(l + std::numbers::pi); 2840 // Light-time correction depends upon the velocity and distance of the emitting object during the time it takes for its light to travel to Earth. 2841 // 20.49522″ = arctan(earth revolution linear velocity / view distance between earth and sun) 2842 // FIXME: why divided by r 2843 const double r = getSunRadiusForEarth(jd); 2844 l -= secondsToRadians(20.4898) / r; 2845 return l; 2846 } 2847 2848 void getMoonEclipticParameter(MoonEclipticParameter &moonEclipticParameter, double T) 2849 { 2850 double T2 = T * T; 2851 double T3 = T2 * T; 2852 double T4 = T3 * T; 2853 2854 moonEclipticParameter.Lp = mod2Pi(degreesToRadians(218.3164591 + 481267.88134236 * T - 0.0013268 * T2 + T3 / 538841.0 - T4 / 65194000.0)); 2855 moonEclipticParameter.D = mod2Pi(degreesToRadians(297.8502042 + 445267.1115168 * T - 0.0016300 * T2 + T3 / 545868.0 - T4 / 113065000.0)); 2856 moonEclipticParameter.M = mod2Pi(degreesToRadians(357.5291092 + 35999.0502909 * T - 0.0001536 * T2 + T3 / 24490000.0)); 2857 moonEclipticParameter.Mp = mod2Pi(degreesToRadians(134.9634114 + 477198.8676313 * T + 0.0089970 * T2 + T3 / 69699.0 - T4 / 14712000.0)); 2858 moonEclipticParameter.F = mod2Pi(degreesToRadians(93.2720993 + 483202.0175273 * T - 0.0034029 * T2 - T3 / 3526000.0 + T4 / 863310000.0)); 2859 moonEclipticParameter.E = 1 - 0.002516 * T - 0.0000074 * T2; 2860 } 2861 2862 double calcMoonECLongitudePeriodic(MoonEclipticParameter &moonEclipticParameter) 2863 { 2864 double EI = 0.0; 2865 for (std::size_t i = 0; i < s_moonLongitude.size(); i++) { 2866 double theta = s_moonLongitude[i].D * moonEclipticParameter.D + s_moonLongitude[i].M * moonEclipticParameter.M 2867 + s_moonLongitude[i].Mp * moonEclipticParameter.Mp + s_moonLongitude[i].F * moonEclipticParameter.F; 2868 EI += s_moonLongitude[i].EiA * std::sin(theta) * std::pow(moonEclipticParameter.E, std::abs(s_moonLongitude[i].M)); 2869 } 2870 return EI; 2871 } 2872 2873 double calcMoonLongitudePerturbation(double T, const MoonEclipticParameter &moonEclipticParameter) 2874 { 2875 const double A1 = mod2Pi(degreesToRadians(119.75 + 131.849 * T)); 2876 const double A2 = mod2Pi(degreesToRadians(53.09 + 479264.290 * T)); 2877 2878 return 3958.0 * std::sin(A1) + 1962.0 * std::sin(moonEclipticParameter.Lp - moonEclipticParameter.F) + 318.0 * std::sin(A2); 2879 } 2880 2881 double getMoonEclipticLongitudeEC(double julianDay) 2882 { 2883 MoonEclipticParameter radian; 2884 double T = getJulianCentury(julianDay); 2885 getMoonEclipticParameter(radian, T); 2886 double EI = calcMoonECLongitudePeriodic(radian); 2887 EI += calcMoonLongitudePerturbation(T, radian); 2888 double longitude = radian.Lp + degreesToRadians(EI / 1000000.0); 2889 longitude += calcEarthLongitudeNutation(T); 2890 return longitude; 2891 } 2892 2893 double NewtonIteration(double angle, double x0) 2894 { 2895 constexpr double EPSILON = 1e-7; 2896 constexpr double DELTA = 5e-6; 2897 // Make sure the rad value is in between -PI and PI 2898 auto func = [angle](double x) -> double { 2899 double r = getEarthEclipticLongitudeForSun(x) - angle; 2900 while (r < -std::numbers::pi) { 2901 r += std::numbers::pi * 2; 2902 } 2903 while (r > std::numbers::pi) { 2904 r -= std::numbers::pi * 2; 2905 } 2906 return r; 2907 }; 2908 2909 double x; 2910 unsigned count = 0; 2911 while (count++ < 100u) { 2912 x = x0; 2913 double fx, fpx; 2914 fx = func(x); 2915 // derivative 2916 fpx = (func(x + DELTA) - func(x - DELTA)) / DELTA / 2; 2917 x0 = x - fx / fpx; 2918 if (std::abs(x0 - x) <= EPSILON) { 2919 break; 2920 } 2921 } 2922 return x; 2923 } 2924 2925 // From http://eclipse.gsfc.nasa.gov/SEhelp/deltatpoly2004.html 2926 double getDeltaT(int year, int month) 2927 { 2928 double y = double(year) + (double(month) - 0.5) / 12; 2929 2930 if (year < -500) { 2931 double u = (double(year) - 1820) / 100; 2932 return -20 + 32 * u * u; 2933 } else if (year < 500) { 2934 double u = y / 100; 2935 double u2 = u * u; 2936 double u3 = u2 * u; 2937 double u4 = u3 * u; 2938 double u5 = u4 * u; 2939 double u6 = u5 * u; 2940 return 10583.6 - 1014.41 * u + 33.78311 * u2 - 5.952053 * u3 - 0.1798452 * u4 + 0.022174192 * u5 + 0.0090316521 * u6; 2941 } else if (year < 1600) { 2942 double u = (y - 1000) / 100; 2943 double u2 = u * u; 2944 double u3 = u2 * u; 2945 double u4 = u3 * u; 2946 double u5 = u4 * u; 2947 double u6 = u5 * u; 2948 return 1574.2 - 556.01 * u + 71.23472 * u2 + 0.319781 * u3 - 0.8503463 * u4 - 0.005050998 * u5 + 0.0083572073 * u6; 2949 } else if (year < 1700) { 2950 double t = y - 1600; 2951 double t2 = t * t; 2952 double t3 = t2 * t; 2953 return 120 - 0.9808 * t - 0.01532 * t2 + t3 / 7129; 2954 } else if (year < 1800) { 2955 double t = y - 1700; 2956 double t2 = t * t; 2957 double t3 = t2 * t; 2958 double t4 = t3 * t; 2959 return 8.83 + 0.1603 * t - 0.0059285 * t2 + 0.00013336 * t3 - t4 / 1174000; 2960 } else if (year < 1860) { 2961 double t = y - 1800; 2962 double t2 = t * t; 2963 double t3 = t2 * t; 2964 double t4 = t3 * t; 2965 double t5 = t4 * t; 2966 double t6 = t5 * t; 2967 double t7 = t6 * t; 2968 return 13.72 - 0.332447 * t + 0.0068612 * t2 + 0.0041116 * t3 - 0.00037436 * t4 + 0.0000121272 * t5 - 0.0000001699 * t6 + 0.000000000875 * t7; 2969 } else if (year < 1900) { 2970 double t = y - 1860; 2971 double t2 = t * t; 2972 double t3 = t2 * t; 2973 double t4 = t3 * t; 2974 double t5 = t4 * t; 2975 return 7.62 + 0.5737 * t - 0.251754 * t2 + 0.01680668 * t3 - 0.0004473624 * t4 + t5 / 233174; 2976 } else if (year < 1920) { 2977 double t = y - 1900; 2978 double t2 = t * t; 2979 double t3 = t2 * t; 2980 double t4 = t3 * t; 2981 return -2.79 + 1.494119 * t - 0.0598939 * t2 + 0.0061966 * t3 - 0.000197 * t4; 2982 } else if (year < 1941) { 2983 double t = y - 1920; 2984 double t2 = t * t; 2985 double t3 = t2 * t; 2986 return 21.20 + 0.84493 * t - 0.076100 * t2 + 0.0020936 * t3; 2987 } else if (year < 1961) { 2988 double t = y - 1950; 2989 double t2 = t * t; 2990 double t3 = t2 * t; 2991 return 29.07 + 0.407 * t - t2 / 233 + t3 / 2547; 2992 } else if (year < 1986) { 2993 double t = y - 1975; 2994 double t2 = t * t; 2995 double t3 = t2 * t; 2996 return 45.45 + 1.067 * t - t2 / 260 - t3 / 718; 2997 } else if (year < 2005) { 2998 double t = y - 2000; 2999 double t2 = t * t; 3000 double t3 = t2 * t; 3001 double t4 = t3 * t; 3002 double t5 = t4 * t; 3003 return 63.86 + 0.3345 * t - 0.060374 * t2 + 0.0017275 * t3 + 0.000651814 * t4 + 0.00002373599 * t5; 3004 } else if (year < 2050) { 3005 double t = y - 2000; 3006 double t2 = t * t; 3007 return 62.92 + 0.32217 * t + 0.005589 * t2; 3008 } else if (year < 2150) { 3009 double u = (y - 1820) / 100; 3010 double u2 = u * u; 3011 return -20 + 32 * u2 - 0.5628 * (2150 - y); 3012 } else { 3013 double u = (y - 1820) / 100; 3014 double u2 = u * u; 3015 return -20 + 32 * u2; 3016 } 3017 } 3018 3019 int64_t toJulianDay(int year, int month, int day) 3020 { 3021 #if __has_cpp_attribute(assume) 3022 [[assume(year > 0 && day > 0)]]; 3023 [[assume(month > 0 && month <= 12)]]; 3024 #endif 3025 int a = (14 - month) / 12; 3026 int y = year + 4800 - a; 3027 int m = month + 12 * a - 3; 3028 return day + (153 * m + 2) / 5 + 365 * y + y / 4 - y / 100 + y / 400 - 32045; 3029 } 3030 3031 void getDateFromJulianDay(double julianDay, int &yy, int &mm, int &dd) 3032 { 3033 /* 3034 * This algorithm is taken from 3035 * "Numerical Recipes in c, 2nd Ed." (1992), pp. 14-15 3036 * and converted to integer math. 3037 * The electronic version of the book is freely available 3038 * at http://www.nr.com/ , under "Obsolete Versions - Older 3039 * book and code versions. 3040 */ 3041 constexpr int64_t JD_GREG_CAL = 2299161; 3042 constexpr int64_t JB_MAX_WITHOUT_OVERFLOW = 107374182; 3043 int64_t julian = int64_t(std::floor(julianDay + 0.5)); 3044 3045 int64_t ta, jalpha, tb, tc, td, te; 3046 3047 if (julian >= JD_GREG_CAL) { 3048 jalpha = (4 * (julian - 1867216) - 1) / 146097; 3049 ta = julian + 1 + jalpha - jalpha / 4; 3050 } else if (julian < 0) { 3051 ta = julian + 36525 * (1 - julian / 36525); 3052 } else { 3053 ta = julian; 3054 } 3055 3056 tb = ta + 1524; 3057 if (tb <= JB_MAX_WITHOUT_OVERFLOW) { 3058 tc = (tb * 20 - 2442) / 7305; 3059 } else { 3060 tc = int64_t((uint64_t(tb) * 20 - 2442) / 7305); 3061 } 3062 3063 td = 365 * tc + tc / 4; 3064 te = ((tb - td) * 10000) / 306001; 3065 dd = int(tb - td - (306001 * te) / 10000); 3066 mm = int(te - 1); 3067 3068 if (mm > 12) { 3069 mm -= 12; 3070 } 3071 yy = int(tc - 4715); 3072 if (mm > 2) { 3073 yy--; 3074 } 3075 if (julian < 0) { 3076 yy -= int(100 * (1 - julian / 36525)); 3077 } 3078 } 3079 }