From 894615c6a634a9f0bee61db2e7b560279a4a1fec Mon Sep 17 00:00:00 2001 From: AngusGMorrison Date: Sun, 12 Nov 2023 20:08:39 +0000 Subject: [PATCH] Fix missing conversion to radians for nut prec coefficients --- .idea/.gitignore | 8 - .idea/copyright/Lox.xml | 6 - .idea/copyright/profiles_settings.xml | 3 - .idea/lox-space.iml | 21 - .idea/modules.xml | 8 - .idea/vcs.xml | 6 - crates/lox_core/src/bodies/planets.rs | 730 +++++++++++++---------- tools/lox_gen/src/rotational_elements.rs | 7 +- 8 files changed, 418 insertions(+), 371 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/copyright/Lox.xml delete mode 100644 .idea/copyright/profiles_settings.xml delete mode 100644 .idea/lox-space.iml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 13566b81..00000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/copyright/Lox.xml b/.idea/copyright/Lox.xml deleted file mode 100644 index 23676d50..00000000 --- a/.idea/copyright/Lox.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml deleted file mode 100644 index c174b948..00000000 --- a/.idea/copyright/profiles_settings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/.idea/lox-space.iml b/.idea/lox-space.iml deleted file mode 100644 index 7e2df88b..00000000 --- a/.idea/lox-space.iml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 8888da49..00000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1ddf..00000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/crates/lox_core/src/bodies/planets.rs b/crates/lox_core/src/bodies/planets.rs index d95631e4..7e45b6d7 100644 --- a/crates/lox_core/src/bodies/planets.rs +++ b/crates/lox_core/src/bodies/planets.rs @@ -34,18 +34,18 @@ impl Spheroid for Mercury { impl RotationalElements for Mercury { const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = ( &[ - 174.7910857f64, - 349.5821714f64, - 164.3732571f64, - 339.1643429f64, - 153.9554286f64, + 3.0506799486005773f64, + 6.101359897201155f64, + 2.868854538622146f64, + 5.919534488968053f64, + 2.6870291303890443f64, ] as &[f64], &[ - 149472.53587500003f64, - 298945.07175000006f64, - 448417.60762500006f64, - 597890.1435000001f64, - 747362.679375f64, + 2608.7878923240937f64, + 5217.575784648187f64, + 7826.363676972282f64, + 10435.151569296375f64, + 13043.939461620466f64, ] as &[f64], ); const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( @@ -128,23 +128,34 @@ impl Spheroid for Earth { impl RotationalElements for Earth { const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = ( &[ - 125.045f64, 250.089f64, 260.008f64, 176.625f64, 357.529f64, 311.589f64, 134.963f64, - 276.617f64, 34.226f64, 15.134f64, 119.743f64, 239.961f64, 25.053f64, + 2.1824469631563095f64, + 4.364876473020098f64, + 4.537995681525416f64, + 3.0826877913349846f64, + 6.240058221362807f64, + 5.438253962996612f64, + 2.355548718369107f64, + 4.827877416989155f64, + 0.5973563897875792f64, + 0.2641381289968218f64, + 2.0899096062155698f64, + 4.188109526378113f64, + 0.4372573375021394f64, ] as &[f64], &[ - -1935.5364525f64, - -3871.072905f64, - 475263.3328725f64, - 487269.629985f64, - 35999.0509575f64, - 964468.49931f64, - 477198.869325f64, - 12006.300765f64, - 63863.5132425f64, - -5806.6093575f64, - 131.84064f64, - 6003.1503825f64, - 473327.79642f64, + -33.781483888495835f64, + -67.56296777699167f64, + 8294.909972626925f64, + 8504.459388212737f64, + 628.3019668015924f64, + 16833.15084472816f64, + 8328.69145651542f64, + 209.54947933396397f64, + 1114.6285779726247f64, + -101.3444516654875f64, + 2.301053255936537f64, + 104.77473966698199f64, + 8261.12848873843f64, ] as &[f64], ); const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = @@ -184,85 +195,85 @@ impl Spheroid for Mars { impl RotationalElements for Mars { const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = ( &[ - 190.72646643f64, + 3.328804809897935f64, 0f64, - 31834.27934054f64, - 332.86082793f64, + 555.6129894920322f64, + 5.809517398292802f64, 0f64, - 38280.79631835f64, - 189.6327156f64, - 12.711923222f64, - 660.22803474f64, - 231.05028581f64, + 668.125936040531f64, + 3.3097152567180146f64, + 0.22186491448462606f64, + 11.523153020184504f64, + 4.032588225058434f64, 0f64, - 1320.50145245f64, - 217.98635955f64, + 23.047098122619843f64, + 3.8045796985836846f64, 0f64, - 19139.83628608f64, - 198.991226f64, + 334.05316148477937f64, + 3.4730520762801462f64, 0f64, - 38280.8511281f64, - 249.663391f64, + 668.1268926511307f64, + 4.357448194643978f64, 0f64, - 76560.636795f64, - 79.398797f64, + 1336.235189496269f64, + 1.3857704297725961f64, 0f64, - 19139.9407476f64, - 43.058401f64, + 334.054984682245f64, + 0.751510868094019f64, 0f64, - 57420.7517205f64, - 79.476401f64, + 1002.1811764929237f64, + 1.3871248750853138f64, 0f64, - 0.5042615f64, - 129.071773f64, + 0.008801023466045386f64, + 2.252727410236719f64, 0f64, - 38281.0473591f64, - 56.668646f64, + 668.130317528175f64, + 0.9890544553471146f64, 0f64, - 76560.2552215f64, - 104.79268f64, + 1336.2285297823557f64, + 1.8289772979888115f64, 0f64, - 0.5042615f64, + 0.008801023466045386f64, ] as &[f64], &[ - 15917.10818695f64, - 21.4689247f64, + 277.80594525842264f64, + 0.37470342287773584f64, 0f64, - 19139.89694742f64, - 394.93256437f64, + 334.05422022489097f64, + 6.892873571600945f64, 0f64, - 41215158.1842005f64, - 121.46893664f64, + 719340.2120445863f64, + 2.120032883264378f64, 0f64, - 660.9912354f64, - 251.37314025f64, + 11.536473384554899f64, + 4.387288948439982f64, 0f64, - 38279.9612555f64, - 196.19729402f64, + 668.1113614443373f64, + 3.424288764152381f64, 0f64, - 19139.4819985f64, - 226.292679f64, + 334.0469780000094f64, + 3.9495523217086292f64, 0f64, - 57420.7251593f64, - 266.18351f64, + 1002.1807129125305f64, + 4.645778664015252f64, 0f64, - 0.5042615f64, - 122.433576f64, + 0.008801023466045386f64, + 2.136869016190709f64, 0f64, - 38280.8753272f64, - 57.663379f64, + 668.1273150051017f64, + 1.0064158213753553f64, 0f64, - 76560.6495004f64, - 166.325722f64, + 1336.2354112473317f64, + 2.9029314796567682f64, 0f64, - 19140.0328244f64, - 36.352167f64, + 334.05659172556966f64, + 0.6344650043848296f64, 0f64, - 57420.929536f64, - 67.364003f64, + 1002.1842799588599f64, + 1.1757236496733376f64, 0f64, - 95700.4387578f64, - 95.391654f64, + 1670.2877519268022f64, + 1.664898441223219f64, 0f64, ] as &[f64], ); @@ -371,38 +382,38 @@ impl Spheroid for Jupiter { impl RotationalElements for Jupiter { const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = ( &[ - 73.32f64, - 24.62f64, - 283.9f64, - 355.8f64, - 119.9f64, - 229.8f64, - 352.25f64, - 113.35f64, - 146.64f64, - 49.24f64, - 99.360714f64, - 175.895369f64, - 300.323162f64, - 114.012305f64, - 49.511251f64, + 1.2796754075622423f64, + 0.42970006184100396f64, + 4.9549897464119015f64, + 6.2098814785958245f64, + 2.092649773141201f64, + 4.010766621082969f64, + 6.147922290150026f64, + 1.9783307071355725f64, + 2.5593508151244846f64, + 0.8594001236820079f64, + 1.734171606432425f64, + 3.0699533280603655f64, + 5.241627996900319f64, + 1.9898901100379935f64, + 0.864134346731335f64, ] as &[f64], &[ - 91472.9f64, - 45137.2f64, - 4850.7f64, - 1191.3f64, - 262.1f64, - 64.3f64, - 2382.6f64, - 6070f64, - 182945.8f64, - 90274.4f64, - 4850.4046f64, - 1191.9605f64, - 262.5475f64, - 6070.2476f64, - 64.3f64, + 1596.503281347521f64, + 787.7927551311844f64, + 84.66068602648895f64, + 20.792107379008446f64, + 4.574507969477138f64, + 1.1222467090323538f64, + 41.58421475801689f64, + 105.9414855960558f64, + 3193.006562695042f64, + 1575.5855102623689f64, + 84.65553032387855f64, + 20.80363527871787f64, + 4.582318317879813f64, + 105.94580703128374f64, + 1.1222467090323538f64, ] as &[f64], ); const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( @@ -481,17 +492,24 @@ impl Spheroid for Saturn { impl RotationalElements for Saturn { const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = ( &[ - 353.32f64, 28.72f64, 177.4f64, 300f64, 316.45f64, 345.2f64, 706.64f64, 57.44f64, + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, ] as &[f64], &[ - 75706.7f64, - 75706.7f64, - -36505.5f64, - -7225.9f64, - 506.2f64, - -1016.3f64, - 151413.4f64, - 151413.4f64, + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, ] as &[f64], ); const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( @@ -535,29 +553,44 @@ impl Spheroid for Uranus { impl RotationalElements for Uranus { const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = ( &[ - 115.75f64, 141.69f64, 135.03f64, 61.77f64, 249.32f64, 43.86f64, 77.66f64, 157.36f64, - 101.81f64, 138.64f64, 102.23f64, 316.41f64, 304.01f64, 308.71f64, 340.82f64, 259.14f64, - 204.46f64, 632.82f64, + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, ] as &[f64], &[ - 54991.87f64, - 41887.66f64, - 29927.35f64, - 25733.59f64, - 24471.46f64, - 22278.41f64, - 20289.42f64, - 16652.76f64, - 12872.63f64, - 8061.81f64, - -2024.22f64, - 2863.96f64, - -51.94f64, - -93.17f64, - -75.32f64, - -504.81f64, - -4048.44f64, - 5727.92f64, + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, ] as &[f64], ); const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = @@ -593,28 +626,42 @@ impl Spheroid for Neptune { impl RotationalElements for Neptune { const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = ( &[ - 357.85f64, 323.92f64, 220.51f64, 354.27f64, 75.31f64, 35.36f64, 142.61f64, 177.85f64, - 647.84f64, 355.7f64, 533.55f64, 711.4f64, 889.25f64, 1067.1f64, 1244.95f64, 1422.8f64, - 1600.65f64, + 6.245660728261709f64, + 5.653470513060032f64, + 3.848625533572696f64, + 6.183177941040311f64, + 1.3144074596769295f64, + 0.6171484235051949f64, + 2.4890140462691135f64, + 3.104068074671915f64, + 11.306941026120064f64, + 6.20813614934383f64, + 9.312204224015744f64, + 12.41627229868766f64, + 15.520340373359575f64, + 18.624408448031488f64, + 21.728476522703406f64, + 24.83254459737532f64, + 27.936612672047236f64, ] as &[f64], &[ - 52.316f64, - 62606.6f64, - 55064.2f64, - 46564.5f64, - 26109.4f64, - 14325.4f64, - 2824.6f64, - 52.316f64, - 125213.2f64, - 104.632f64, - 156.948f64, - 209.264f64, - 261.58f64, - 313.896f64, - 366.212f64, - 418.528f64, - 470.844f64, + 0.9130864514733535f64, + 1092.6913034790819f64, + 961.0515899766616f64, + 812.7038395448996f64, + 455.6949957202075f64, + 250.02539666519567f64, + 49.29857005183183f64, + 0.9130864514733535f64, + 2185.3826069581637f64, + 1.826172902946707f64, + 2.7392593544200605f64, + 3.652345805893414f64, + 4.565432257366767f64, + 5.478518708840121f64, + 6.391605160313474f64, + 7.304691611786828f64, + 8.21777806326018f64, ] as &[f64], ); const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( @@ -715,18 +762,18 @@ mod tests { assert_eq!( ( &[ - 174.7910857f64, - 349.5821714f64, - 164.3732571f64, - 339.1643429f64, - 153.9554286f64 + 3.0506799486005773f64, + 6.101359897201155f64, + 2.868854538622146f64, + 5.919534488968053f64, + 2.6870291303890443f64 ] as &[f64], &[ - 149472.53587500003f64, - 298945.07175000006f64, - 448417.60762500006f64, - 597890.1435000001f64, - 747362.679375f64 + 2608.7878923240937f64, + 5217.575784648187f64, + 7826.363676972282f64, + 10435.151569296375f64, + 13043.939461620466f64 ] as &[f64] ), Mercury::NUTATION_PRECESSION_COEFFICIENTS @@ -832,24 +879,34 @@ mod tests { assert_eq!( ( &[ - 125.045f64, 250.089f64, 260.008f64, 176.625f64, 357.529f64, 311.589f64, - 134.963f64, 276.617f64, 34.226f64, 15.134f64, 119.743f64, 239.961f64, - 25.053f64 + 2.1824469631563095f64, + 4.364876473020098f64, + 4.537995681525416f64, + 3.0826877913349846f64, + 6.240058221362807f64, + 5.438253962996612f64, + 2.355548718369107f64, + 4.827877416989155f64, + 0.5973563897875792f64, + 0.2641381289968218f64, + 2.0899096062155698f64, + 4.188109526378113f64, + 0.4372573375021394f64 ] as &[f64], &[ - -1935.5364525f64, - -3871.072905f64, - 475263.3328725f64, - 487269.629985f64, - 35999.0509575f64, - 964468.49931f64, - 477198.869325f64, - 12006.300765f64, - 63863.5132425f64, - -5806.6093575f64, - 131.84064f64, - 6003.1503825f64, - 473327.79642f64 + -33.781483888495835f64, + -67.56296777699167f64, + 8294.909972626925f64, + 8504.459388212737f64, + 628.3019668015924f64, + 16833.15084472816f64, + 8328.69145651542f64, + 209.54947933396397f64, + 1114.6285779726247f64, + -101.3444516654875f64, + 2.301053255936537f64, + 104.77473966698199f64, + 8261.12848873843f64 ] as &[f64] ), Earth::NUTATION_PRECESSION_COEFFICIENTS @@ -901,85 +958,85 @@ mod tests { assert_eq!( ( &[ - 190.72646643f64, + 3.328804809897935f64, 0f64, - 31834.27934054f64, - 332.86082793f64, + 555.6129894920322f64, + 5.809517398292802f64, 0f64, - 38280.79631835f64, - 189.6327156f64, - 12.711923222f64, - 660.22803474f64, - 231.05028581f64, + 668.125936040531f64, + 3.3097152567180146f64, + 0.22186491448462606f64, + 11.523153020184504f64, + 4.032588225058434f64, 0f64, - 1320.50145245f64, - 217.98635955f64, + 23.047098122619843f64, + 3.8045796985836846f64, 0f64, - 19139.83628608f64, - 198.991226f64, + 334.05316148477937f64, + 3.4730520762801462f64, 0f64, - 38280.8511281f64, - 249.663391f64, + 668.1268926511307f64, + 4.357448194643978f64, 0f64, - 76560.636795f64, - 79.398797f64, + 1336.235189496269f64, + 1.3857704297725961f64, 0f64, - 19139.9407476f64, - 43.058401f64, + 334.054984682245f64, + 0.751510868094019f64, 0f64, - 57420.7517205f64, - 79.476401f64, + 1002.1811764929237f64, + 1.3871248750853138f64, 0f64, - 0.5042615f64, - 129.071773f64, + 0.008801023466045386f64, + 2.252727410236719f64, 0f64, - 38281.0473591f64, - 56.668646f64, + 668.130317528175f64, + 0.9890544553471146f64, 0f64, - 76560.2552215f64, - 104.79268f64, + 1336.2285297823557f64, + 1.8289772979888115f64, 0f64, - 0.5042615f64 + 0.008801023466045386f64 ] as &[f64], &[ - 15917.10818695f64, - 21.4689247f64, + 277.80594525842264f64, + 0.37470342287773584f64, 0f64, - 19139.89694742f64, - 394.93256437f64, + 334.05422022489097f64, + 6.892873571600945f64, 0f64, - 41215158.1842005f64, - 121.46893664f64, + 719340.2120445863f64, + 2.120032883264378f64, 0f64, - 660.9912354f64, - 251.37314025f64, + 11.536473384554899f64, + 4.387288948439982f64, 0f64, - 38279.9612555f64, - 196.19729402f64, + 668.1113614443373f64, + 3.424288764152381f64, 0f64, - 19139.4819985f64, - 226.292679f64, + 334.0469780000094f64, + 3.9495523217086292f64, 0f64, - 57420.7251593f64, - 266.18351f64, + 1002.1807129125305f64, + 4.645778664015252f64, 0f64, - 0.5042615f64, - 122.433576f64, + 0.008801023466045386f64, + 2.136869016190709f64, 0f64, - 38280.8753272f64, - 57.663379f64, + 668.1273150051017f64, + 1.0064158213753553f64, 0f64, - 76560.6495004f64, - 166.325722f64, + 1336.2354112473317f64, + 2.9029314796567682f64, 0f64, - 19140.0328244f64, - 36.352167f64, + 334.05659172556966f64, + 0.6344650043848296f64, 0f64, - 57420.929536f64, - 67.364003f64, + 1002.1842799588599f64, + 1.1757236496733376f64, 0f64, - 95700.4387578f64, - 95.391654f64, + 1670.2877519268022f64, + 1.664898441223219f64, 0f64 ] as &[f64] ), @@ -1101,38 +1158,38 @@ mod tests { assert_eq!( ( &[ - 73.32f64, - 24.62f64, - 283.9f64, - 355.8f64, - 119.9f64, - 229.8f64, - 352.25f64, - 113.35f64, - 146.64f64, - 49.24f64, - 99.360714f64, - 175.895369f64, - 300.323162f64, - 114.012305f64, - 49.511251f64 + 1.2796754075622423f64, + 0.42970006184100396f64, + 4.9549897464119015f64, + 6.2098814785958245f64, + 2.092649773141201f64, + 4.010766621082969f64, + 6.147922290150026f64, + 1.9783307071355725f64, + 2.5593508151244846f64, + 0.8594001236820079f64, + 1.734171606432425f64, + 3.0699533280603655f64, + 5.241627996900319f64, + 1.9898901100379935f64, + 0.864134346731335f64 ] as &[f64], &[ - 91472.9f64, - 45137.2f64, - 4850.7f64, - 1191.3f64, - 262.1f64, - 64.3f64, - 2382.6f64, - 6070f64, - 182945.8f64, - 90274.4f64, - 4850.4046f64, - 1191.9605f64, - 262.5475f64, - 6070.2476f64, - 64.3f64 + 1596.503281347521f64, + 787.7927551311844f64, + 84.66068602648895f64, + 20.792107379008446f64, + 4.574507969477138f64, + 1.1222467090323538f64, + 41.58421475801689f64, + 105.9414855960558f64, + 3193.006562695042f64, + 1575.5855102623689f64, + 84.65553032387855f64, + 20.80363527871787f64, + 4.582318317879813f64, + 105.94580703128374f64, + 1.1222467090323538f64 ] as &[f64] ), Jupiter::NUTATION_PRECESSION_COEFFICIENTS @@ -1223,17 +1280,25 @@ mod tests { fn test_rotational_elements_nutation_precession_coefficients_699() { assert_eq!( ( - &[353.32f64, 28.72f64, 177.4f64, 300f64, 316.45f64, 345.2f64, 706.64f64, 57.44f64] - as &[f64], &[ - 75706.7f64, - 75706.7f64, - -36505.5f64, - -7225.9f64, - 506.2f64, - -1016.3f64, - 151413.4f64, - 151413.4f64 + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64 + ] as &[f64], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64 ] as &[f64] ), Saturn::NUTATION_PRECESSION_COEFFICIENTS @@ -1290,29 +1355,44 @@ mod tests { assert_eq!( ( &[ - 115.75f64, 141.69f64, 135.03f64, 61.77f64, 249.32f64, 43.86f64, 77.66f64, - 157.36f64, 101.81f64, 138.64f64, 102.23f64, 316.41f64, 304.01f64, 308.71f64, - 340.82f64, 259.14f64, 204.46f64, 632.82f64 + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64 ] as &[f64], &[ - 54991.87f64, - 41887.66f64, - 29927.35f64, - 25733.59f64, - 24471.46f64, - 22278.41f64, - 20289.42f64, - 16652.76f64, - 12872.63f64, - 8061.81f64, - -2024.22f64, - 2863.96f64, - -51.94f64, - -93.17f64, - -75.32f64, - -504.81f64, - -4048.44f64, - 5727.92f64 + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64 ] as &[f64] ), Uranus::NUTATION_PRECESSION_COEFFICIENTS @@ -1359,28 +1439,42 @@ mod tests { assert_eq!( ( &[ - 357.85f64, 323.92f64, 220.51f64, 354.27f64, 75.31f64, 35.36f64, 142.61f64, - 177.85f64, 647.84f64, 355.7f64, 533.55f64, 711.4f64, 889.25f64, 1067.1f64, - 1244.95f64, 1422.8f64, 1600.65f64 + 6.245660728261709f64, + 5.653470513060032f64, + 3.848625533572696f64, + 6.183177941040311f64, + 1.3144074596769295f64, + 0.6171484235051949f64, + 2.4890140462691135f64, + 3.104068074671915f64, + 11.306941026120064f64, + 6.20813614934383f64, + 9.312204224015744f64, + 12.41627229868766f64, + 15.520340373359575f64, + 18.624408448031488f64, + 21.728476522703406f64, + 24.83254459737532f64, + 27.936612672047236f64 ] as &[f64], &[ - 52.316f64, - 62606.6f64, - 55064.2f64, - 46564.5f64, - 26109.4f64, - 14325.4f64, - 2824.6f64, - 52.316f64, - 125213.2f64, - 104.632f64, - 156.948f64, - 209.264f64, - 261.58f64, - 313.896f64, - 366.212f64, - 418.528f64, - 470.844f64 + 0.9130864514733535f64, + 1092.6913034790819f64, + 961.0515899766616f64, + 812.7038395448996f64, + 455.6949957202075f64, + 250.02539666519567f64, + 49.29857005183183f64, + 0.9130864514733535f64, + 2185.3826069581637f64, + 1.826172902946707f64, + 2.7392593544200605f64, + 3.652345805893414f64, + 4.565432257366767f64, + 5.478518708840121f64, + 6.391605160313474f64, + 7.304691611786828f64, + 8.21777806326018f64 ] as &[f64] ), Neptune::NUTATION_PRECESSION_COEFFICIENTS diff --git a/tools/lox_gen/src/rotational_elements.rs b/tools/lox_gen/src/rotational_elements.rs index 0cc6cc8b..6d91d82c 100644 --- a/tools/lox_gen/src/rotational_elements.rs +++ b/tools/lox_gen/src/rotational_elements.rs @@ -262,7 +262,12 @@ impl GetPolynomialCoefficients for CoefficientKernel<'_> { })) } // Split the implicit pairs into two index-matched vecs. - Some(coefficients) => Ok(TokenizeableNutPrecCoefficients(unpair(coefficients))), + Some(coefficients) => { + let mut unpaired = unpair(coefficients); + unpaired.0.iter_mut().for_each(|c| *c = c.to_radians()); + unpaired.1.iter_mut().for_each(|c| *c = c.to_radians()); + Ok(TokenizeableNutPrecCoefficients(unpaired)) + } } } }