vsop87.cpp
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:512k
源码类别:

OpenGL

开发平台:

Visual C++

  1. // vsop87.cpp
  2. //
  3. // Copyright (C) 2002, Chris Laurel <claurel@shatters.net>
  4. //
  5. // Implementation of the VSOP87 theory for the the orbits of the
  6. // major planets.  The data is a truncated version of the complete
  7. // data set available here:
  8. // ftp://ftp.bdl.fr/pub/ephem/planets/vsop87/
  9. //
  10. // This program is free software; you can redistribute it and/or
  11. // modify it under the terms of the GNU General Public License
  12. // as published by the Free Software Foundation; either version 2
  13. // of the License, or (at your option) any later version.
  14. #include <cmath>
  15. #include <celmath/mathlib.h>
  16. #include <celengine/astro.h>
  17. #include <celengine/vsop87.h>
  18. using namespace std;
  19. struct VSOPTerm
  20. {
  21.     double A, B, C;
  22. };
  23. struct VSOPSeries
  24. {
  25.     VSOPSeries(VSOPTerm* _terms, int _nTerms) :
  26.         terms(_terms), nTerms(_nTerms) {};
  27.     VSOPTerm* terms;
  28.     int nTerms;
  29. };
  30. // Terms from the VSOP87 Planetary Theories
  31. // Bretagnon P., Francou G.
  32. // Astron. Astrophys. 202, 309 (1988)
  33. // Celestia uses a truncated version of VSOP87B (heliocentric
  34. // spherical variables) for planets and VSOP87E (barycentric
  35. // rectangular variables) for the Sun.
  36. //
  37. // The VSOP87 coefficients were downloaded from this site:
  38. // ftp://ftp.imcce.fr/pub/ephem/planets/vsop87/
  39. // They were processed with the tools vsoptrunc-rect and
  40. // vsoptrunc-sph. The source code for these tools is included
  41. // with the Celestia source package in the directory 
  42. // src/tools/vsop.
  43. static VSOPTerm mercury_L0[] = {
  44.     { 4.40250710144, 0, 0 },
  45.     { 0.40989414977, 1.48302034195, 26087.9031416 },
  46.     { 0.050462942, 4.47785489551, 52175.8062831 },
  47.     { 0.00855346844, 1.16520322459, 78263.7094247 },
  48.     { 0.00165590362, 4.11969163423, 104351.612566 },
  49.     { 0.00034561897, 0.77930768443, 130439.515708 },
  50.     { 7.583476e-05, 3.71348404924, 156527.418849 },
  51.     { 3.559745e-05, 1.51202675145, 1109.37855209 },
  52.     { 1.726011e-05, 0.35832267096, 182615.321991 },
  53.     { 1.803464e-05, 4.10333184211, 5661.33204915 },
  54.     { 1.364681e-05, 4.59918328256, 27197.2816937 },
  55.     { 1.589923e-05, 2.9951042356, 25028.5212114 },
  56.     { 1.017332e-05, 0.88031393824, 31749.2351907 },
  57.     { 7.14182e-06, 1.54144862493, 24978.5245895 },
  58.     { 6.43759e-06, 5.30266166599, 21535.9496445 },
  59.     { 4.042e-06, 3.28228953196, 208703.225133 },
  60.     { 3.52442e-06, 5.24156372447, 20426.5710924 },
  61.     { 3.43312e-06, 5.7653170387, 955.599741609 },
  62.     { 3.39215e-06, 5.86327825226, 25558.2121765 },
  63.     { 4.51137e-06, 6.04989282259, 51116.424353 },
  64.     { 3.25329e-06, 1.33674488758, 53285.1848352 },
  65.     { 2.59588e-06, 0.98732774234, 4551.95349706 },
  66.     { 3.45213e-06, 2.79211954198, 15874.6175954 },
  67.     { 2.72948e-06, 2.49451165014, 529.690965095 },
  68.     { 2.34831e-06, 0.26672019191, 11322.6640983 },
  69.     { 2.38793e-06, 0.113439144, 1059.38193019 },
  70.     { 2.64336e-06, 3.91705105199, 57837.1383323 },
  71.     { 2.16645e-06, 0.65987085507, 13521.7514416 },
  72.     { 1.83358e-06, 2.62878694178, 27043.5028832 },
  73.     { 1.75965e-06, 4.53636943501, 51066.4277311 },
  74.     { 1.81629e-06, 2.43413603252, 25661.3049507 },
  75.     { 2.08996e-06, 2.09178645677, 47623.8527861 },
  76.     { 1.72642e-06, 2.45200139206, 24498.8302463 },
  77.     { 1.42317e-06, 3.36004060149, 37410.5672399 },
  78.     { 1.37943e-06, 0.29098540695, 10213.2855462 },
  79.     { 1.18233e-06, 2.78149967294, 77204.3274945 },
  80.     { 9.686e-07, 6.20398934398, 234791.128274 },
  81.     { 1.25219e-06, 3.72079967668, 39609.6545832 },
  82.     { 8.6819e-07, 2.64218953915, 51646.1153181 },
  83.     { 8.6723e-07, 1.95952945936, 46514.474234 },
  84.     { 8.833e-07, 5.41338287192, 26617.5941067 },
  85.     { 1.06422e-06, 4.20572143374, 19804.8272916 },
  86.     { 8.9987e-07, 5.85243663953, 41962.5207369 },
  87.     { 8.497e-07, 4.33100839394, 79373.0879768 },
  88.     { 6.9247e-07, 4.19446500577, 19.6697608998 },
  89.     { 6.3462e-07, 3.14700988911, 7238.6755916 },
  90.     { 6.8493e-07, 0.63424913908, 83925.0414739 },
  91.     { 6.9728e-07, 3.57201999194, 25132.3034 },
  92.     { 5.9481e-07, 2.74692562834, 16983.9961475 },
  93.     { 6.483e-07, 0.04762450218, 33326.5787332 },
  94.     { 5.5377e-07, 4.05313774098, 30639.8566386 },
  95.     { 5.4443e-07, 3.14332489827, 27147.2850718 },
  96.     { 4.756e-07, 5.49722123456, 3.881335358 },
  97.     { 4.9567e-07, 3.98985799218, 6770.71060125 },
  98.     { 5.6532e-07, 5.11921332252, 73711.7559277 },
  99.     { 4.1764e-07, 5.64184020485, 53131.4060248 },
  100.     { 5.1459e-07, 5.4778679109, 50586.7333879 },
  101.     { 4.4745e-07, 1.22367821919, 77154.3308726 },
  102.     { 4.1882e-07, 5.19309331936, 6283.07584999 },
  103.     { 3.8045e-07, 2.43118010131, 12566.1517 },
  104.     { 3.5627e-07, 0.81389896255, 32858.6137428 },
  105.     { 4.8008e-07, 5.49260945754, 51749.2080923 },
  106.     { 3.5393e-07, 3.36964017301, 36301.1886878 },
  107.     { 3.3952e-07, 2.786179563, 14765.2390433 },
  108.     // 64 terms retained
  109. };
  110. static VSOPTerm mercury_L1[] = {
  111.     { 26087.9031369, 0, 0 },
  112.     { 0.01131199811, 6.21874197797, 26087.9031416 },
  113.     { 0.00292242298, 3.04449355541, 52175.8062831 },
  114.     { 0.00075775081, 6.08568821653, 78263.7094247 },
  115.     { 0.00019676525, 2.80965111777, 104351.612566 },
  116.     { 5.119883e-05, 5.79432353574, 130439.515708 },
  117.     { 1.336324e-05, 2.47909947012, 156527.418849 },
  118.     { 3.5223e-06, 3.05246348628, 1109.37855209 },
  119.     { 3.50236e-06, 5.43397743985, 182615.321991 },
  120.     { 9.3444e-07, 6.11761855456, 27197.2816937 },
  121.     { 9.0588e-07, 0.00053733031, 24978.5245895 },
  122.     { 9.2259e-07, 2.09530377053, 208703.225133 },
  123.     { 5.1943e-07, 5.62157845897, 5661.33204915 },
  124.     { 4.4343e-07, 4.57417248957, 25028.5212114 },
  125.     { 2.7651e-07, 3.03660330131, 51066.4277311 },
  126.     { 2.1994e-07, 0.8647518216, 955.599741609 },
  127.     { 2.0378e-07, 3.71392682666, 20426.5710924 },
  128.     { 2.0226e-07, 0.52020649631, 21535.9496445 },
  129.     { 2.4445e-07, 5.03171884876, 234791.128274 },
  130.     { 1.7507e-07, 5.72782246025, 4551.95349706 },
  131.     { 1.6673e-07, 1.34980149127, 529.690965095 },
  132.     { 1.5305e-07, 1.79227510901, 11322.6640983 },
  133.     { 1.5398e-07, 5.7425911966, 19.6697608998 },
  134.     { 1.396e-07, 3.59440619771, 24498.8302463 },
  135.     { 1.3163e-07, 2.71002769534, 53285.1848352 },
  136.     { 1.2621e-07, 3.89533871193, 3.881335358 },
  137.     { 1.2503e-07, 4.7013355234, 1059.38193019 },
  138.     { 7.967e-08, 4.1717547088, 26617.5941067 },
  139.     { 8.012e-08, 3.92669813128, 27043.5028832 },
  140.     { 7.703e-08, 0.4960922418, 46514.474234 },
  141.     { 7.496e-08, 2.4777465217, 57837.1383323 },
  142.     { 8.388e-08, 6.05157476676, 77154.3308726 },
  143.     { 6.84e-08, 2.7739372243, 7.1135470008 },
  144.     { 6.554e-08, 5.5349960828, 6770.71060125 },
  145.     { 5.846e-08, 4.28173811514, 16983.9961475 },
  146.     { 7.178e-08, 2.97769079034, 2218.75710419 },
  147.     { 6.358e-08, 2.13820928214, 25132.3034 },
  148.     { 5.879e-08, 2.19602452599, 13521.7514416 },
  149.     { 5.065e-08, 2.48292263185, 30639.8566386 },
  150.     { 6.517e-08, 1.67892400042, 260879.031416 },
  151.     { 4.85e-08, 4.84628981357, 37410.5672399 },
  152.     { 5.019e-08, 3.94203732877, 25661.3049507 },
  153.     { 4.392e-08, 1.54280887262, 27147.2850718 },
  154.     { 4.382e-08, 4.94443288387, 213.299095438 },
  155.     { 4.017e-08, 5.52771226937, 83925.0414739 },
  156.     { 4.299e-08, 5.08757395593, 10213.2855462 },
  157.     { 4.588e-08, 0.82044096381, 25558.2121765 },
  158.     // 47 terms retained
  159. };
  160. static VSOPTerm mercury_L2[] = {
  161.     { 0.00016395129, 4.67759555504, 26087.9031416 },
  162.     { 8.123865e-05, 1.40305644134, 52175.8062831 },
  163.     { 3.20817e-05, 4.49577853102, 78263.7094247 },
  164.     { 1.128209e-05, 1.27901273779, 104351.612566 },
  165.     { 8.77186e-06, 3.14159265359, 0 },
  166.     { 3.71058e-06, 4.31735787338, 130439.515708 },
  167.     { 1.16931e-06, 1.04943307731, 156527.418849 },
  168.     { 3.5802e-07, 4.0458725739, 182615.321991 },
  169.     { 1.4897e-07, 4.63345988506, 1109.37855209 },
  170.     { 1.0747e-07, 0.74352925179, 208703.225133 },
  171.     { 5.244e-08, 4.71804553686, 24978.5245895 },
  172.     { 3.182e-08, 3.71128464182, 234791.128274 },
  173.     { 2.547e-08, 1.43801901419, 27197.2816937 },
  174.     { 2.033e-08, 1.49538090708, 51066.4277311 },
  175.     // 14 terms retained
  176. };
  177. static VSOPTerm mercury_L3[] = {
  178.     { 1.69496e-06, 3.20221586818, 26087.9031416 },
  179.     { 1.55725e-06, 6.23814315369, 52175.8062831 },
  180.     { 9.0555e-07, 2.96712953186, 78263.7094247 },
  181.     { 4.2769e-07, 6.01870391709, 104351.612566 },
  182.     { 1.776e-07, 2.78750960026, 130439.515708 },
  183.     { 6.774e-08, 5.82756176337, 156527.418849 },
  184.     { 3.486e-08, 0, 0 },
  185.     { 2.435e-08, 2.56963684564, 182615.321991 },
  186.     { 8.38e-09, 5.58026725886, 208703.225133 },
  187.     // 9 terms retained
  188. };
  189. static VSOPTerm mercury_L4[] = {
  190.     { 2.671e-08, 4.76418299344, 52175.8062831 },
  191.     { 2.079e-08, 2.01782765964, 26087.9031416 },
  192.     { 2.071e-08, 1.47603650163, 78263.7094247 },
  193.     // 3 terms retained
  194. };
  195. static VSOPTerm mercury_L5[] = {
  196.     { 0, 0, 0 },
  197.     // 0 terms retained
  198. };
  199. static VSOPTerm mercury_B0[] = {
  200.     { 0.11737528961, 1.98357498767, 26087.9031416 },
  201.     { 0.02388076996, 5.03738959686, 52175.8062831 },
  202.     { 0.01222839532, 3.14159265359, 0 },
  203.     { 0.0054325181, 1.79644363964, 78263.7094247 },
  204.     { 0.0012977877, 4.83232503958, 104351.612566 },
  205.     { 0.00031866927, 1.58088495658, 130439.515708 },
  206.     { 7.963301e-05, 4.60972126127, 156527.418849 },
  207.     { 2.014189e-05, 1.35324164377, 182615.321991 },
  208.     { 5.13953e-06, 4.37835406663, 208703.225133 },
  209.     { 2.07674e-06, 4.91772567908, 27197.2816937 },
  210.     { 2.08584e-06, 2.02020295489, 24978.5245895 },
  211.     { 1.32013e-06, 1.11908482553, 234791.128274 },
  212.     { 1.00454e-06, 5.65684757892, 20426.5710924 },
  213.     { 1.21395e-06, 1.81271747279, 53285.1848352 },
  214.     { 9.1566e-07, 2.28163127292, 25028.5212114 },
  215.     { 9.9214e-07, 0.09391887897, 51116.424353 },
  216.     { 9.4574e-07, 1.2418492092, 31749.2351907 },
  217.     { 7.8785e-07, 4.40725881159, 57837.1383323 },
  218.     { 7.7747e-07, 0.52557074433, 1059.38193019 },
  219.     { 8.4264e-07, 5.08510405853, 51066.4277311 },
  220.     // 20 terms retained
  221. };
  222. static VSOPTerm mercury_B1[] = {
  223.     { 0.00274646065, 3.95008450011, 26087.9031416 },
  224.     { 0.00099737713, 3.14159265359, 0 },
  225.     { 0.00018772047, 0.05141288887, 78263.7094247 },
  226.     { 0.00023970726, 2.53272082947, 52175.8062831 },
  227.     { 8.097508e-05, 3.20946389315, 104351.612566 },
  228.     { 2.890729e-05, 0.00943621371, 130439.515708 },
  229.     { 9.49669e-06, 3.06780459575, 156527.418849 },
  230.     { 2.98013e-06, 6.11414444304, 182615.321991 },
  231.     { 9.0863e-07, 2.87023913203, 208703.225133 },
  232.     { 2.7163e-07, 5.90488705529, 234791.128274 },
  233.     { 2.4677e-07, 0.37210176608, 27197.2816937 },
  234.     { 1.6001e-07, 0.37499685422, 24978.5245895 },
  235.     { 1.1035e-07, 3.4885532911, 53285.1848352 },
  236.     { 8.004e-08, 2.65315026358, 260879.031416 },
  237.     { 8.817e-08, 3.46732763537, 51066.4277311 },
  238.     // 15 terms retained
  239. };
  240. static VSOPTerm mercury_B2[] = {
  241.     { 2.747165e-05, 5.24567337999, 26087.9031416 },
  242.     { 2.047257e-05, 0, 0 },
  243.     { 5.1603e-06, 0.49321133154, 52175.8062831 },
  244.     { 4.07309e-06, 4.32215500849, 78263.7094247 },
  245.     { 2.66936e-06, 1.42744634495, 104351.612566 },
  246.     { 1.33544e-06, 4.61055165903, 130439.515708 },
  247.     { 5.6956e-07, 1.44017544018, 156527.418849 },
  248.     { 2.2049e-07, 4.52127237069, 182615.321991 },
  249.     { 8.008e-08, 1.30182043008, 208703.225133 },
  250.     { 2.781e-08, 4.35468456951, 234791.128274 },
  251.     // 10 terms retained
  252. };
  253. static VSOPTerm mercury_B3[] = {
  254.     { 6.468e-07, 2.16518315874, 26087.9031416 },
  255.     { 3.0733e-07, 0, 0 },
  256.     { 1.8929e-07, 5.40870348072, 52175.8062831 },
  257.     { 9.797e-08, 2.41402344018, 78263.7094247 },
  258.     { 6.861e-08, 5.88312096876, 104351.612566 },
  259.     { 4.367e-08, 2.88362764626, 130439.515708 },
  260.     { 2.344e-08, 6.0558166462, 156527.418849 },
  261.     { 1.105e-08, 2.89178837278, 182615.321991 },
  262.     // 8 terms retained
  263. };
  264. static VSOPTerm mercury_B4[] = {
  265.     { 0, 0, 0 },
  266.     // 0 terms retained
  267. };
  268. static VSOPTerm mercury_B5[] = {
  269.     { 0, 0, 0 },
  270.     // 0 terms retained
  271. };
  272. static VSOPTerm mercury_R0[] = {
  273.     { 0.39528271651, 0, 0 },
  274.     { 0.07834131818, 6.19233722598, 26087.9031416 },
  275.     { 0.00795525558, 2.95989690104, 52175.8062831 },
  276.     { 0.00121281764, 6.01064153797, 78263.7094247 },
  277.     { 0.00021921969, 2.77820093972, 104351.612566 },
  278.     { 4.354065e-05, 5.82894543774, 130439.515708 },
  279.     { 9.18228e-06, 2.59650562845, 156527.418849 },
  280.     { 2.60033e-06, 3.02817753901, 27197.2816937 },
  281.     { 2.89955e-06, 1.42441937278, 25028.5212114 },
  282.     { 2.01855e-06, 5.64725040577, 182615.321991 },
  283.     { 2.01498e-06, 5.59227727403, 31749.2351907 },
  284.     { 1.4198e-06, 6.25264206514, 24978.5245895 },
  285.     { 1.00144e-06, 3.73435615066, 21535.9496445 },
  286.     { 7.7561e-07, 3.66972523786, 20426.5710924 },
  287.     { 6.3277e-07, 4.29905566028, 25558.2121765 },
  288.     { 6.2951e-07, 4.76588960835, 1059.38193019 },
  289.     { 6.6753e-07, 2.52520325806, 5661.33204915 },
  290.     { 7.55e-07, 4.47428643135, 51116.424353 },
  291.     { 4.8265e-07, 6.06824353565, 53285.1848352 },
  292.     { 4.5748e-07, 2.41480951848, 208703.225133 },
  293.     { 3.5224e-07, 1.05917819542, 27043.5028832 },
  294.     { 4.0815e-07, 2.35882025197, 57837.1383323 },
  295.     { 4.4235e-07, 1.21957279824, 15874.6175954 },
  296.     { 3.3873e-07, 0.86381554218, 25661.3049507 },
  297.     { 3.7203e-07, 0.51733923686, 47623.8527861 },
  298.     { 3.0092e-07, 1.79500457353, 37410.5672399 },
  299.     { 2.8417e-07, 3.02063623857, 51066.4277311 },
  300.     { 3.0903e-07, 0.88366672292, 24498.8302463 },
  301.     { 2.6105e-07, 2.15021962878, 39609.6545832 },
  302.     { 1.8699e-07, 4.96496134509, 11322.6640983 },
  303.     { 2.127e-07, 5.36857147632, 13521.7514416 },
  304.     { 1.9422e-07, 4.98378705281, 10213.2855462 },
  305.     { 1.6941e-07, 3.8876429506, 26617.5941067 },
  306.     { 1.5109e-07, 0.44510551618, 46514.474234 },
  307.     { 1.7087e-07, 1.24077744063, 77204.3274945 },
  308.     { 1.394e-07, 1.62574000931, 27147.2850718 },
  309.     { 1.3383e-07, 1.07656603755, 51646.1153181 },
  310.     { 1.5011e-07, 4.28173416255, 41962.5207369 },
  311.     { 1.3977e-07, 4.77056852962, 33326.5787332 },
  312.     { 1.2794e-07, 6.06436868672, 1109.37855209 },
  313.     { 1.3938e-07, 1.99984923769, 25132.3034 },
  314.     { 1.6297e-07, 2.63293566917, 19804.8272916 },
  315.     { 1.1932e-07, 2.36500445252, 4551.95349706 },
  316.     { 1.0612e-07, 5.46555459994, 234791.128274 },
  317.     { 1.2754e-07, 2.0761125081, 529.690965095 },
  318.     { 1.2068e-07, 2.84997457341, 79373.0879768 },
  319.     { 9.069e-08, 1.21263578152, 14765.2390433 },
  320.     { 9.491e-08, 0.83697019037, 12566.1517 },
  321.     { 9.38e-08, 5.41195321678, 83925.0414739 },
  322.     { 7.499e-08, 2.44636675464, 30639.8566386 },
  323.     { 7.463e-08, 5.53233826081, 32858.6137428 },
  324.     { 7.216e-08, 1.17101761775, 16983.9961475 },
  325.     { 8.492e-08, 3.56622963752, 73711.7559277 },
  326.     { 7.109e-08, 5.32625250539, 426.598190876 },
  327.     { 6.862e-08, 1.82314316379, 36301.1886878 },
  328.     // 55 terms retained
  329. };
  330. static VSOPTerm mercury_R1[] = {
  331.     { 0.0021734774, 4.65617158665, 26087.9031416 },
  332.     { 0.00044141826, 1.42385544001, 52175.8062831 },
  333.     { 0.00010094479, 4.47466326327, 78263.7094247 },
  334.     { 2.432805e-05, 1.24226083323, 104351.612566 },
  335.     { 1.624367e-05, 0, 0 },
  336.     { 6.03996e-06, 4.29303116468, 130439.515708 },
  337.     { 1.52851e-06, 1.06060778072, 156527.418849 },
  338.     { 3.9202e-07, 4.11136733071, 182615.321991 },
  339.     { 1.776e-07, 4.54424729034, 27197.2816937 },
  340.     { 1.7999e-07, 4.71193597233, 24978.5245895 },
  341.     { 1.0154e-07, 0.87893540982, 208703.225133 },
  342.     { 8.086e-08, 3.00540629863, 25028.5212114 },
  343.     // 12 terms retained
  344. };
  345. static VSOPTerm mercury_R2[] = {
  346.     { 3.117867e-05, 3.08231840294, 26087.9031416 },
  347.     { 1.245397e-05, 6.1518331681, 52175.8062831 },
  348.     { 4.24822e-06, 2.92583350003, 78263.7094247 },
  349.     { 1.3613e-06, 5.97983927257, 104351.612566 },
  350.     { 4.2176e-07, 2.74936984182, 130439.515708 },
  351.     { 2.1759e-07, 3.14159265359, 0 },
  352.     { 1.2794e-07, 5.80143158303, 156527.418849 },
  353.     { 3.825e-08, 2.56993470104, 182615.321991 },
  354.     // 8 terms retained
  355. };
  356. static VSOPTerm mercury_R3[] = {
  357.     { 3.2676e-07, 1.67971641967, 26087.9031416 },
  358.     { 2.4166e-07, 4.63403168878, 52175.8062831 },
  359.     { 1.2133e-07, 1.38983777816, 78263.7094247 },
  360.     { 5.141e-08, 4.43915486864, 104351.612566 },
  361.     { 1.981e-08, 1.20734065292, 130439.515708 },
  362.     { 1.46e-08, 3.14159265359, 0 },
  363.     // 6 terms retained
  364. };
  365. static VSOPTerm mercury_R4[] = {
  366.     { 0, 0, 0 },
  367.     // 0 terms retained
  368. };
  369. #if 0
  370. static VSOPTerm mercury_R5[] = {
  371.     { 0, 0, 0 },
  372.     // 0 terms retained
  373. };
  374. #endif
  375. static VSOPTerm venus_L0[] = {
  376.     { 3.17614666774, 0, 0 },
  377.     { 0.01353968419, 5.59313319619, 10213.2855462 },
  378.     { 0.00089891645, 5.30650047764, 20426.5710924 },
  379.     { 5.477194e-05, 4.41630661466, 7860.41939244 },
  380.     { 3.455741e-05, 2.6996444782, 11790.6290887 },
  381.     { 2.372061e-05, 2.99377542079, 3930.20969622 },
  382.     { 1.317168e-05, 5.18668228402, 26.2983197998 },
  383.     { 1.664146e-05, 4.25018630147, 1577.34354245 },
  384.     { 1.438387e-05, 4.15745084182, 9683.59458112 },
  385.     { 1.200521e-05, 6.15357116043, 30639.8566386 },
  386.     { 7.6138e-06, 1.95014701047, 529.690965095 },
  387.     { 7.07676e-06, 1.06466702668, 775.522611324 },
  388.     { 5.84836e-06, 3.9983988823, 191.448266112 },
  389.     { 7.69314e-06, 0.81629615196, 9437.76293489 },
  390.     { 4.99915e-06, 4.1234021282, 15720.8387849 },
  391.     { 3.26221e-06, 4.59056477038, 10404.7338123 },
  392.     { 4.29498e-06, 3.58642858577, 19367.1891622 },
  393.     { 3.26967e-06, 5.67736584311, 5507.55323867 },
  394.     { 2.31937e-06, 3.16251059356, 9153.90361602 },
  395.     { 1.79695e-06, 4.65337908917, 1109.37855209 },
  396.     { 1.28263e-06, 4.22604490814, 20.7753954924 },
  397.     { 1.55464e-06, 5.5704389169, 19651.0484811 },
  398.     { 1.27907e-06, 0.96209781904, 5661.33204915 },
  399.     { 1.05547e-06, 1.53721203088, 801.820931124 },
  400.     { 8.5722e-07, 0.3558924772, 3154.6870849 },
  401.     { 9.9121e-07, 0.83288208931, 213.299095438 },
  402.     { 9.8804e-07, 5.39389623302, 13367.9726311 },
  403.     { 8.2094e-07, 3.21597037872, 18837.4981971 },
  404.     { 8.8031e-07, 3.88868864136, 9999.98645077 },
  405.     { 7.1577e-07, 0.11145736657, 11015.1064773 },
  406.     { 5.6122e-07, 4.24039842051, 7.1135470008 },
  407.     { 7.0239e-07, 0.67458825333, 23581.2581773 },
  408.     { 5.0796e-07, 0.24531639097, 11322.6640983 },
  409.     { 4.6111e-07, 5.31576442737, 18073.7049387 },
  410.     { 4.4576e-07, 6.06281108312, 40853.1421848 },
  411.     { 4.2594e-07, 5.32873395426, 2352.86615377 },
  412.     { 4.2635e-07, 1.79955442721, 7084.89678112 },
  413.     { 4.1177e-07, 0.362410122, 382.896532223 },
  414.     // 38 terms retained
  415. };
  416. static VSOPTerm venus_L1[] = {
  417.     { 10213.2855462, 0, 0 },
  418.     { 0.00095617813, 2.4640651111, 10213.2855462 },
  419.     { 7.787201e-05, 0.6247848222, 20426.5710924 },
  420.     { 1.51666e-06, 6.10638559291, 1577.34354245 },
  421.     { 1.41694e-06, 2.12362986036, 30639.8566386 },
  422.     { 1.73908e-06, 2.65539499463, 26.2983197998 },
  423.     { 8.2235e-07, 5.70231469551, 191.448266112 },
  424.     { 6.9732e-07, 2.68128549229, 9437.76293489 },
  425.     { 5.2292e-07, 3.60270736876, 775.522611324 },
  426.     { 3.8313e-07, 1.03371309443, 529.690965095 },
  427.     { 2.963e-07, 1.25050823203, 5507.55323867 },
  428.     { 2.5056e-07, 6.1065063866, 10404.7338123 },
  429.     { 1.7772e-07, 6.19369679929, 1109.37855209 },
  430.     { 1.651e-07, 2.64360813203, 7.1135470008 },
  431.     { 1.4231e-07, 5.45125927817, 9153.90361602 },
  432.     { 1.1627e-07, 4.97604433638, 213.299095438 },
  433.     { 1.2563e-07, 1.88122194951, 382.896532223 },
  434.     { 8.877e-08, 0.95245393457, 13367.9726311 },
  435.     { 7.374e-08, 4.3947635255, 10206.1719992 },
  436.     { 6.55e-08, 2.28168331756, 2352.86615377 },
  437.     { 6.444e-08, 1.41156299643, 40853.1421848 },
  438.     { 6.269e-08, 4.08365791523, 3154.6870849 },
  439.     { 6.702e-08, 5.05916048534, 801.820931124 },
  440.     // 23 terms retained
  441. };
  442. static VSOPTerm venus_L2[] = {
  443.     { 3.894209e-05, 0.34823650721, 10213.2855462 },
  444.     { 5.95403e-06, 2.01456107998, 20426.5710924 },
  445.     { 2.87868e-06, 0, 0 },
  446.     { 2.3838e-07, 2.04588223604, 26.2983197998 },
  447.     { 9.964e-08, 3.97089333901, 775.522611324 },
  448.     { 7.196e-08, 3.65730119531, 30639.8566386 },
  449.     { 7.043e-08, 1.52107808192, 1577.34354245 },
  450.     { 6.014e-08, 1.00039990357, 191.448266112 },
  451.     { 3.167e-08, 4.36138169912, 9437.76293489 },
  452.     { 1.934e-08, 3.39260216059, 382.896532223 },
  453.     // 10 terms retained
  454. };
  455. static VSOPTerm venus_L3[] = {
  456.     { 1.36328e-06, 4.79698723753, 10213.2855462 },
  457.     { 3.0661e-07, 3.71663788064, 20426.5710924 },
  458.     { 3.041e-08, 3.14159265359, 0 },
  459.     // 3 terms retained
  460. };
  461. static VSOPTerm venus_L4[] = {
  462.     { 0, 0, 0 },
  463.     // 0 terms retained
  464. };
  465. static VSOPTerm venus_L5[] = {
  466.     { 0, 0, 0 },
  467.     // 0 terms retained
  468. };
  469. static VSOPTerm venus_B0[] = {
  470.     { 0.05923638472, 0.26702775812, 10213.2855462 },
  471.     { 0.00040107978, 1.14737178112, 20426.5710924 },
  472.     { 0.00032814918, 3.14159265359, 0 },
  473.     { 1.011392e-05, 1.0894611973, 30639.8566386 },
  474.     { 1.49458e-06, 6.25390268112, 18073.7049387 },
  475.     { 1.37788e-06, 0.86020095586, 1577.34354245 },
  476.     { 1.29973e-06, 3.67152480061, 9437.76293489 },
  477.     { 1.19507e-06, 3.70468787104, 2352.86615377 },
  478.     { 1.07971e-06, 4.53903678347, 22003.9146349 },
  479.     { 9.2029e-07, 1.53954519783, 9153.90361602 },
  480.     // 10 terms retained
  481. };
  482. static VSOPTerm venus_B1[] = {
  483.     { 0.00287821243, 1.88964962838, 10213.2855462 },
  484.     { 3.499578e-05, 3.71117560516, 20426.5710924 },
  485.     { 1.257844e-05, 0, 0 },
  486.     { 9.6152e-07, 2.74240664188, 30639.8566386 },
  487.     { 1.3051e-07, 2.27549606211, 9437.76293489 },
  488.     // 5 terms retained
  489. };
  490. static VSOPTerm venus_B2[] = {
  491.     { 0.00012657745, 3.34796457029, 10213.2855462 },
  492.     { 1.51225e-06, 0, 0 },
  493.     { 3.7476e-07, 5.34638962141, 20426.5710924 },
  494.     { 1.0627e-07, 3.81894300538, 30639.8566386 },
  495.     // 4 terms retained
  496. };
  497. static VSOPTerm venus_B3[] = {
  498.     { 3.76505e-06, 4.87650249694, 10213.2855462 },
  499.     { 1.2587e-07, 3.14159265359, 0 },
  500.     { 4.809e-08, 0.43423918018, 20426.5710924 },
  501.     // 3 terms retained
  502. };
  503. static VSOPTerm venus_B4[] = {
  504.     { 8.558e-08, 0.17181972054, 10213.2855462 },
  505.     // 1 terms retained
  506. };
  507. static VSOPTerm venus_B5[] = {
  508.     { 0, 0, 0 },
  509.     // 0 terms retained
  510. };
  511. static VSOPTerm venus_R0[] = {
  512.     { 0.72334820891, 0, 0 },
  513.     { 0.00489824182, 4.02151831717, 10213.2855462 },
  514.     { 1.658058e-05, 4.90206728031, 20426.5710924 },
  515.     { 1.632096e-05, 2.84548795207, 7860.41939244 },
  516.     { 1.378043e-05, 1.12846591367, 11790.6290887 },
  517.     { 4.98395e-06, 2.58682193892, 9683.59458112 },
  518.     { 3.73958e-06, 1.42314832858, 3930.20969622 },
  519.     { 2.63615e-06, 5.52938716941, 9437.76293489 },
  520.     { 2.37454e-06, 2.55136053886, 15720.8387849 },
  521.     { 2.21985e-06, 2.01346696541, 19367.1891622 },
  522.     { 1.19466e-06, 3.01975080538, 10404.7338123 },
  523.     { 1.25896e-06, 2.72769850819, 1577.34354245 },
  524.     { 7.6176e-07, 1.59574968674, 9153.90361602 },
  525.     { 8.5337e-07, 3.98598666191, 19651.0484811 },
  526.     { 7.4347e-07, 4.11957779786, 5507.55323867 },
  527.     { 4.1902e-07, 1.64282225331, 18837.4981971 },
  528.     { 4.2494e-07, 3.81864493274, 13367.9726311 },
  529.     { 3.9437e-07, 5.39018702243, 23581.2581773 },
  530.     { 2.9042e-07, 5.67739528728, 5661.33204915 },
  531.     { 2.7555e-07, 5.72392434415, 775.522611324 },
  532.     { 2.7288e-07, 4.8214049462, 11015.1064773 },
  533.     { 3.1274e-07, 2.31806719544, 9999.98645077 },
  534.     { 1.97e-07, 4.96157560246, 11322.6640983 },
  535.     { 1.9811e-07, 0.53189302682, 27511.4678735 },
  536.     { 1.3569e-07, 3.75536825122, 18073.7049387 },
  537.     { 1.2921e-07, 1.13381083556, 10206.1719992 },
  538.     { 1.6214e-07, 0.56446585474, 529.690965095 },
  539.     { 1.1828e-07, 5.0903796656, 3154.6870849 },
  540.     { 1.1729e-07, 0.23450811362, 7084.89678112 },
  541.     { 1.3066e-07, 5.24354222739, 17298.1823273 },
  542.     { 1.318e-07, 3.37207825651, 13745.346239 },
  543.     { 9.097e-08, 3.07004839111, 1109.37855209 },
  544.     { 1.0818e-07, 2.45024714924, 10239.583866 },
  545.     { 1.1434e-07, 4.56780914249, 29050.7837433 },
  546.     // 34 terms retained
  547. };
  548. static VSOPTerm venus_R1[] = {
  549.     { 0.00034551041, 0.89198706276, 10213.2855462 },
  550.     { 2.34203e-06, 1.77224942363, 20426.5710924 },
  551.     { 2.33998e-06, 3.14159265359, 0 },
  552.     { 2.3867e-07, 1.11270233944, 9437.76293489 },
  553.     // 4 terms retained
  554. };
  555. static VSOPTerm venus_R2[] = {
  556.     { 1.406587e-05, 5.06366395112, 10213.2855462 },
  557.     { 1.5529e-07, 5.47321056992, 20426.5710924 },
  558.     { 1.3059e-07, 0, 0 },
  559.     // 3 terms retained
  560. };
  561. static VSOPTerm venus_R3[] = {
  562.     { 4.9582e-07, 3.22264415899, 10213.2855462 },
  563.     // 1 terms retained
  564. };
  565. static VSOPTerm venus_R4[] = {
  566.     { 5.73e-09, 0.92253525592, 10213.2855462 },
  567.     // 1 terms retained
  568. };
  569. #if 0
  570. static VSOPTerm venus_R5[] = {
  571.     { 0, 0, 0 },
  572.     // 0 terms retained
  573. };
  574. #endif
  575. static VSOPTerm earth_L0[] = {
  576.     { 1.75347045673, 0, 0 },
  577.     { 0.03341656453, 4.66925680415, 6283.07584999 },
  578.     { 0.00034894275, 4.62610242189, 12566.1517 },
  579.     { 3.417572e-05, 2.82886579754, 3.523118349 },
  580.     { 3.497056e-05, 2.74411783405, 5753.3848849 },
  581.     { 3.135899e-05, 3.62767041756, 77713.7714681 },
  582.     { 2.676218e-05, 4.41808345438, 7860.41939244 },
  583.     { 2.342691e-05, 6.13516214446, 3930.20969622 },
  584.     { 1.273165e-05, 2.03709657878, 529.690965095 },
  585.     { 1.324294e-05, 0.74246341673, 11506.7697698 },
  586.     { 9.01854e-06, 2.04505446477, 26.2983197998 },
  587.     { 1.199167e-05, 1.10962946234, 1577.34354245 },
  588.     { 8.57223e-06, 3.50849152283, 398.149003408 },
  589.     { 7.79786e-06, 1.17882681962, 5223.6939198 },
  590.     { 9.9025e-06, 5.23268072088, 5884.92684658 },
  591.     { 7.53141e-06, 2.53339052847, 5507.55323867 },
  592.     { 5.05267e-06, 4.58292599973, 18849.22755 },
  593.     { 4.92392e-06, 4.20505711826, 775.522611324 },
  594.     { 3.56672e-06, 2.91954114478, 0.0673103028 },
  595.     { 2.84125e-06, 1.89869240932, 796.298006816 },
  596.     { 2.42879e-06, 0.34481445893, 5486.77784318 },
  597.     { 3.17087e-06, 5.84901948512, 11790.6290887 },
  598.     { 2.71112e-06, 0.31486255375, 10977.0788047 },
  599.     { 2.06217e-06, 4.80646631478, 2544.31441988 },
  600.     { 2.05478e-06, 1.86953770281, 5573.14280143 },
  601.     { 2.02318e-06, 2.45767790232, 6069.77675455 },
  602.     { 1.26225e-06, 1.08295459501, 20.7753954924 },
  603.     { 1.55516e-06, 0.83306084617, 213.299095438 },
  604.     { 1.15132e-06, 0.64544911683, 0.9803210682 },
  605.     { 1.02851e-06, 0.63599845579, 4694.00295471 },
  606.     { 1.01724e-06, 4.2667980198, 7.1135470008 },
  607.     { 9.9206e-07, 6.20992926918, 2146.16541648 },
  608.     { 1.32212e-06, 3.41118292683, 2942.46342329 },
  609.     { 9.7607e-07, 0.68101342359, 155.420399434 },
  610.     { 8.5128e-07, 1.29870764804, 6275.96230299 },
  611.     { 7.4651e-07, 1.755089133, 5088.62883977 },
  612.     { 1.01895e-06, 0.97569280312, 15720.8387849 },
  613.     { 8.4711e-07, 3.67080093031, 71430.6956181 },
  614.     { 7.3547e-07, 4.67926633877, 801.820931124 },
  615.     { 7.3874e-07, 3.50319414955, 3154.6870849 },
  616.     { 7.8757e-07, 3.03697458703, 12036.4607349 },
  617.     { 7.9637e-07, 1.80791287082, 17260.1546547 },
  618.     { 8.5803e-07, 5.9832263126, 161000.685738 },
  619.     { 5.6963e-07, 2.78430458592, 6286.59896834 },
  620.     { 6.1148e-07, 1.81839892984, 7084.89678112 },
  621.     { 6.9627e-07, 0.83297621398, 9437.76293489 },
  622.     { 5.6116e-07, 4.38694865354, 14143.4952424 },
  623.     { 6.2449e-07, 3.97763912806, 8827.39026987 },
  624.     { 5.1145e-07, 0.28306832879, 5856.47765912 },
  625.     { 5.5577e-07, 3.47006059924, 6279.55273164 },
  626.     { 4.1036e-07, 5.36817592855, 8429.24126647 },
  627.     { 5.1605e-07, 1.33282739866, 1748.01641307 },
  628.     { 5.1992e-07, 0.18914947184, 12139.5535091 },
  629.     { 4.9e-07, 0.48735014197, 1194.44701022 },
  630.     { 3.92e-07, 6.16833020996, 10447.3878396 },
  631.     { 3.557e-07, 1.775968892, 6812.76681509 },
  632.     { 3.677e-07, 6.04133863162, 10213.2855462 },
  633.     { 3.6596e-07, 2.56957481827, 1059.38193019 },
  634.     { 3.3296e-07, 0.59310278598, 17789.8456198 },
  635.     { 3.5954e-07, 1.70875808777, 2352.86615377 },
  636.     { 4.0938e-07, 2.39850938714, 19651.0484811 },
  637.     // 61 terms retained
  638. };
  639. static VSOPTerm earth_L1[] = {
  640.     { 6283.07584999, 0, 0 },
  641.     { 0.00206058863, 2.67823455808, 6283.07584999 },
  642.     { 4.303419e-05, 2.63512233481, 12566.1517 },
  643.     { 4.25264e-06, 1.59046982018, 3.523118349 },
  644.     { 1.09017e-06, 2.96631010675, 1577.34354245 },
  645.     { 9.3479e-07, 2.59211109542, 18849.22755 },
  646.     { 1.19305e-06, 5.79555765566, 26.2983197998 },
  647.     { 7.2121e-07, 1.13840581212, 529.690965095 },
  648.     { 6.7784e-07, 1.87453300345, 398.149003408 },
  649.     { 6.735e-07, 4.40932832004, 5507.55323867 },
  650.     { 5.9045e-07, 2.88815790631, 5223.6939198 },
  651.     { 5.5976e-07, 2.17471740035, 155.420399434 },
  652.     { 4.5411e-07, 0.39799502896, 796.298006816 },
  653.     { 3.6298e-07, 0.46875437227, 775.522611324 },
  654.     { 2.8962e-07, 2.64732254645, 7.1135470008 },
  655.     { 1.9097e-07, 1.84628376049, 5486.77784318 },
  656.     { 2.0844e-07, 5.34138275149, 0.9803210682 },
  657.     { 1.8508e-07, 4.96855179468, 213.299095438 },
  658.     { 1.6233e-07, 0.03216587315, 2544.31441988 },
  659.     { 1.7293e-07, 2.9911676063, 6275.96230299 },
  660.     { 1.5832e-07, 1.43049301283, 2146.16541648 },
  661.     { 1.4608e-07, 1.2046979369, 10977.0788047 },
  662.     { 1.1877e-07, 3.25805082007, 5088.62883977 },
  663.     { 1.1514e-07, 2.07502080082, 4694.00295471 },
  664.     { 9.721e-08, 4.2392586526, 1349.86740966 },
  665.     { 9.969e-08, 1.30263423409, 6286.59896834 },
  666.     { 9.452e-08, 2.69956827011, 242.728603974 },
  667.     { 1.2461e-07, 2.83432282119, 1748.01641307 },
  668.     { 1.1808e-07, 5.27379760438, 1194.44701022 },
  669.     { 8.577e-08, 5.6447608598, 951.718406251 },
  670.     { 1.0641e-07, 0.76614722966, 553.569402842 },
  671.     { 7.576e-08, 5.30056172859, 2352.86615377 },
  672.     { 5.764e-08, 1.77228445837, 1059.38193019 },
  673.     { 6.385e-08, 2.65034514038, 9437.76293489 },
  674.     { 5.223e-08, 5.66135782131, 71430.6956181 },
  675.     { 5.315e-08, 0.91110018969, 3154.6870849 },
  676.     { 6.101e-08, 4.66633726278, 4690.47983636 },
  677.     { 4.335e-08, 0.23934560382, 6812.76681509 },
  678.     { 5.041e-08, 1.42489704722, 6438.49624943 },
  679.     { 4.259e-08, 0.77355543889, 10447.3878396 },
  680.     { 5.2e-08, 1.85528830215, 801.820931124 },
  681.     // 41 terms retained
  682. };
  683. static VSOPTerm earth_L2[] = {
  684.     { 8.721859e-05, 1.07253635559, 6283.07584999 },
  685.     { 9.9099e-06, 3.14159265359, 0 },
  686.     { 2.94833e-06, 0.43717350256, 12566.1517 },
  687.     { 2.7338e-07, 0.05295636147, 3.523118349 },
  688.     { 1.6333e-07, 5.18820215724, 26.2983197998 },
  689.     { 1.5745e-07, 3.68504712183, 155.420399434 },
  690.     { 9.425e-08, 0.29667114694, 18849.22755 },
  691.     { 8.938e-08, 2.05706319592, 77713.7714681 },
  692.     { 6.94e-08, 0.82691541038, 775.522611324 },
  693.     { 5.061e-08, 4.6624323168, 1577.34354245 },
  694.     { 4.06e-08, 1.03067032318, 7.1135470008 },
  695.     { 3.464e-08, 5.14021224609, 796.298006816 },
  696.     { 3.172e-08, 6.05479318507, 5507.55323867 },
  697.     { 3.02e-08, 1.19240008524, 242.728603974 },
  698.     { 2.885e-08, 6.11705865396, 529.690965095 },
  699.     { 3.809e-08, 3.44043369494, 5573.14280143 },
  700.     { 2.719e-08, 0.30363248164, 398.149003408 },
  701.     { 2.365e-08, 4.37666117992, 5223.6939198 },
  702.     { 2.538e-08, 2.27966434314, 553.569402842 },
  703.     { 2.078e-08, 3.75435095487, 0.9803210682 },
  704.     { 1.675e-08, 0.90149951436, 951.718406251 },
  705.     { 1.534e-08, 5.75895831192, 1349.86740966 },
  706.     { 1.224e-08, 2.97285792195, 2146.16541648 },
  707.     { 1.449e-08, 4.36401639552, 1748.01641307 },
  708.     { 1.341e-08, 3.72019379666, 1194.44701022 },
  709.     { 1.253e-08, 2.9488872631, 6438.49624943 },
  710.     { 9.99e-09, 5.98665341008, 6286.59896834 },
  711.     // 27 terms retained
  712. };
  713. static VSOPTerm earth_L3[] = {
  714.     { 2.89058e-06, 5.84173149732, 6283.07584999 },
  715.     { 2.0712e-07, 6.0498393902, 12566.1517 },
  716.     { 2.962e-08, 5.1956057957, 155.420399434 },
  717.     { 2.527e-08, 3.14159265359, 0 },
  718.     { 1.288e-08, 4.7219761197, 3.523118349 },
  719.     // 5 terms retained
  720. };
  721. static VSOPTerm earth_L4[] = {
  722.     { 7.714e-08, 4.14117321449, 6283.07584999 },
  723.     // 1 terms retained
  724. };
  725. static VSOPTerm earth_L5[] = {
  726.     { 0, 0, 0 },
  727.     // 0 terms retained
  728. };
  729. static VSOPTerm earth_B0[] = {
  730.     { 2.7962e-06, 3.19870156017, 84334.6615813 },
  731.     // 1 terms retained
  732. };
  733. static VSOPTerm earth_B1[] = {
  734.     { 0.00227777722, 3.4137662053, 6283.07584999 },
  735.     { 3.805678e-05, 3.37063423795, 12566.1517 },
  736.     { 3.619589e-05, 0, 0 },
  737.     { 7.1542e-07, 3.32777549735, 18849.22755 },
  738.     // 4 terms retained
  739. };
  740. static VSOPTerm earth_B2[] = {
  741.     { 9.721424e-05, 5.1519280992, 6283.07584999 },
  742.     { 2.33002e-06, 3.14159265359, 0 },
  743.     { 1.34188e-06, 0.64406212977, 12566.1517 },
  744.     { 6.504e-08, 1.07333397797, 18849.22755 },
  745.     // 4 terms retained
  746. };
  747. #if 0
  748. static VSOPTerm earth_B3[] = {
  749.     { 2.75993e-06, 0.59480097092, 6283.07584999 },
  750.     { 1.7034e-07, 3.14159265359, 0 },
  751.     { 3.617e-08, 0.11750575325, 12566.1517 },
  752.     // 3 terms retained
  753. };
  754. #endif
  755. #if 0
  756. static VSOPTerm earth_B4[] = {
  757.     { 5.745e-08, 2.26734029843, 6283.07584999 },
  758.     // 1 terms retained
  759. };
  760. #endif
  761. #if 0
  762. static VSOPTerm earth_B5[] = {
  763.     { 0, 0, 0 },
  764.     // 0 terms retained
  765. };
  766. #endif
  767. static VSOPTerm earth_R0[] = {
  768.     { 1.00013988784, 0, 0 },
  769.     { 0.01670699632, 3.09846350258, 6283.07584999 },
  770.     { 0.00013956024, 3.05524609456, 12566.1517 },
  771.     { 3.08372e-05, 5.19846674381, 77713.7714681 },
  772.     { 1.628463e-05, 1.17387558054, 5753.3848849 },
  773.     { 1.575572e-05, 2.84685214877, 7860.41939244 },
  774.     { 9.24799e-06, 5.45292236722, 11506.7697698 },
  775.     { 5.42439e-06, 4.56409151453, 3930.20969622 },
  776.     { 4.7211e-06, 3.66100022149, 5884.92684658 },
  777.     { 3.2878e-06, 5.89983686142, 5223.6939198 },
  778.     { 3.45969e-06, 0.96368627272, 5507.55323867 },
  779.     { 3.06784e-06, 0.29867139512, 5573.14280143 },
  780.     { 1.74844e-06, 3.01193636733, 18849.22755 },
  781.     { 2.43181e-06, 4.2734953079, 11790.6290887 },
  782.     { 2.11836e-06, 5.84714461348, 1577.34354245 },
  783.     { 1.8574e-06, 5.02199710705, 10977.0788047 },
  784.     { 1.09835e-06, 5.0551063586, 5486.77784318 },
  785.     { 9.8316e-07, 0.88681311278, 6069.77675455 },
  786.     { 8.65e-07, 5.68956418946, 15720.8387849 },
  787.     { 8.5831e-07, 1.27079125277, 161000.685738 },
  788.     { 6.2917e-07, 0.92177053978, 529.690965095 },
  789.     { 5.7056e-07, 2.01374292245, 83996.8473181 },
  790.     { 6.4908e-07, 0.27251341435, 17260.1546547 },
  791.     { 4.9384e-07, 3.24501240359, 2544.31441988 },
  792.     { 5.5736e-07, 5.2415979917, 71430.6956181 },
  793.     { 4.252e-07, 6.01110257982, 6275.96230299 },
  794.     { 4.6966e-07, 2.57799853213, 775.522611324 },
  795.     { 3.8963e-07, 5.36063832897, 4694.00295471 },
  796.     { 4.4666e-07, 5.53715663816, 9437.76293489 },
  797.     { 3.5661e-07, 1.67447135798, 12036.4607349 },
  798.     { 3.1922e-07, 0.18368299942, 5088.62883977 },
  799.     { 3.1846e-07, 1.77775642078, 398.149003408 },
  800.     { 3.3193e-07, 0.24370221704, 7084.89678112 },
  801.     { 3.8245e-07, 2.39255343973, 8827.39026987 },
  802.     { 2.8468e-07, 1.21344887533, 6286.59896834 },
  803.     { 3.7486e-07, 0.82961281844, 19651.0484811 },
  804.     { 3.6957e-07, 4.90107587287, 12139.5535091 },
  805.     { 3.4537e-07, 1.84270693281, 2942.46342329 },
  806.     { 2.6275e-07, 4.58896863104, 10447.3878396 },
  807.     { 2.4596e-07, 3.78660838036, 8429.24126647 },
  808.     { 2.3587e-07, 0.26866098169, 796.298006816 },
  809.     { 2.7795e-07, 1.89934427832, 6279.55273164 },
  810.     { 2.3927e-07, 4.99598548145, 5856.47765912 },
  811.     { 2.0345e-07, 4.65282190725, 2146.16541648 },
  812.     { 2.3287e-07, 2.80783632869, 14143.4952424 },
  813.     { 2.2099e-07, 1.95002636847, 3154.6870849 },
  814.     { 1.9509e-07, 5.38233922479, 2352.86615377 },
  815.     { 1.7958e-07, 0.1987136996, 6812.76681509 },
  816.     { 1.7178e-07, 4.43322156854, 10213.2855462 },
  817.     { 1.619e-07, 5.23159323213, 17789.8456198 },
  818.     { 1.7315e-07, 6.15224075188, 16730.4636896 },
  819.     { 1.3814e-07, 5.18962074032, 8031.09226306 },
  820.     { 1.8834e-07, 0.67280058021, 149854.400135 },
  821.     { 1.833e-07, 2.25348717053, 23581.2581773 },
  822.     { 1.3639e-07, 3.68511810757, 4705.73230754 },
  823.     { 1.3142e-07, 0.65267698994, 13367.9726311 },
  824.     { 1.0414e-07, 4.33285688501, 11769.8536932 },
  825.     { 9.978e-08, 4.20126336356, 6309.37416979 },
  826.     { 1.017e-07, 1.59366684542, 4690.47983636 },
  827.     { 7.564e-08, 2.62560597391, 6256.77753019 },
  828.     { 9.654e-08, 3.67583728703, 27511.4678735 },
  829.     { 6.743e-08, 0.56269927047, 3340.6124267 },
  830.     { 8.743e-08, 6.06359123461, 1748.01641307 },
  831.     { 7.786e-08, 3.67371235367, 12168.0026966 },
  832.     { 6.633e-08, 5.66149277789, 11371.7046898 },
  833.     { 7.712e-08, 0.31242577788, 7632.94325965 },
  834.     { 6.586e-08, 3.13580054586, 801.820931124 },
  835.     { 7.46e-08, 5.6475806666, 11926.2544137 },
  836.     { 6.933e-08, 2.92384586372, 6681.2248534 },
  837.     { 6.805e-08, 1.42327153767, 23013.5395396 },
  838.     { 6.118e-08, 5.13395999022, 1194.44701022 },
  839.     { 6.477e-08, 2.64986648493, 19804.8272916 },
  840.     // 72 terms retained
  841. };
  842. static VSOPTerm earth_R1[] = {
  843.     { 0.00103018607, 1.10748968172, 6283.07584999 },
  844.     { 1.721238e-05, 1.06442300386, 12566.1517 },
  845.     { 7.02217e-06, 3.14159265359, 0 },
  846.     { 3.2345e-07, 1.02168583254, 18849.22755 },
  847.     { 3.0801e-07, 2.84358443952, 5507.55323867 },
  848.     { 2.4978e-07, 1.31906570344, 5223.6939198 },
  849.     { 1.8487e-07, 1.42428709076, 1577.34354245 },
  850.     { 1.0077e-07, 5.91385248388, 10977.0788047 },
  851.     { 8.635e-08, 0.27158192945, 5486.77784318 },
  852.     { 8.654e-08, 1.42046854427, 6275.96230299 },
  853.     // 10 terms retained
  854. };
  855. static VSOPTerm earth_R2[] = {
  856.     { 4.359385e-05, 5.78455133808, 6283.07584999 },
  857.     { 1.23633e-06, 5.57935427994, 12566.1517 },
  858.     { 1.2342e-07, 3.14159265359, 0 },
  859.     { 8.792e-08, 3.62777893099, 77713.7714681 },
  860.     { 5.689e-08, 1.86958905084, 5573.14280143 },
  861.     { 3.302e-08, 5.47034879713, 18849.22755 },
  862.     // 6 terms retained
  863. };
  864. static VSOPTerm earth_R3[] = {
  865.     { 1.44595e-06, 4.27319433901, 6283.07584999 },
  866.     { 6.729e-08, 3.91706261708, 12566.1517 },
  867.     // 2 terms retained
  868. };
  869. static VSOPTerm earth_R4[] = {
  870.     { 3.858e-08, 2.56389016346, 6283.07584999 },
  871.     // 1 terms retained
  872. };
  873. static VSOPTerm earth_R5[] = {
  874.     { 0, 0, 0 },
  875.     // 0 terms retained
  876. };
  877. static VSOPTerm mars_L0[] = {
  878.     { 6.20347711581, 0, 0 },
  879.     { 0.18656368093, 5.0503710027, 3340.6124267 },
  880.     { 0.01108216816, 5.40099836344, 6681.2248534 },
  881.     { 0.00091798406, 5.75478744667, 10021.8372801 },
  882.     { 0.00027744987, 5.97049513147, 3.523118349 },
  883.     { 0.00010610235, 2.93958560338, 2281.23049651 },
  884.     { 0.00012315897, 0.84956094002, 2810.92146161 },
  885.     { 8.926784e-05, 4.15697846427, 0.0172536522 },
  886.     { 8.715691e-05, 6.11005153139, 13362.4497068 },
  887.     { 6.797556e-05, 0.36462229657, 398.149003408 },
  888.     { 7.774872e-05, 3.33968761376, 5621.84292321 },
  889.     { 3.575078e-05, 1.6618650571, 2544.31441988 },
  890.     { 4.161108e-05, 0.22814971327, 2942.46342329 },
  891.     { 3.075252e-05, 0.85696614132, 191.448266112 },
  892.     { 2.628117e-05, 0.64806124465, 3337.08930835 },
  893.     { 2.937546e-05, 6.07893711402, 0.0673103028 },
  894.     { 2.389414e-05, 5.03896442664, 796.298006816 },
  895.     { 2.579844e-05, 0.02996736156, 3344.13554505 },
  896.     { 1.528141e-05, 1.14979301996, 6151.5338883 },
  897.     { 1.798806e-05, 0.65634057445, 529.690965095 },
  898.     { 1.264357e-05, 3.62275122593, 5092.15195812 },
  899.     { 1.286228e-05, 3.06796065034, 2146.16541648 },
  900.     { 1.546404e-05, 2.91579701718, 1751.53953142 },
  901.     { 1.024902e-05, 3.69334099279, 8962.45534991 },
  902.     { 8.91566e-06, 0.18293837498, 16703.0621335 },
  903.     { 8.58759e-06, 2.4009381194, 2914.01423582 },
  904.     { 8.32715e-06, 2.46418619474, 3340.59517305 },
  905.     { 8.3272e-06, 4.49495782139, 3340.62968035 },
  906.     { 7.12902e-06, 3.66335473479, 1059.38193019 },
  907.     { 7.48723e-06, 3.82248614017, 155.420399434 },
  908.     { 7.23861e-06, 0.67497311481, 3738.76143011 },
  909.     { 6.35548e-06, 2.92182225127, 8432.76438482 },
  910.     { 6.55162e-06, 0.48864064125, 3127.31333126 },
  911.     { 5.50474e-06, 3.81001042328, 0.9803210682 },
  912.     { 5.5275e-06, 4.47479317037, 1748.01641307 },
  913.     { 4.25966e-06, 0.55364317304, 6283.07584999 },
  914.     { 4.15131e-06, 0.49662285038, 213.299095438 },
  915.     { 4.72167e-06, 3.62547124025, 1194.44701022 },
  916.     { 3.06551e-06, 0.38052848348, 6684.74797175 },
  917.     { 3.12141e-06, 0.99853944405, 6677.70173505 },
  918.     { 2.93198e-06, 4.22131299634, 20.7753954924 },
  919.     { 3.02375e-06, 4.48618007156, 3532.06069281 },
  920.     { 2.74027e-06, 0.54222167059, 3340.5451164 },
  921.     { 2.81079e-06, 5.88163521788, 1349.86740966 },
  922.     { 2.31183e-06, 1.28242156993, 3870.30339179 },
  923.     { 2.83602e-06, 5.7688543494, 3149.16416059 },
  924.     { 2.36117e-06, 5.75503217933, 3333.4988797 },
  925.     { 2.74033e-06, 0.13372524985, 3340.679737 },
  926.     { 2.99395e-06, 2.78323740866, 6254.62666252 },
  927.     { 2.04162e-06, 2.82133445874, 1221.84856632 },
  928.     { 2.38866e-06, 5.37153646326, 4136.91043352 },
  929.     { 1.88648e-06, 1.4910406604, 9492.146315 },
  930.     { 2.21228e-06, 3.50466812198, 382.896532223 },
  931.     { 1.79196e-06, 1.00561962003, 951.718406251 },
  932.     { 1.72117e-06, 0.43943649536, 5486.77784318 },
  933.     { 1.93118e-06, 3.35716641911, 3.5904286518 },
  934.     { 1.44304e-06, 1.41874112114, 135.065080035 },
  935.     { 1.60016e-06, 3.94857092451, 4562.46099302 },
  936.     { 1.74072e-06, 2.41361337725, 553.569402842 },
  937.     { 1.30989e-06, 4.04491134956, 12303.0677766 },
  938.     { 1.38243e-06, 4.30145122848, 7.1135470008 },
  939.     { 1.28062e-06, 1.8066581622, 5088.62883977 },
  940.     { 1.39898e-06, 3.32595559208, 2700.71514039 },
  941.     { 1.28105e-06, 2.20807538189, 1592.59601363 },
  942.     { 1.16944e-06, 3.12806863456, 7903.07341972 },
  943.     { 1.10378e-06, 1.05194545948, 242.728603974 },
  944.     { 1.13481e-06, 3.70070432339, 1589.07289528 },
  945.     { 1.00099e-06, 3.24340223714, 11773.3768115 },
  946.     { 9.5594e-07, 0.53950648295, 20043.6745602 },
  947.     { 9.8947e-07, 4.84558326403, 6681.24210705 },
  948.     { 1.04542e-06, 0.78532737699, 8827.39026987 },
  949.     { 8.4186e-07, 3.98971116025, 4399.99435689 },
  950.     { 8.6928e-07, 2.20183965407, 11243.6858464 },
  951.     { 7.1438e-07, 2.80307223477, 3185.19202727 },
  952.     { 7.2095e-07, 5.84669532401, 5884.92684658 },
  953.     { 7.3482e-07, 2.18421190324, 8429.24126647 },
  954.     { 9.8946e-07, 2.81481171439, 6681.20759975 },
  955.     { 6.8413e-07, 2.73834597183, 2288.34404351 },
  956.     { 8.6747e-07, 1.02091867465, 7079.37385681 },
  957.     { 6.5316e-07, 2.68114882713, 28.4491874678 },
  958.     { 8.3745e-07, 3.20254912006, 4690.47983636 },
  959.     { 7.5031e-07, 0.76647765061, 6467.92575796 },
  960.     { 6.8983e-07, 3.76403440528, 6041.32756709 },
  961.     { 6.6706e-07, 0.73630288873, 3723.50895892 },
  962.     { 6.3313e-07, 4.5277185022, 426.598190876 },
  963.     { 6.1684e-07, 6.16831461502, 2274.11694951 },
  964.     { 5.226e-07, 0.89938935091, 9623.68827669 },
  965.     { 5.5485e-07, 4.60622447136, 4292.33083295 },
  966.     { 5.1331e-07, 4.14823934301, 3341.59274777 },
  967.     { 5.6633e-07, 5.06250402329, 15.252471185 },
  968.     { 6.3376e-07, 0.91293637746, 3553.91152214 },
  969.     { 4.5822e-07, 0.78790300125, 1990.74501704 },
  970.     { 4.8553e-07, 3.95677994023, 4535.05943692 },
  971.     { 4.1223e-07, 6.02013764154, 3894.18182954 },
  972.     { 4.1941e-07, 3.58309124437, 8031.09226306 },
  973.     { 5.6395e-07, 1.68727941626, 6872.67311951 },
  974.     { 5.5907e-07, 3.46261441099, 263.083923373 },
  975.     { 5.1677e-07, 2.81307639242, 3339.63210563 },
  976.     { 4.0669e-07, 3.13838566327, 9595.23908922 },
  977.     { 3.8111e-07, 0.73396370751, 10025.3603984 },
  978.     { 3.9498e-07, 5.6322574136, 3097.88382273 },
  979.     { 4.4175e-07, 3.19530118759, 5628.95647021 },
  980.     { 3.6718e-07, 2.63750919104, 692.157601227 },
  981.     { 4.5905e-07, 0.28717581576, 5614.72937621 },
  982.     { 3.8351e-07, 5.82880639987, 3191.04922957 },
  983.     { 3.8198e-07, 2.34832438823, 162.466636132 },
  984.     { 3.2561e-07, 0.48401318272, 6681.2921637 },
  985.     { 3.7135e-07, 0.68510839331, 2818.03500861 },
  986.     { 3.1169e-07, 3.98160436995, 20.3553193988 },
  987.     { 3.2561e-07, 0.89250965753, 6681.1575431 },
  988.     { 3.7749e-07, 4.15481250779, 2803.8079146 },
  989.     { 3.3626e-07, 6.11997987693, 6489.77658729 },
  990.     { 2.9007e-07, 2.42707198395, 3319.83703121 },
  991.     { 3.8794e-07, 1.35194224244, 10018.3141618 },
  992.     { 3.3149e-07, 1.140241952, 5.5229243074 },
  993.     { 2.7583e-07, 1.59721760699, 7210.91581849 },
  994.     { 2.8699e-07, 5.7204755094, 7477.52286022 },
  995.     { 3.4039e-07, 2.59525636978, 11769.8536932 },
  996.     { 2.538e-07, 0.52092092633, 10.6366653498 },
  997.     { 2.6355e-07, 1.34519007001, 3496.03282613 },
  998.     { 2.4555e-07, 4.00321315879, 11371.7046898 },
  999.     { 2.5637e-07, 0.24963503109, 522.577418094 },
  1000.     { 2.7275e-07, 4.55649766071, 3361.38782219 },
  1001.     { 2.3766e-07, 1.84063759173, 12832.7587417 },
  1002.     { 2.2814e-07, 3.52628452806, 1648.4467572 },
  1003.     { 2.2272e-07, 0.72111173236, 266.607041722 },
  1004.     // 126 terms retained
  1005. };
  1006. static VSOPTerm mars_L1[] = {
  1007.     { 3340.61242701, 0, 0 },
  1008.     { 0.01457554523, 3.60433733236, 3340.6124267 },
  1009.     { 0.00168414711, 3.92318567804, 6681.2248534 },
  1010.     { 0.00020622975, 4.26108844583, 10021.8372801 },
  1011.     { 3.452392e-05, 4.7321039319, 3.523118349 },
  1012.     { 2.586332e-05, 4.60670058555, 13362.4497068 },
  1013.     { 8.41535e-06, 4.45864030426, 2281.23049651 },
  1014.     { 5.37567e-06, 5.01581256923, 398.149003408 },
  1015.     { 5.20948e-06, 4.99428054039, 3344.13554505 },
  1016.     { 4.32635e-06, 2.56070853083, 191.448266112 },
  1017.     { 4.29655e-06, 5.31645299471, 155.420399434 },
  1018.     { 3.81751e-06, 3.53878166043, 796.298006816 },
  1019.     { 3.2853e-06, 4.95632685192, 16703.0621335 },
  1020.     { 2.82795e-06, 3.15966768785, 2544.31441988 },
  1021.     { 2.05657e-06, 4.56889279932, 2146.16541648 },
  1022.     { 1.68866e-06, 1.3293655906, 3337.08930835 },
  1023.     { 1.57593e-06, 4.18519540728, 1751.53953142 },
  1024.     { 1.33686e-06, 2.23327245555, 0.9803210682 },
  1025.     { 1.16965e-06, 2.21414273762, 1059.38193019 },
  1026.     { 1.17503e-06, 6.02411290806, 6151.5338883 },
  1027.     { 1.13718e-06, 5.42753341019, 3738.76143011 },
  1028.     { 1.33565e-06, 5.97420357518, 1748.01641307 },
  1029.     { 9.1099e-07, 1.09626613064, 1349.86740966 },
  1030.     { 8.4256e-07, 5.29330740437, 6684.74797175 },
  1031.     { 1.13886e-06, 2.12863726524, 1194.44701022 },
  1032.     { 8.0823e-07, 4.42818326716, 529.690965095 },
  1033.     { 7.9847e-07, 2.24822372859, 8962.45534991 },
  1034.     { 7.2505e-07, 5.84203374239, 242.728603974 },
  1035.     { 7.2945e-07, 2.50193599662, 951.718406251 },
  1036.     { 7.149e-07, 3.85645759558, 2914.01423582 },
  1037.     { 8.534e-07, 3.90856932983, 553.569402842 },
  1038.     { 6.758e-07, 5.0233489507, 382.896532223 },
  1039.     { 6.506e-07, 1.01810963274, 3340.59517305 },
  1040.     { 6.5061e-07, 3.04888114328, 3340.62968035 },
  1041.     { 6.1478e-07, 4.15185188249, 3149.16416059 },
  1042.     { 4.8482e-07, 4.87339233007, 213.299095438 },
  1043.     { 4.6581e-07, 1.31461442691, 3185.19202727 },
  1044.     { 5.6642e-07, 3.88772102421, 4136.91043352 },
  1045.     { 4.7615e-07, 1.18228660215, 3333.4988797 },
  1046.     { 4.2052e-07, 5.30826745759, 20043.6745602 },
  1047.     { 4.133e-07, 0.71392238704, 1592.59601363 },
  1048.     { 4.028e-07, 2.72571311592, 7.1135470008 },
  1049.     { 3.304e-07, 5.40823104809, 6283.07584999 },
  1050.     { 2.8676e-07, 0.04305323493, 9492.146315 },
  1051.     { 2.2322e-07, 5.86718681699, 3870.30339179 },
  1052.     { 2.2432e-07, 5.46596961275, 20.3553193988 },
  1053.     { 2.2606e-07, 0.83782540818, 3097.88382273 },
  1054.     { 2.1416e-07, 5.37936489667, 3340.5451164 },
  1055.     { 2.3347e-07, 6.167744339, 3532.06069281 },
  1056.     { 2.6573e-07, 3.8900063113, 1221.84856632 },
  1057.     { 2.28e-07, 1.54501542908, 2274.11694951 },
  1058.     { 2.0474e-07, 2.3623686167, 1589.07289528 },
  1059.     { 2.0179e-07, 3.36390759347, 5088.62883977 },
  1060.     { 2.0013e-07, 2.57546546037, 12303.0677766 },
  1061.     { 1.992e-07, 0.44761063096, 6677.70173505 },
  1062.     { 2.655e-07, 5.11303525089, 2700.71514039 },
  1063.     { 2.1104e-07, 3.52541056271, 15.252471185 },
  1064.     { 2.1424e-07, 4.97083417225, 3340.679737 },
  1065.     { 1.8502e-07, 5.57854926842, 1990.74501704 },
  1066.     { 1.7805e-07, 6.12513609945, 4292.33083295 },
  1067.     { 1.6463e-07, 2.60307709195, 3341.59274777 },
  1068.     { 1.6592e-07, 1.25515357212, 3894.18182954 },
  1069.     { 1.9864e-07, 2.52765519587, 4399.99435689 },
  1070.     { 1.5002e-07, 1.03518790208, 2288.34404351 },
  1071.     { 2.0011e-07, 4.73112374598, 4690.47983636 },
  1072.     { 1.5431e-07, 2.46932776517, 4535.05943692 },
  1073.     { 2.0193e-07, 5.78561467842, 7079.37385681 },
  1074.     { 1.5298e-07, 2.26504738206, 3723.50895892 },
  1075.     { 1.5019e-07, 3.36690751539, 6681.24210705 },
  1076.     { 1.3219e-07, 5.61412860968, 10025.3603984 },
  1077.     { 1.3517e-07, 2.12392880454, 5486.77784318 },
  1078.     { 1.5019e-07, 1.33613594479, 6681.20759975 },
  1079.     { 1.2676e-07, 2.95036175206, 3496.03282613 },
  1080.     { 1.3644e-07, 1.97710249337, 5614.72937621 },
  1081.     { 1.3011e-07, 1.51458564766, 5628.95647021 },
  1082.     { 1.1353e-07, 6.23411904718, 135.065080035 },
  1083.     { 1.3508e-07, 3.42721826602, 5621.84292321 },
  1084.     { 1.0866e-07, 5.28165480979, 2818.03500861 },
  1085.     { 1.188e-07, 3.12847055823, 426.598190876 },
  1086.     { 1.0467e-07, 2.7359860705, 2787.04302386 },
  1087.     { 1.1131e-07, 5.84122566289, 2803.8079146 },
  1088.     { 1.177e-07, 2.58277425311, 8432.76438482 },
  1089.     { 1.1861e-07, 5.47552055459, 3553.91152214 },
  1090.     { 8.54e-08, 1.91739325491, 11773.3768115 },
  1091.     { 9.819e-08, 4.52958330672, 6489.77658729 },
  1092.     { 8.552e-08, 3.16147568714, 162.466636132 },
  1093.     { 1.0957e-07, 4.15775327007, 2388.89402045 },
  1094.     { 8.948e-08, 4.23164385777, 7477.52286022 },
  1095.     { 8.131e-08, 1.61308074119, 2957.71589448 },
  1096.     { 8.352e-08, 2.18475645206, 23.8784377478 },
  1097.     { 8.03e-08, 5.69889507906, 6041.32756709 },
  1098.     { 7.878e-08, 5.71359767892, 9623.68827669 },
  1099.     { 8.713e-08, 4.43300582398, 5092.15195812 },
  1100.     { 8.421e-08, 3.1635506725, 3347.7259737 },
  1101.     { 6.67e-08, 5.07423317095, 8031.09226306 },
  1102.     { 8.656e-08, 4.33239148117, 3339.63210563 },
  1103.     { 7.354e-08, 6.17934256606, 3583.34103067 },
  1104.     { 5.749e-08, 3.67719823582, 8429.24126647 },
  1105.     { 6.235e-08, 3.54003325209, 692.157601227 },
  1106.     { 5.458e-08, 1.05139431657, 4933.20844033 },
  1107.     { 6.132e-08, 1.66182646558, 6525.80445397 },
  1108.     { 5.197e-08, 1.14841109166, 28.4491874678 },
  1109.     { 4.95e-08, 5.28919125231, 6681.2921637 },
  1110.     { 5.516e-08, 6.12492946392, 2487.41604495 },
  1111.     { 4.89e-08, 3.10255139433, 5.5229243074 },
  1112.     { 5.354e-08, 0.37154896863, 12832.7587417 },
  1113.     { 4.751e-08, 0.2337468155, 36.0278666774 },
  1114.     { 6.362e-08, 2.11339432269, 5884.92684658 },
  1115.     { 4.996e-08, 2.44835744792, 5099.26550512 },
  1116.     { 4.952e-08, 5.69770765577, 6681.1575431 },
  1117.     { 4.678e-08, 0.27799012787, 10018.3141618 },
  1118.     { 4.746e-08, 0.00950199989, 7210.91581849 },
  1119.     { 4.862e-08, 5.60331599025, 6467.92575796 },
  1120.     { 5.544e-08, 2.00929051393, 522.577418094 },
  1121.     { 4.998e-08, 1.51094959078, 1744.42598442 },
  1122.     { 5.397e-08, 0.1884215497, 2942.46342329 },
  1123.     { 4.098e-08, 3.95776844736, 3.881335358 },
  1124.     { 5.414e-08, 5.66147396313, 23384.2869869 },
  1125.     { 5.467e-08, 0.19258681316, 7632.94325965 },
  1126.     { 4.305e-08, 2.8945229483, 2810.92146161 },
  1127.     { 4.118e-08, 1.59475420886, 7234.79425624 },
  1128.     { 4.489e-08, 4.16951490492, 2906.90068882 },
  1129.     { 5.277e-08, 2.22681020305, 3127.31333126 },
  1130.     { 3.882e-08, 2.26433789475, 2699.73481932 },
  1131.     { 3.544e-08, 1.76658498504, 1758.65307842 },
  1132.     { 3.408e-08, 2.65743533541, 4929.68532198 },
  1133.     { 4.336e-08, 4.43081904792, 640.877607382 },
  1134.     { 3.804e-08, 2.91373968131, 15643.6802033 },
  1135.     { 3.176e-08, 1.75893480952, 9595.23908922 },
  1136.     { 3.309e-08, 6.13831291678, 10419.9862835 },
  1137.     { 3.077e-08, 2.56194751001, 7064.12138562 },
  1138.     { 3.236e-08, 2.32387839882, 5085.03841111 },
  1139.     { 3.284e-08, 2.8621647971, 7740.60678359 },
  1140.     { 2.958e-08, 1.27767445188, 574.344798335 },
  1141.     { 2.805e-08, 0.43144651568, 5828.02847165 },
  1142.     { 2.851e-08, 0.98625869565, 3191.04922957 },
  1143.     { 3.324e-08, 2.5901098785, 2118.76386038 },
  1144.     { 3.039e-08, 1.86739127757, 7.046236698 },
  1145.     { 2.738e-08, 1.76460911547, 639.897286314 },
  1146.     { 2.757e-08, 3.70511041849, 10021.8545338 },
  1147.     { 3.376e-08, 1.53123149565, 6674.1113064 },
  1148.     { 2.757e-08, 1.67433972403, 10021.8200264 },
  1149.     { 2.67e-08, 3.11556212899, 6836.64525283 },
  1150.     { 2.583e-08, 3.77302627584, 2921.12778282 },
  1151.     { 2.51e-08, 0.30461555756, 3475.67750674 },
  1152.     { 2.288e-08, 2.81266012379, 7875.67186362 },
  1153.     { 2.411e-08, 0.97123911611, 3319.83703121 },
  1154.     { 2.41e-08, 2.95969382172, 6682.20517447 },
  1155.     { 2.211e-08, 0.61268074323, 10973.5556864 },
  1156.     { 2.246e-08, 4.12573972297, 59.3738619136 },
  1157.     { 2.183e-08, 2.17530786579, 15113.9892382 },
  1158.     { 2.445e-08, 5.91435376684, 5331.35744374 },
  1159.     // 152 terms retained
  1160. };
  1161. static VSOPTerm mars_L2[] = {
  1162.     { 0.00058152577, 2.04961712429, 3340.6124267 },
  1163.     { 0.00013459579, 2.45738706163, 6681.2248534 },
  1164.     { 2.432575e-05, 2.79737979284, 10021.8372801 },
  1165.     { 4.01065e-06, 3.13581149963, 13362.4497068 },
  1166.     { 4.51384e-06, 0, 0 },
  1167.     { 2.22025e-06, 3.19437046607, 3.523118349 },
  1168.     { 1.20954e-06, 0.54327128607, 155.420399434 },
  1169.     { 6.2971e-07, 3.47765178989, 16703.0621335 },
  1170.     { 5.3644e-07, 3.54171478781, 3344.13554505 },
  1171.     { 3.4273e-07, 6.00208464365, 2281.23049651 },
  1172.     { 3.1659e-07, 4.14001980084, 191.448266112 },
  1173.     { 2.9839e-07, 1.9983873938, 796.298006816 },
  1174.     { 2.3172e-07, 4.33401932281, 242.728603974 },
  1175.     { 2.1663e-07, 3.44500841809, 398.149003408 },
  1176.     { 1.605e-07, 6.11000263211, 2146.16541648 },
  1177.     { 2.0369e-07, 5.42202383442, 553.569402842 },
  1178.     { 1.4924e-07, 6.09549588012, 3185.19202727 },
  1179.     { 1.6229e-07, 0.65685105422, 0.9803210682 },
  1180.     { 1.4317e-07, 2.61898820749, 1349.86740966 },
  1181.     { 1.4411e-07, 4.01941740099, 951.718406251 },
  1182.     { 1.1944e-07, 3.86196758615, 6684.74797175 },
  1183.     { 1.5655e-07, 1.22093822826, 1748.01641307 },
  1184.     { 1.1261e-07, 4.71857181601, 2544.31441988 },
  1185.     { 1.336e-07, 0.60151621438, 1194.44701022 },
  1186.     { 1.0395e-07, 0.25075540193, 382.896532223 },
  1187.     { 9.415e-08, 0.68050215057, 1059.38193019 },
  1188.     { 9.58e-08, 3.82256319681, 20043.6745602 },
  1189.     { 8.996e-08, 3.88272784458, 3738.76143011 },
  1190.     { 7.498e-08, 5.46428174266, 1751.53953142 },
  1191.     { 6.499e-08, 5.47802397833, 1592.59601363 },
  1192.     { 6.307e-08, 2.34134269478, 3097.88382273 },
  1193.     { 6.864e-08, 2.57523762859, 3149.16416059 },
  1194.     { 5.871e-08, 1.1486285578, 7.1135470008 },
  1195.     { 6.675e-08, 2.37862627319, 4136.91043352 },
  1196.     { 4.655e-08, 4.4310225149, 6151.5338883 },
  1197.     { 4.201e-08, 3.68638044545, 5614.72937621 },
  1198.     { 4.796e-08, 2.89378142432, 3333.4988797 },
  1199.     { 4.074e-08, 6.12610105396, 5628.95647021 },
  1200.     { 3.66e-08, 4.06581319964, 1990.74501704 },
  1201.     { 3.284e-08, 2.79214099721, 3894.18182954 },
  1202.     { 3.615e-08, 2.46526861067, 529.690965095 },
  1203.     { 3.214e-08, 0.68469193035, 8962.45534991 },
  1204.     { 3.087e-08, 4.56932030502, 3496.03282613 },
  1205.     { 2.918e-08, 5.41494777349, 2914.01423582 },
  1206.     { 2.925e-08, 1.23098223044, 2787.04302386 },
  1207.     { 2.808e-08, 1.38431632694, 4292.33083295 },
  1208.     { 2.652e-08, 1.05282528913, 3341.59274777 },
  1209.     { 2.92e-08, 3.41297158184, 3337.08930835 },
  1210.     { 2.423e-08, 0.9648433024, 4535.05943692 },
  1211.     { 2.311e-08, 4.84742235872, 9492.146315 },
  1212.     { 2.597e-08, 5.74792546254, 3340.59517305 },
  1213.     { 2.19e-08, 3.26596280325, 213.299095438 },
  1214.     { 2.598e-08, 1.49506860128, 3340.62968035 },
  1215.     { 2.365e-08, 4.1830384242, 10025.3603984 },
  1216.     { 2.63e-08, 4.67732434694, 3583.34103067 },
  1217.     { 2.606e-08, 2.64976204169, 2388.89402045 },
  1218.     { 1.822e-08, 0.97105743952, 1589.07289528 },
  1219.     { 2.397e-08, 1.04493547179, 4399.99435689 },
  1220.     { 2.203e-08, 0.16281603659, 6525.80445397 },
  1221.     { 2.373e-08, 4.26885534124, 7079.37385681 },
  1222.     { 2.366e-08, 0.00564620006, 4690.47983636 },
  1223.     { 1.623e-08, 4.95374152644, 5088.62883977 },
  1224.     { 2.143e-08, 0.47993241836, 2700.71514039 },
  1225.     { 1.646e-08, 4.94105214632, 1221.84856632 },
  1226.     { 1.588e-08, 1.11405721408, 12303.0677766 },
  1227.     { 1.518e-08, 0.11076145171, 2957.71589448 },
  1228.     { 1.774e-08, 3.80344931471, 3723.50895892 },
  1229.     { 1.364e-08, 3.86744855408, 6283.07584999 },
  1230.     { 1.764e-08, 2.51992889432, 2810.92146161 },
  1231.     { 1.394e-08, 2.7360876673, 7477.52286022 },
  1232.     { 1.28e-08, 5.47285286548, 6677.70173505 },
  1233.     { 1.447e-08, 2.97506973239, 6489.77658729 },
  1234.     { 1.248e-08, 3.77100223369, 2699.73481932 },
  1235.     { 1.527e-08, 2.92629955117, 640.877607382 },
  1236.     { 1.197e-08, 1.89205359446, 6681.24210705 },
  1237.     { 1.418e-08, 1.54599865534, 3347.7259737 },
  1238.     { 1.423e-08, 4.17063094406, 23384.2869869 },
  1239.     { 1.042e-08, 5.83283345776, 4933.20844033 },
  1240.     { 1.196e-08, 6.14479114175, 6681.20759975 },
  1241.     { 1.153e-08, 1.50265359557, 426.598190876 },
  1242.     { 1.099e-08, 3.80358943061, 3870.30339179 },
  1243.     { 9.09e-09, 3.81838122072, 5092.15195812 },
  1244.     { 1.071e-08, 5.04949161471, 5621.84292321 },
  1245.     { 8.46e-09, 3.82219998207, 3340.5451164 },
  1246.     { 1.075e-08, 3.81844135104, 3553.91152214 },
  1247.     { 8.56e-09, 3.42045045625, 3340.679737 },
  1248.     { 9.16e-09, 1.91472787569, 3532.06069281 },
  1249.     { 7.14e-09, 4.26169501052, 9623.68827669 },
  1250.     { 9.07e-09, 4.12943952579, 162.466636132 },
  1251.     { 6.53e-09, 3.10816357251, 7234.79425624 },
  1252.     { 7.92e-09, 5.20659969594, 87.3082045398 },
  1253.     { 6.54e-09, 1.57331630734, 2487.41604495 },
  1254.     { 6.49e-09, 2.78892909992, 574.344798335 },
  1255.     { 6.48e-09, 5.181110771, 12832.7587417 },
  1256.     { 7.07e-09, 5.8319586932, 3339.63210563 },
  1257.     { 5.2e-09, 4.64660657418, 6836.64525283 },
  1258.     { 6.6e-09, 0.24998045706, 8969.56889691 },
  1259.     { 6.4e-09, 1.70935421799, 7632.94325965 },
  1260.     { 5.28e-09, 0.3110540935, 8031.09226306 },
  1261.     { 5.1e-09, 4.63676288319, 10419.9862835 },
  1262.     { 6.04e-09, 3.85002715377, 5486.77784318 },
  1263.     { 5.14e-09, 1.38796992796, 7740.60678359 },
  1264.     // 102 terms retained
  1265. };
  1266. static VSOPTerm mars_L3[] = {
  1267.     { 1.467867e-05, 0.4442983946, 3340.6124267 },
  1268.     { 6.92668e-06, 0.88679887123, 6681.2248534 },
  1269.     { 1.89478e-06, 1.28336839921, 10021.8372801 },
  1270.     { 4.1615e-07, 1.64210455567, 13362.4497068 },
  1271.     { 2.266e-07, 2.05278956965, 155.420399434 },
  1272.     { 8.126e-08, 1.99049724299, 16703.0621335 },
  1273.     { 1.0455e-07, 1.57992093693, 3.523118349 },
  1274.     { 4.902e-08, 2.8251687501, 242.728603974 },
  1275.     { 5.379e-08, 3.14159265359, 0 },
  1276.     { 3.782e-08, 2.01848153986, 3344.13554505 },
  1277.     { 3.181e-08, 4.59108786647, 3185.19202727 },
  1278.     { 3.133e-08, 0.65141319517, 553.569402842 },
  1279.     { 1.698e-08, 5.53803382831, 951.718406251 },
  1280.     { 1.525e-08, 5.71698515888, 191.448266112 },
  1281.     { 1.451e-08, 0.4606849022, 796.298006816 },
  1282.     { 1.473e-08, 2.33727441522, 20043.6745602 },
  1283.     { 1.314e-08, 5.36403056955, 0.9803210682 },
  1284.     { 1.178e-08, 4.14644990348, 1349.86740966 },
  1285.     { 1.138e-08, 2.37914351932, 6684.74797175 },
  1286.     { 1.046e-08, 1.76915268602, 382.896532223 },
  1287.     { 9.02e-09, 5.35475854699, 1194.44701022 },
  1288.     { 8.13e-09, 2.74852234414, 1748.01641307 },
  1289.     { 6.29e-09, 6.08292992203, 3496.03282613 },
  1290.     { 5.64e-09, 1.87914711325, 398.149003408 },
  1291.     { 5.66e-09, 5.8543921654, 7.1135470008 },
  1292.     { 6.46e-09, 3.17980126471, 3583.34103067 },
  1293.     // 26 terms retained
  1294. };
  1295. static VSOPTerm mars_L4[] = {
  1296.     { 2.7242e-07, 5.6399774232, 6681.2248534 },
  1297.     { 2.5511e-07, 5.13956279086, 3340.6124267 },
  1298.     { 1.1147e-07, 6.03556608878, 10021.8372801 },
  1299.     { 3.19e-08, 3.56206901204, 155.420399434 },
  1300.     { 3.251e-08, 0.1291561646, 13362.4497068 },
  1301.     // 5 terms retained
  1302. };
  1303. static VSOPTerm mars_L5[] = {
  1304.     { 7.62e-09, 4.03556368806, 6681.2248534 },
  1305.     { 5.11e-09, 4.4877039364, 10021.8372801 },
  1306.     { 3.6e-09, 5.07296615717, 155.420399434 },
  1307.     // 3 terms retained
  1308. };
  1309. static VSOPTerm mars_B0[] = {
  1310.     { 0.03197134986, 3.76832042431, 3340.6124267 },
  1311.     { 0.00298033234, 4.10616996305, 6681.2248534 },
  1312.     { 0.00289104742, 0, 0 },
  1313.     { 0.00031365539, 4.4465105309, 10021.8372801 },
  1314.     { 3.4841e-05, 4.7881254926, 13362.4497068 },
  1315.     { 4.42999e-06, 5.65233014206, 3337.08930835 },
  1316.     { 4.43401e-06, 5.02642622964, 3344.13554505 },
  1317.     { 3.99109e-06, 5.13056816928, 16703.0621335 },
  1318.     { 2.92506e-06, 3.79290674178, 2281.23049651 },
  1319.     { 1.81982e-06, 6.13648041445, 6151.5338883 },
  1320.     { 1.63159e-06, 4.26399640691, 529.690965095 },
  1321.     { 1.59678e-06, 2.23194572851, 1059.38193019 },
  1322.     { 1.39323e-06, 2.41796458896, 8962.45534991 },
  1323.     { 1.49297e-06, 2.16501221175, 5621.84292321 },
  1324.     { 1.42686e-06, 1.18215016908, 3340.59517305 },
  1325.     { 1.42685e-06, 3.21292181638, 3340.62968035 },
  1326.     { 8.2544e-07, 5.36667920373, 6684.74797175 },
  1327.     { 7.3639e-07, 5.0918769577, 398.149003408 },
  1328.     { 7.266e-07, 5.53775735826, 6283.07584999 },
  1329.     { 8.6377e-07, 5.74429749104, 3738.76143011 },
  1330.     { 8.3276e-07, 5.98866355811, 6677.70173505 },
  1331.     { 6.0116e-07, 3.67960801961, 796.298006816 },
  1332.     { 6.3111e-07, 0.73049101791, 5884.92684658 },
  1333.     { 6.2338e-07, 4.8507212869, 2942.46342329 },
  1334.     // 24 terms retained
  1335. };
  1336. static VSOPTerm mars_B1[] = {
  1337.     { 0.00217310991, 6.04472194776, 3340.6124267 },
  1338.     { 0.00020976948, 3.14159265359, 0 },
  1339.     { 0.00012834709, 1.60810667915, 6681.2248534 },
  1340.     { 3.320981e-05, 2.62947004077, 10021.8372801 },
  1341.     { 6.272e-06, 3.11898601248, 13362.4497068 },
  1342.     { 1.0199e-06, 3.52113557592, 16703.0621335 },
  1343.     { 7.5107e-07, 0.95983758515, 3337.08930835 },
  1344.     { 2.9264e-07, 3.4030768271, 3344.13554505 },
  1345.     { 2.3251e-07, 3.69342549027, 5621.84292321 },
  1346.     { 2.219e-07, 2.21703408598, 2281.23049651 },
  1347.     { 1.5454e-07, 3.89610159362, 20043.6745602 },
  1348.     { 1.1867e-07, 3.83861019788, 6684.74797175 },
  1349.     { 1.2038e-07, 2.13866775328, 6151.5338883 },
  1350.     { 9.697e-08, 5.48941186798, 3340.62968035 },
  1351.     { 9.697e-08, 3.45863925102, 3340.59517305 },
  1352.     { 1.1537e-07, 1.90395033905, 3532.06069281 },
  1353.     { 9.276e-08, 0.71941312462, 2942.46342329 },
  1354.     { 9.24e-08, 2.51747952408, 5884.92684658 },
  1355.     { 9.876e-08, 6.13507416822, 1059.38193019 },
  1356.     { 9.265e-08, 4.55759125226, 8962.45534991 },
  1357.     { 7.822e-08, 6.10932267009, 2810.92146161 },
  1358.     { 1.0369e-07, 0.60195347181, 529.690965095 },
  1359.     { 8.522e-08, 4.40106741096, 3496.03282613 },
  1360.     { 7.683e-08, 1.21169696624, 6677.70173505 },
  1361.     { 7.134e-08, 1.93610705535, 2544.31441988 },
  1362.     { 6.512e-08, 3.11636422105, 3738.76143011 },
  1363.     { 6.278e-08, 6.23176923902, 3185.19202727 },
  1364.     { 5.833e-08, 0.74324094343, 398.149003408 },
  1365.     { 5.033e-08, 2.28727456802, 3149.16416059 },
  1366.     { 4.958e-08, 1.54200127913, 6283.07584999 },
  1367.     // 30 terms retained
  1368. };
  1369. static VSOPTerm mars_B2[] = {
  1370.     { 8.888446e-05, 1.06196052751, 3340.6124267 },
  1371.     { 2.595393e-05, 3.14159265359, 0 },
  1372.     { 9.18914e-06, 0.1153843119, 6681.2248534 },
  1373.     { 2.67883e-06, 0.78837893063, 10021.8372801 },
  1374.     { 6.6911e-07, 1.39435595847, 13362.4497068 },
  1375.     { 1.4267e-07, 1.87268116087, 16703.0621335 },
  1376.     { 7.948e-08, 2.58819177832, 3337.08930835 },
  1377.     { 2.709e-08, 2.29241371893, 20043.6745602 },
  1378.     { 2.911e-08, 1.36634316448, 3344.13554505 },
  1379.     { 2.528e-08, 6.00423798411, 3496.03282613 },
  1380.     { 1.617e-08, 5.72212771018, 5621.84292321 },
  1381.     { 1.625e-08, 4.63140305669, 3185.19202727 },
  1382.     // 12 terms retained
  1383. };
  1384. static VSOPTerm mars_B3[] = {
  1385.     { 3.30418e-06, 2.04215300484, 3340.6124267 },
  1386.     { 9.3057e-07, 0, 0 },
  1387.     { 1.4546e-07, 5.38525967237, 10021.8372801 },
  1388.     { 8.731e-08, 4.90252313032, 6681.2248534 },
  1389.     { 5.215e-08, 5.97441462813, 13362.4497068 },
  1390.     { 1.422e-08, 0.21283650226, 16703.0621335 },
  1391.     // 6 terms retained
  1392. };
  1393. static VSOPTerm mars_B4[] = {
  1394.     { 6.007e-08, 3.37637101191, 3340.6124267 },
  1395.     { 6.625e-08, 0, 0 },
  1396.     // 2 terms retained
  1397. };
  1398. static VSOPTerm mars_B5[] = {
  1399.     { 0, 0, 0 },
  1400.     // 0 terms retained
  1401. };
  1402. static VSOPTerm mars_R0[] = {
  1403.     { 1.53033488271, 0, 0 },
  1404.     { 0.1418495316, 3.47971283528, 3340.6124267 },
  1405.     { 0.00660776362, 3.81783443019, 6681.2248534 },
  1406.     { 0.00046179117, 4.15595316782, 10021.8372801 },
  1407.     { 8.109733e-05, 5.55958416318, 2810.92146161 },
  1408.     { 7.485318e-05, 1.77239078402, 5621.84292321 },
  1409.     { 5.523191e-05, 1.3643630377, 2281.23049651 },
  1410.     { 3.82516e-05, 4.49407183687, 13362.4497068 },
  1411.     { 2.306537e-05, 0.09081579001, 2544.31441988 },
  1412.     { 1.999396e-05, 5.36059617709, 3337.08930835 },
  1413.     { 2.484394e-05, 4.9254563992, 2942.46342329 },
  1414.     { 1.960195e-05, 4.74249437639, 3344.13554505 },
  1415.     { 1.167119e-05, 2.11260868341, 5092.15195812 },
  1416.     { 1.102816e-05, 5.00908403998, 398.149003408 },
  1417.     { 8.99066e-06, 4.40791133207, 529.690965095 },
  1418.     { 9.92252e-06, 5.83861961952, 6151.5338883 },
  1419.     { 8.07354e-06, 2.10217065501, 1059.38193019 },
  1420.     { 7.97915e-06, 3.44839203899, 796.298006816 },
  1421.     { 7.40975e-06, 1.49906336885, 2146.16541648 },
  1422.     { 6.92339e-06, 2.13378874689, 8962.45534991 },
  1423.     { 6.33144e-06, 0.89353283242, 3340.59517305 },
  1424.     { 7.25583e-06, 1.24516810723, 8432.76438482 },
  1425.     { 6.3314e-06, 2.92430446399, 3340.62968035 },
  1426.     { 5.74355e-06, 0.82896244455, 2914.01423582 },
  1427.     { 5.26166e-06, 5.38292991236, 3738.76143011 },
  1428.     { 6.29978e-06, 1.28737486495, 1751.53953142 },
  1429.     { 4.72775e-06, 5.19850522346, 3127.31333126 },
  1430.     { 3.48095e-06, 4.83219199976, 16703.0621335 },
  1431.     { 2.83713e-06, 2.90692064724, 3532.06069281 },
  1432.     { 2.79543e-06, 5.2574968538, 6283.07584999 },
  1433.     { 2.33857e-06, 5.10545987572, 5486.77784318 },
  1434.     { 2.19427e-06, 5.58340231744, 191.448266112 },
  1435.     { 2.69896e-06, 3.76393625127, 5884.92684658 },
  1436.     { 2.08335e-06, 5.25476078693, 3340.5451164 },
  1437.     { 2.75217e-06, 2.90817482492, 1748.01641307 },
  1438.     { 2.75506e-06, 1.21767950614, 6254.62666252 },
  1439.     { 2.39119e-06, 2.03669934656, 1194.44701022 },
  1440.     { 2.23189e-06, 4.19861535147, 3149.16416059 },
  1441.     { 1.82689e-06, 5.08062725665, 6684.74797175 },
  1442.     { 1.86207e-06, 5.6987157241, 6677.70173505 },
  1443.     { 1.76e-06, 5.95341919657, 3870.30339179 },
  1444.     { 1.78617e-06, 4.18423004741, 3333.4988797 },
  1445.     { 2.0833e-06, 4.84626439637, 3340.679737 },
  1446.     { 2.28126e-06, 3.25526555588, 6872.67311951 },
  1447.     { 1.44312e-06, 0.2130621946, 5088.62883977 },
  1448.     { 1.63527e-06, 3.79888811958, 4136.91043352 },
  1449.     { 1.33126e-06, 1.53906679361, 7903.07341972 },
  1450.     { 1.41755e-06, 2.47792380112, 4562.46099302 },
  1451.     { 1.14927e-06, 4.31748869065, 1349.86740966 },
  1452.     { 1.18789e-06, 2.12168482244, 1589.07289528 },
  1453.     { 1.02094e-06, 6.18145185708, 9492.146315 },
  1454.     { 1.2857e-06, 5.49884728795, 8827.39026987 },
  1455.     { 1.11546e-06, 0.55346108403, 11243.6858464 },
  1456.     { 8.2498e-07, 1.62220096558, 11773.3768115 },
  1457.     { 8.3204e-07, 0.61551135046, 8429.24126647 },
  1458.     { 8.4463e-07, 0.62274409931, 1592.59601363 },
  1459.     { 8.6666e-07, 1.74984525176, 2700.71514039 },
  1460.     { 7.1813e-07, 2.4749406548, 12303.0677766 },
  1461.     { 8.5321e-07, 1.61634750496, 4690.47983636 },
  1462.     { 6.3641e-07, 2.67334163937, 426.598190876 },
  1463.     { 6.8601e-07, 2.40188234283, 4399.99435689 },
  1464.     { 5.8559e-07, 4.7205283999, 213.299095438 },
  1465.     { 6.2009e-07, 1.10068565926, 1221.84856632 },
  1466.     { 6.6499e-07, 2.21296335919, 6041.32756709 },
  1467.     { 5.581e-07, 1.2328806632, 3185.19202727 },
  1468.     { 5.4969e-07, 5.72695354791, 951.718406251 },
  1469.     { 5.243e-07, 3.0236809553, 4292.33083295 },
  1470.     { 5.5688e-07, 5.44688671707, 3723.50895892 },
  1471.     { 5.8959e-07, 3.26242460622, 6681.24210705 },
  1472.     { 4.4638e-07, 2.01459444131, 8031.09226306 },
  1473.     { 5.8959e-07, 1.2316529679, 6681.20759975 },
  1474.     { 4.2439e-07, 2.26554261514, 155.420399434 },
  1475.     { 3.8955e-07, 2.57760417339, 3341.59274777 },
  1476.     { 5.155e-07, 5.72324451485, 7079.37385681 },
  1477.     { 4.894e-07, 5.61613493545, 3553.91152214 },
  1478.     { 4.5406e-07, 5.43303278149, 6467.92575796 },
  1479.     { 3.6438e-07, 4.43922435395, 3894.18182954 },
  1480.     { 3.598e-07, 1.15972378713, 2288.34404351 },
  1481.     { 3.5268e-07, 5.49032233898, 1990.74501704 },
  1482.     { 4.2192e-07, 1.63254827838, 5628.95647021 },
  1483.     { 4.4292e-07, 5.00344221303, 5614.72937621 },
  1484.     { 3.3616e-07, 5.17029030468, 20043.6745602 },
  1485.     { 4.3256e-07, 1.03722397198, 11769.8536932 },
  1486.     { 3.9237e-07, 1.24237030858, 3339.63210563 },
  1487.     { 3.1949e-07, 4.59259676953, 2274.11694951 },
  1488.     { 3.0352e-07, 2.44163963455, 11371.7046898 },
  1489.     { 3.2269e-07, 2.38222363233, 4535.05943692 },
  1490.     { 3.1855e-07, 4.37536980289, 3.523118349 },
  1491.     { 2.9342e-07, 4.06035002188, 3097.88382273 },
  1492.     { 3.1967e-07, 1.93969979134, 382.896532223 },
  1493.     { 2.6164e-07, 5.58463559826, 9623.68827669 },
  1494.     { 2.7903e-07, 4.25809486053, 3191.04922957 },
  1495.     { 3.3044e-07, 0.85475620169, 553.569402842 },
  1496.     { 2.7544e-07, 1.5766864517, 9595.23908922 },
  1497.     { 2.5163e-07, 0.81337734264, 10713.9948813 },
  1498.     { 2.2045e-07, 0.85711201558, 3319.83703121 },
  1499.     { 2.4759e-07, 5.38993953923, 2818.03500861 },
  1500.     { 2.3352e-07, 6.0145897459, 3496.03282613 },
  1501.     { 2.4723e-07, 2.58025225634, 2803.8079146 },
  1502.     { 1.9361e-07, 5.18528881954, 6681.2921637 },
  1503.     { 1.9118e-07, 5.419693554, 10025.3603984 },
  1504.     { 1.9361e-07, 5.59378511334, 6681.1575431 },
  1505.     { 1.8331e-07, 5.7956572331, 7064.12138562 },
  1506.     { 1.8188e-07, 5.61299105522, 7.1135470008 },
  1507.     { 2.0393e-07, 4.53615443964, 6489.77658729 },
  1508.     { 2.1258e-07, 6.19174428363, 14054.607308 },
  1509.     { 1.7094e-07, 1.54988538094, 2957.71589448 },
  1510.     { 2.2794e-07, 3.41719468533, 7632.94325965 },
  1511.     { 2.0561e-07, 2.98654120324, 3361.38782219 },
  1512.     { 1.705e-07, 6.15529583629, 10404.7338123 },
  1513.     { 1.8007e-07, 2.81505100996, 4032.77002793 },
  1514.     { 1.6487e-07, 3.84534133372, 10973.5556864 },
  1515.     { 1.6056e-07, 0.92819026247, 14584.2982731 },
  1516.     { 2.1008e-07, 2.38506850221, 4989.0591839 },
  1517.     { 1.6291e-07, 1.92190075688, 7373.38245463 },
  1518.     { 1.6286e-07, 6.28252184173, 7210.91581849 },
  1519.     { 1.8575e-07, 4.07319565284, 2388.89402045 },
  1520.     { 1.5976e-07, 4.58379703739, 3264.34635542 },
  1521.     { 1.9909e-07, 2.73523951203, 5099.26550512 },
  1522.     { 1.9667e-07, 1.86294734899, 3443.70520092 },
  1523.     { 1.65e-07, 4.1406165717, 7477.52286022 },
  1524.     { 1.9492e-07, 6.03778625701, 10018.3141618 },
  1525.     { 1.5097e-07, 2.65433832872, 2787.04302386 },
  1526.     { 1.9099e-07, 0.22623513076, 13745.346239 },
  1527.     { 1.7164e-07, 3.1882629935, 3347.7259737 },
  1528.     { 1.3407e-07, 2.12775612449, 3344.20285535 },
  1529.     { 1.5407e-07, 2.20766468871, 2118.76386038 },
  1530.     { 1.7246e-07, 3.67064642858, 3205.54734666 },
  1531.     { 1.3091e-07, 4.27475419816, 14314.168113 },
  1532.     { 1.6437e-07, 2.86612474805, 14712.3171165 },
  1533.     { 1.6648e-07, 4.521351492, 6674.1113064 },
  1534.     { 1.3718e-07, 1.68586111426, 3337.02199805 },
  1535.     { 1.1824e-07, 0.19675650045, 3475.67750674 },
  1536.     { 1.1757e-07, 3.23020638064, 5828.02847165 },
  1537.     { 1.1884e-07, 4.82075035433, 7234.79425624 },
  1538.     { 1.0608e-07, 1.73995972784, 639.897286314 },
  1539.     { 1.1143e-07, 0.23833349966, 12832.7587417 },
  1540.     { 1.1028e-07, 0.4455568729, 10213.2855462 },
  1541.     { 1.0238e-07, 5.74731032428, 242.728603974 },
  1542.     { 1.0052e-07, 2.45096419672, 4929.68532198 },
  1543.     { 1.0061e-07, 0.78904152333, 9381.93999379 },
  1544.     { 1.0065e-07, 5.37509927353, 5085.03841111 },
  1545.     { 1.1897e-07, 0.79890074455, 3265.83082813 },
  1546.     { 8.983e-08, 0.96474320941, 4933.20844033 },
  1547.     { 8.976e-08, 4.18310051894, 9225.53927328 },
  1548.     { 8.982e-08, 1.98499607259, 15113.9892382 },
  1549.     { 8.325e-08, 1.93706224943, 1648.4467572 },
  1550.     { 7.832e-08, 2.04997038646, 1758.65307842 },
  1551.     { 7.964e-08, 3.92258783522, 2921.12778282 },
  1552.     { 1.0223e-07, 2.66509814753, 2487.41604495 },
  1553.     { 8.277e-08, 0.94860765545, 2906.90068882 },
  1554.     { 7.371e-08, 0.84436508721, 692.157601227 },
  1555.     { 7.529e-08, 5.68043313811, 13916.0191096 },
  1556.     { 7.907e-08, 2.81314645975, 15643.6802033 },
  1557.     { 6.956e-08, 3.32212696002, 3230.40610548 },
  1558.     { 7.426e-08, 6.09654676653, 3583.34103067 },
  1559.     { 6.402e-08, 4.19806999276, 5202.35827934 },
  1560.     { 6.523e-08, 6.11927838278, 135.065080035 },
  1561.     { 6.127e-08, 0.00122595969, 6836.64525283 },
  1562.     { 6.223e-08, 6.1065313699, 17256.6315363 },
  1563.     { 8.161e-08, 5.24822786208, 10575.4066829 },
  1564.     { 6.163e-08, 3.60026818309, 10021.8545338 },
  1565.     { 6.163e-08, 1.56949585888, 10021.8200264 },
  1566.     { 5.673e-08, 0.13638905291, 13524.9163429 },
  1567.     { 6.257e-08, 4.50450316951, 8425.65083781 },
  1568.     { 5.249e-08, 2.70116504868, 4459.3682188 },
  1569.     { 6.47e-08, 2.74232480124, 7740.60678359 },
  1570.     { 5.523e-08, 6.06378363783, 10419.9862835 },
  1571.     { 5.548e-08, 5.75002125481, 12168.0026966 },
  1572.     { 6.827e-08, 4.69340338938, 17654.7805397 },
  1573.     { 4.993e-08, 4.68464837021, 522.577418094 },
  1574.     { 6.32e-08, 3.3193809127, 3767.21061758 },
  1575.     { 4.735e-08, 0.00770324607, 3325.35995551 },
  1576.     { 5.025e-08, 2.33675441772, 1052.26838319 },
  1577.     { 4.656e-08, 5.15033151106, 1066.49547719 },
  1578.     { 4.728e-08, 5.77993082374, 9808.53818466 },
  1579.     { 5.128e-08, 1.57178942294, 6525.80445397 },
  1580.     { 4.523e-08, 1.44233177206, 3369.06161417 },
  1581.     { 6.205e-08, 4.48163731718, 22747.2907149 },
  1582.     { 6.169e-08, 4.59085555242, 6531.66165626 },
  1583.     { 5.329e-08, 4.55141789349, 1744.42598442 },
  1584.     { 4.514e-08, 5.94508421612, 6894.52394884 },
  1585.     { 4.33e-08, 3.10899106071, 4569.57454002 },
  1586.     { 5.367e-08, 5.08071026709, 2707.82868739 },
  1587.     { 5.138e-08, 1.28584065229, 8439.87793182 },
  1588.     { 4.12e-08, 5.48544036931, 2699.73481932 },
  1589.     { 5.398e-08, 5.21710209952, 5305.45105355 },
  1590.     { 4.45e-08, 5.56771154217, 16865.5287696 },
  1591.     { 3.898e-08, 1.48753002285, 9168.64089835 },
  1592.     { 3.858e-08, 1.23056079731, 16858.4825329 },
  1593.     { 3.764e-08, 0.27080818668, 17395.2197347 },
  1594.     { 4.687e-08, 3.0570907584, 5518.75014899 },
  1595.     { 4.264e-08, 2.79046663043, 3503.07906283 },
  1596.     { 3.864e-08, 0.37957786186, 10177.2576795 },
  1597.     { 3.992e-08, 1.84425142473, 3134.42687826 },
  1598.     { 3.658e-08, 2.95544843123, 6144.4203413 },
  1599.     { 3.65e-08, 1.58041651396, 6680.24453233 },
  1600.     { 3.945e-08, 1.98631850445, 8969.56889691 },
  1601.     // 198 terms retained
  1602. };
  1603. static VSOPTerm mars_R1[] = {
  1604.     { 0.01107433345, 2.03250524857, 3340.6124267 },
  1605.     { 0.00103175887, 2.37071847807, 6681.2248534 },
  1606.     { 0.000128772, 0, 0 },
  1607.     { 0.0001081588, 2.70888095665, 10021.8372801 },
  1608.     { 1.19455e-05, 3.04702256206, 13362.4497068 },
  1609.     { 4.38582e-06, 2.88835054603, 2281.23049651 },
  1610.     { 3.957e-06, 3.42323670971, 3344.13554505 },
  1611.     { 1.82576e-06, 1.58427562964, 2544.31441988 },
  1612.     { 1.35851e-06, 3.38507063082, 16703.0621335 },
  1613.     { 1.28199e-06, 0.62991771813, 1059.38193019 },
  1614.     { 1.27059e-06, 1.95391155885, 796.298006816 },
  1615.     { 1.18443e-06, 2.99762091382, 2146.16541648 },
  1616.     { 1.28362e-06, 6.04343227063, 3337.08930835 },
  1617.     { 8.7534e-07, 3.42053385867, 398.149003408 },
  1618.     { 8.3021e-07, 3.85575072018, 3738.76143011 },
  1619.     { 7.5604e-07, 4.45097659377, 6151.5338883 },
  1620.     { 7.2002e-07, 2.76443992447, 529.690965095 },
  1621.     { 6.6545e-07, 2.5487838147, 1751.53953142 },
  1622.     { 5.4305e-07, 0.67754203387, 8962.45534991 },
  1623.     { 5.1043e-07, 3.72584855417, 6684.74797175 },
  1624.     { 6.6413e-07, 4.40596377334, 1748.01641307 },
  1625.     { 4.786e-07, 2.28524521788, 2914.01423582 },
  1626.     { 4.942e-07, 5.72961379219, 3340.59517305 },
  1627.     { 4.942e-07, 1.47720011103, 3340.62968035 },
  1628.     { 5.7519e-07, 0.5435613312, 1194.44701022 },
  1629.     { 4.832e-07, 2.58061402348, 3149.16416059 },
  1630.     { 3.6383e-07, 6.02729341698, 3185.19202727 },
  1631.     { 3.7161e-07, 5.81436290851, 1349.86740966 },
  1632.     { 3.6035e-07, 5.89515829011, 3333.4988797 },
  1633.     { 3.1111e-07, 0.97820401887, 191.448266112 },
  1634.     { 3.8957e-07, 2.31902442004, 4136.91043352 },
  1635.     { 2.7256e-07, 5.41369838171, 1592.59601363 },
  1636.     { 2.4302e-07, 3.75838444077, 155.420399434 },
  1637.     { 2.2808e-07, 1.74818178182, 5088.62883977 },
  1638.     { 2.2322e-07, 0.93941901193, 951.718406251 },
  1639.     { 2.1712e-07, 3.83569490817, 6283.07584999 },
  1640.     { 2.1302e-07, 0.78030571909, 1589.07289528 },
  1641.     { 2.1631e-07, 4.56903942095, 3532.06069281 },
  1642.     { 1.7957e-07, 4.21923537063, 3870.30339179 },
  1643.     { 1.8241e-07, 0.41334220202, 5486.77784318 },
  1644.     { 1.625e-07, 3.80772429678, 3340.5451164 },
  1645.     { 1.6803e-07, 5.54855432911, 3097.88382273 },
  1646.     { 1.6852e-07, 4.53696884484, 4292.33083295 },
  1647.     { 1.5749e-07, 4.75766175289, 9492.146315 },
  1648.     { 1.5747e-07, 3.72356261757, 20043.6745602 },
  1649.     { 2.0429e-07, 3.13541604634, 4690.47983636 },
  1650.     { 1.4699e-07, 5.95340513928, 3894.18182954 },
  1651.     { 1.6251e-07, 3.39910570757, 3340.679737 },
  1652.     { 1.4256e-07, 3.99914527335, 1990.74501704 },
  1653.     { 1.6529e-07, 0.96740368703, 4399.99435689 },
  1654.     { 1.3011e-07, 5.14215010082, 6677.70173505 },
  1655.     { 1.2482e-07, 1.03238555854, 3341.59274777 },
  1656.     { 1.6454e-07, 3.53827765951, 2700.71514039 },
  1657.     { 1.6167e-07, 2.3489111087, 553.569402842 },
  1658.     { 1.3169e-07, 0.41462220221, 5614.72937621 },
  1659.     { 1.127e-07, 1.02387117266, 12303.0677766 },
  1660.     { 1.241e-07, 6.23139144626, 5628.95647021 },
  1661.     { 1.2747e-07, 0.69046237163, 3723.50895892 },
  1662.     { 1.1828e-07, 6.25270937134, 2274.11694951 },
  1663.     { 1.0382e-07, 1.23229650709, 426.598190876 },
  1664.     { 1.1207e-07, 1.31732435116, 3496.03282613 },
  1665.     { 1.0345e-07, 0.90062869301, 4535.05943692 },
  1666.     { 1.2214e-07, 4.22347837212, 7079.37385681 },
  1667.     { 9.764e-08, 3.45310129694, 382.896532223 },
  1668.     { 8.583e-08, 1.1647889051, 2787.04302386 },
  1669.     { 7.879e-08, 5.73808303461, 2288.34404351 },
  1670.     { 9.192e-08, 1.81719352796, 6681.24210705 },
  1671.     { 7.752e-08, 4.15038634174, 6041.32756709 },
  1672.     { 9.192e-08, 6.06960723129, 6681.20759975 },
  1673.     { 9.008e-08, 2.58179552398, 2388.89402045 },
  1674.     { 6.77e-08, 0.240118807, 11773.3768115 },
  1675.     { 7.088e-08, 3.51428380287, 8031.09226306 },
  1676.     { 9.159e-08, 3.90203365989, 3553.91152214 },
  1677.     { 7.233e-08, 3.70260535699, 2818.03500861 },
  1678.     { 6.701e-08, 4.25537421062, 242.728603974 },
  1679.     { 6.534e-08, 0.04317593308, 2957.71589448 },
  1680.     { 8.783e-08, 2.19764346848, 1221.84856632 },
  1681.     { 6.54e-08, 2.11811131682, 8429.24126647 },
  1682.     { 6.835e-08, 4.04527289029, 10025.3603984 },
  1683.     { 7.279e-08, 4.26969778292, 2803.8079146 },
  1684.     { 7.679e-08, 1.00816125095, 8432.76438482 },
  1685.     { 5.736e-08, 3.13988802339, 213.299095438 },
  1686.     { 5.343e-08, 3.7818416468, 5092.15195812 },
  1687.     { 5.985e-08, 2.96429619989, 6489.77658729 },
  1688.     { 5.132e-08, 3.98288020531, 7.1135470008 },
  1689.     { 6.264e-08, 1.90345600186, 5621.84292321 },
  1690.     { 5.238e-08, 2.67050910776, 7477.52286022 },
  1691.     { 6.264e-08, 1.60046198142, 3347.7259737 },
  1692.     { 6.527e-08, 2.76220386403, 3339.63210563 },
  1693.     { 4.594e-08, 1.82031785094, 2810.92146161 },
  1694.     { 5.46e-08, 4.60869963415, 3583.34103067 },
  1695.     { 4.73e-08, 0.90611934427, 5099.26550512 },
  1696.     { 5.484e-08, 4.91405753832, 7632.94325965 },
  1697.     { 4.002e-08, 4.1410000521, 9623.68827669 },
  1698.     { 3.836e-08, 0.03411499404, 7234.79425624 },
  1699.     { 3.618e-08, 5.76553319747, 4933.20844033 },
  1700.     { 3.747e-08, 0.08776717073, 6525.80445397 },
  1701.     { 3.016e-08, 3.73804058695, 6681.2921637 },
  1702.     { 3.975e-08, 4.91286826343, 2942.46342329 },
  1703.     { 3.911e-08, 0.67457174687, 3127.31333126 },
  1704.     { 3.923e-08, 3.07698893109, 3.523118349 },
  1705.     { 3.943e-08, 0.53936955267, 5884.92684658 },
  1706.     { 2.902e-08, 4.66228680082, 7210.91581849 },
  1707.     { 2.803e-08, 1.00505054832, 7064.12138562 },
  1708.     { 3.152e-08, 4.54611126545, 2487.41604495 },
  1709.     { 2.797e-08, 0.05226680768, 639.897286314 },
  1710.     { 2.758e-08, 5.17057629399, 5828.02847165 },
  1711.     { 3.02e-08, 4.14658810846, 6681.1575431 },
  1712.     { 3e-08, 0.82762095066, 5085.03841111 },
  1713.     { 3.022e-08, 2.59437829291, 2906.90068882 },
  1714.     { 2.673e-08, 0.69433657973, 2699.73481932 },
  1715.     { 2.593e-08, 1.08691889359, 4929.68532198 },
  1716.     { 3.127e-08, 0.99947199034, 2118.76386038 },
  1717.     { 2.597e-08, 5.01157388627, 10018.3141618 },
  1718.     { 2.606e-08, 5.34395258978, 10973.5556864 },
  1719.     { 2.779e-08, 3.98360727591, 6467.92575796 },
  1720.     { 2.457e-08, 1.52659064342, 6836.64525283 },
  1721.     { 2.381e-08, 3.93615187831, 11371.7046898 },
  1722.     { 2.584e-08, 5.08907827632, 12832.7587417 },
  1723.     // 119 terms retained
  1724. };
  1725. static VSOPTerm mars_R2[] = {
  1726.     { 0.00044242249, 0.47930604954, 3340.6124267 },
  1727.     { 8.138042e-05, 0.86998389204, 6681.2248534 },
  1728.     { 1.274915e-05, 1.22593985222, 10021.8372801 },
  1729.     { 1.87388e-06, 1.57298976045, 13362.4497068 },
  1730.     { 4.0745e-07, 1.97082077028, 3344.13554505 },
  1731.     { 5.2395e-07, 3.14159265359, 0 },
  1732.     { 2.6617e-07, 1.91665337822, 16703.0621335 },
  1733.     { 1.7828e-07, 4.43491476419, 2281.23049651 },
  1734.     { 1.1713e-07, 4.52509926559, 3185.19202727 },
  1735.     { 1.021e-07, 5.3914732206, 1059.38193019 },
  1736.     { 9.95e-08, 0.41865678448, 796.298006816 },
  1737.     { 9.236e-08, 4.53559625376, 2146.16541648 },
  1738.     { 7.299e-08, 3.1421451312, 2544.31441988 },
  1739.     { 7.214e-08, 2.29302335628, 6684.74797175 },
  1740.     { 6.81e-08, 5.26707245601, 155.420399434 },
  1741.     { 6.526e-08, 2.307724561, 3738.76143011 },
  1742.     { 7.783e-08, 5.93373461009, 1748.01641307 },
  1743.     { 5.84e-08, 1.0519182029, 1349.86740966 },
  1744.     { 6.75e-08, 5.30191763402, 1194.44701022 },
  1745.     { 4.695e-08, 0.76881032874, 3097.88382273 },
  1746.     { 5.39e-08, 1.0020006836, 3149.16416059 },
  1747.     { 4.406e-08, 2.45557331437, 951.718406251 },
  1748.     { 4.286e-08, 3.89642578846, 1592.59601363 },
  1749.     { 3.516e-08, 1.84991934524, 398.149003408 },
  1750.     { 3.699e-08, 2.26016989021, 20043.6745602 },
  1751.     { 3.378e-08, 3.81703201748, 1751.53953142 },
  1752.     { 4.585e-08, 0.80785643853, 4136.91043352 },
  1753.     { 3.201e-08, 2.11661594157, 5614.72937621 },
  1754.     { 3.62e-08, 1.32428600053, 3333.4988797 },
  1755.     { 2.915e-08, 1.19342490174, 529.690965095 },
  1756.     { 2.979e-08, 2.86468474914, 6151.5338883 },
  1757.     { 3.057e-08, 4.55288594507, 5628.95647021 },
  1758.     { 2.906e-08, 1.20300479533, 3894.18182954 },
  1759.     { 3.848e-08, 3.86071515455, 553.569402842 },
  1760.     { 2.819e-08, 2.48714583532, 1990.74501704 },
  1761.     { 2.657e-08, 6.07409846258, 4292.33083295 },
  1762.     { 2.698e-08, 2.92100135189, 3496.03282613 },
  1763.     { 2.396e-08, 5.94193484091, 2787.04302386 },
  1764.     { 2.263e-08, 2.56188049651, 191.448266112 },
  1765.     { 2.169e-08, 5.36834559071, 8962.45534991 },
  1766.     { 2.149e-08, 2.74919289456, 242.728603974 },
  1767.     { 2.218e-08, 1.85260509629, 3337.08930835 },
  1768.     { 1.998e-08, 5.76396921426, 3341.59274777 },
  1769.     { 1.999e-08, 3.82347205028, 2914.01423582 },
  1770.     { 1.835e-08, 5.68648448195, 1589.07289528 },
  1771.     { 1.81e-08, 3.32122811143, 5088.62883977 },
  1772.     { 1.968e-08, 4.17404480033, 3340.59517305 },
  1773.     { 2.411e-08, 4.68376177281, 4690.47983636 },
  1774.     { 1.967e-08, 6.2057036343, 3340.62968035 },
  1775.     { 1.626e-08, 5.67648778513, 4535.05943692 },
  1776.     { 2.161e-08, 1.07446445419, 2388.89402045 },
  1777.     { 1.965e-08, 3.10811453974, 3583.34103067 },
  1778.     { 1.985e-08, 5.75867975763, 4399.99435689 },
  1779.     { 1.504e-08, 4.95929390466, 382.896532223 },
  1780.     { 1.276e-08, 4.82147500391, 2957.71589448 },
  1781.     { 1.475e-08, 2.22614544794, 3723.50895892 },
  1782.     { 1.196e-08, 3.26743061042, 9492.146315 },
  1783.     { 1.349e-08, 4.87558985925, 6525.80445397 },
  1784.     { 1.436e-08, 2.6975402327, 7079.37385681 },
  1785.     { 1.223e-08, 2.61880227353, 10025.3603984 },
  1786.     { 1.402e-08, 5.19177439326, 2700.71514039 },
  1787.     { 1.202e-08, 0.93436294282, 2810.92146161 },
  1788.     { 8.7e-09, 5.81258009514, 12303.0677766 },
  1789.     { 8.67e-09, 2.20048756217, 2699.73481932 },
  1790.     { 8.31e-09, 2.01782919511, 5092.15195812 },
  1791.     { 8.56e-09, 5.96129932558, 426.598190876 },
  1792.     { 8.47e-09, 2.26415579047, 6283.07584999 },
  1793.     { 9.17e-09, 1.4025908126, 6489.77658729 },
  1794.     { 8.33e-09, 1.17376008822, 7477.52286022 },
  1795.     { 1.041e-08, 6.27097603149, 3347.7259737 },
  1796.     { 9.65e-09, 3.40293030184, 5621.84292321 },
  1797.     { 7.23e-09, 4.26276570887, 4933.20844033 },
  1798.     { 7.7e-09, 2.06490049164, 5486.77784318 },
  1799.     { 7.06e-09, 2.34080074294, 7.1135470008 },
  1800.     { 9.54e-09, 2.11093711712, 3870.30339179 },
  1801.     { 8.44e-09, 2.2379157639, 3553.91152214 },
  1802.     { 6.47e-09, 2.24565892529, 3340.5451164 },
  1803.     { 6.53e-09, 3.98464883505, 6677.70173505 },
  1804.     { 7.17e-09, 0.29523050971, 6681.24210705 },
  1805.     { 8.28e-09, 0.22887694811, 3532.06069281 },
  1806.     { 6.12e-09, 1.56040446304, 7234.79425624 },
  1807.     { 7.17e-09, 4.54583138124, 6681.20759975 },
  1808.     { 5.85e-09, 3.29614213819, 1221.84856632 },
  1809.     { 6.46e-09, 1.8361516834, 3340.679737 },
  1810.     { 5.6e-09, 5.05995427063, 8031.09226306 },
  1811.     { 6.51e-09, 0.16211451692, 7632.94325965 },
  1812.     // 86 terms retained
  1813. };
  1814. static VSOPTerm mars_R3[] = {
  1815.     { 1.113108e-05, 5.14987305093, 3340.6124267 },
  1816.     { 4.24447e-06, 5.61343952053, 6681.2248534 },
  1817.     { 1.00044e-06, 5.99727457548, 10021.8372801 },
  1818.     { 1.9606e-07, 0.07631453783, 13362.4497068 },
  1819.     { 3.478e-08, 0.42912010211, 16703.0621335 },
  1820.     { 4.693e-08, 3.14159265359, 0 },
  1821.     { 2.87e-08, 0.44692002393, 3344.13554505 },
  1822.     { 2.428e-08, 3.02114808809, 3185.19202727 },
  1823.     // 8 terms retained
  1824. };
  1825. static VSOPTerm mars_R4[] = {
  1826.     { 1.9551e-07, 3.58210746512, 3340.6124267 },
  1827.     { 1.6322e-07, 4.05115851142, 6681.2248534 },
  1828.     { 5.848e-08, 4.4638164658, 10021.8372801 },
  1829.     { 1.533e-08, 4.84332951095, 13362.4497068 },
  1830.     { 3.75e-09, 1.50951652931, 3185.19202727 },
  1831.     { 3.4e-09, 5.20519444932, 16703.0621335 },
  1832.     // 6 terms retained
  1833. };
  1834. static VSOPTerm mars_R5[] = {
  1835.     { 4.75e-09, 2.47621038205, 6681.2248534 },
  1836.     { 2.7e-09, 2.90961348988, 10021.8372801 },
  1837.     // 2 terms retained
  1838. };
  1839. static VSOPTerm jupiter_L0[] = {
  1840.     { 0.59954691494, 0, 0 },
  1841.     { 0.09695898719, 5.06191793158, 529.690965095 },
  1842.     { 0.00573610142, 1.44406205629, 7.1135470008 },
  1843.     { 0.00306389205, 5.41734730184, 1059.38193019 },
  1844.     { 0.00097178296, 4.14264726552, 632.783739313 },
  1845.     { 0.00072903078, 3.64042916389, 522.577418094 },
  1846.     { 0.00064263975, 3.41145165351, 103.092774219 },
  1847.     { 0.00039806064, 2.29376740788, 419.484643875 },
  1848.     { 0.00038857767, 1.27231755835, 316.391869657 },
  1849.     { 0.00027964629, 1.7845459182, 536.804512095 },
  1850.     { 0.0001358973, 5.7748104079, 1589.07289528 },
  1851.     { 8.246349e-05, 3.5822792584, 206.185548437 },
  1852.     { 8.768704e-05, 3.63000308199, 949.17560897 },
  1853.     { 7.368042e-05, 5.0810119427, 735.876513532 },
  1854.     { 6.26315e-05, 0.02497628807, 213.299095438 },
  1855.     { 6.114062e-05, 4.51319998626, 1162.47470441 },
  1856.     { 4.905396e-05, 1.32084470588, 110.206321219 },
  1857.     { 5.305285e-05, 1.30671216791, 14.2270940016 },
  1858.     { 5.305441e-05, 4.18625634012, 1052.26838319 },
  1859.     { 4.647248e-05, 4.69958103684, 3.9321532631 },
  1860.     { 3.045023e-05, 4.31676431084, 426.598190876 },
  1861.     { 2.609999e-05, 1.56667394063, 846.082834751 },
  1862.     { 2.028191e-05, 1.06376530715, 3.1813937377 },
  1863.     { 1.764763e-05, 2.14148655117, 1066.49547719 },
  1864.     { 1.722972e-05, 3.88036268267, 1265.56747863 },
  1865.     { 1.920945e-05, 0.97168196472, 639.897286314 },
  1866.     { 1.633223e-05, 3.58201833555, 515.463871093 },
  1867.     { 1.431999e-05, 4.29685556046, 625.670192312 },
  1868.     { 9.73272e-06, 4.09764549134, 95.9792272178 },
  1869.     { 8.84457e-06, 2.43700227469, 412.371096874 },
  1870.     { 7.32853e-06, 6.08535124451, 838.96928775 },
  1871.     { 7.31094e-06, 3.80592308125, 1581.95934828 },
  1872.     { 6.91971e-06, 6.13365277914, 2118.76386038 },
  1873.     { 7.09166e-06, 1.2927476033, 742.990060533 },
  1874.     { 6.14482e-06, 4.10850580886, 1478.86657406 },
  1875.     { 4.95219e-06, 3.75564106217, 323.505416657 },
  1876.     { 5.81903e-06, 4.53969579398, 309.278322656 },
  1877.     { 3.75664e-06, 4.70304250208, 1368.66025285 },
  1878.     { 3.89876e-06, 4.89706786539, 1692.1656695 },
  1879.     { 3.41016e-06, 5.7145237931, 533.623118358 },
  1880.     { 3.30458e-06, 4.74049819491, 0.0481841098 },
  1881.     { 4.40853e-06, 2.95818598959, 454.909366527 },
  1882.     { 4.17267e-06, 1.03554397138, 2.4476805548 },
  1883.     { 2.44174e-06, 5.22024286247, 728.762966531 },
  1884.     { 2.61541e-06, 1.87652515753, 0.9632078465 },
  1885.     { 2.56589e-06, 3.72410394286, 199.072001436 },
  1886.     { 2.61005e-06, 0.82048379203, 380.12776796 },
  1887.     { 2.20381e-06, 1.65114584814, 543.918059096 },
  1888.     { 2.01991e-06, 1.80692992449, 1375.77379985 },
  1889.     { 2.07336e-06, 1.85463683689, 525.758811831 },
  1890.     { 1.97061e-06, 5.29255821015, 1155.36115741 },
  1891.     { 2.35139e-06, 1.22694468346, 909.818733055 },
  1892.     { 1.74827e-06, 5.90974976879, 956.289155971 },
  1893.     { 1.49385e-06, 4.37744775359, 1685.0521225 },
  1894.     { 1.75197e-06, 3.22647697998, 1898.35121794 },
  1895.     { 1.75172e-06, 3.7297744122, 942.062061969 },
  1896.     { 1.57917e-06, 4.36478445901, 1795.25844372 },
  1897.     { 1.37898e-06, 1.31800455202, 1169.58825141 },
  1898.     { 1.17498e-06, 2.50021486074, 1596.18644228 },
  1899.     { 1.50504e-06, 3.90624455135, 74.7815985673 },
  1900.     { 1.16786e-06, 3.3892092106, 0.5212648618 },
  1901.     { 1.05894e-06, 4.55439354032, 526.509571357 },
  1902.     { 1.3054e-06, 4.16876671917, 1045.15483619 },
  1903.     { 1.41388e-06, 3.13579930728, 491.557929457 },
  1904.     { 9.9524e-07, 1.4211262227, 532.872358832 },
  1905.     { 9.6143e-07, 1.18143253105, 117.31986822 },
  1906.     { 9.1732e-07, 0.85722451006, 1272.68102563 },
  1907.     { 8.7704e-07, 1.2173050435, 453.424893819 },
  1908.     { 6.8531e-07, 2.3520190589, 2.9207613068 },
  1909.     { 6.6111e-07, 5.3438096704, 1471.75302706 },
  1910.     { 7.7401e-07, 4.42676354183, 39.3568759152 },
  1911.     { 7.2028e-07, 4.23856425835, 2111.65031338 },
  1912.     { 6.3345e-07, 4.97658360088, 0.7507595254 },
  1913.     { 5.9423e-07, 4.11122034593, 2001.44399216 },
  1914.     { 6.2471e-07, 0.51213142347, 220.412642439 },
  1915.     { 6.654e-07, 2.98844410276, 2214.7430876 },
  1916.     { 6.0295e-07, 4.1263361942, 4.192785694 },
  1917.     { 5.6014e-07, 1.15477785231, 21.3406410024 },
  1918.     { 5.2954e-07, 0.91283039851, 10.2949407385 },
  1919.     { 7.0461e-07, 5.14178006023, 835.037134487 },
  1920.     { 5.1903e-07, 4.10065404719, 1258.45393163 },
  1921.     { 4.6583e-07, 4.66599487054, 5.6290742925 },
  1922.     { 5.8261e-07, 5.86719898935, 5753.3848849 },
  1923.     { 4.0103e-07, 4.68801114087, 0.1600586944 },
  1924.     { 4.6785e-07, 4.79414027278, 305.346169393 },
  1925.     { 3.9306e-07, 4.2549933801, 853.196381752 },
  1926.     { 4.6153e-07, 5.10982849847, 4.665866446 },
  1927.     { 5.4583e-07, 1.5707166354, 983.115858914 },
  1928.     { 3.8921e-07, 6.07598407822, 518.645264831 },
  1929.     { 3.846e-07, 2.43832240008, 433.711737877 },
  1930.     { 4.691e-07, 3.54638837922, 5.4166259714 },
  1931.     { 4.1834e-07, 4.67980756775, 302.164775655 },
  1932.     { 3.5921e-07, 2.45088327353, 430.530344139 },
  1933.     { 3.9307e-07, 1.71678059616, 11.0457002639 },
  1934.     { 3.7895e-07, 0.21140086073, 2648.45482547 },
  1935.     { 3.7566e-07, 6.19479786035, 831.85574075 },
  1936.     { 3.5845e-07, 4.61505536309, 2008.55753916 },
  1937.     { 4.3402e-07, 0.14992219581, 528.206492386 },
  1938.     { 3.1581e-07, 5.14178165108, 1788.14489672 },
  1939.     { 2.986e-07, 5.34424466576, 2221.8566346 },
  1940.     { 3.2959e-07, 5.2895264038, 88.865680217 },
  1941.     { 2.7686e-07, 1.85227036207, 0.2124483211 },
  1942.     { 2.5821e-07, 3.85920335036, 2317.83586181 },
  1943.     { 2.4705e-07, 2.63498818, 114.138474483 },
  1944.     { 3.3844e-07, 1.00563073311, 9683.59458112 },
  1945.     // 105 terms retained
  1946. };
  1947. static VSOPTerm jupiter_L1[] = {
  1948.     { 529.690965088, 0, 0 },
  1949.     { 0.00489503243, 4.2208293947, 529.690965095 },
  1950.     { 0.00228917222, 6.02646855621, 7.1135470008 },
  1951.     { 0.00030099479, 4.54540782858, 1059.38193019 },
  1952.     { 0.0002072092, 5.45943156902, 522.577418094 },
  1953.     { 0.00012103653, 0.16994816098, 536.804512095 },
  1954.     { 6.067987e-05, 4.42422292017, 103.092774219 },
  1955.     { 5.433968e-05, 3.98480737746, 419.484643875 },
  1956.     { 4.237744e-05, 5.89008707199, 14.2270940016 },
  1957.     { 2.211974e-05, 5.26766687382, 206.185548437 },
  1958.     { 1.983502e-05, 4.88600705699, 1589.07289528 },
  1959.     { 1.295769e-05, 5.55132752171, 3.1813937377 },
  1960.     { 1.163416e-05, 0.51450634873, 3.9321532631 },
  1961.     { 1.007167e-05, 0.46474690033, 735.876513532 },
  1962.     { 1.174094e-05, 5.84238857133, 1052.26838319 },
  1963.     { 8.47762e-06, 5.75765726863, 110.206321219 },
  1964.     { 8.2725e-06, 4.80311857692, 213.299095438 },
  1965.     { 8.29822e-06, 0.59345481695, 1066.49547719 },
  1966.     { 1.003864e-05, 3.14841622246, 426.598190876 },
  1967.     { 1.09873e-05, 5.30705242117, 515.463871093 },
  1968.     { 7.24923e-06, 5.51690038433, 639.897286314 },
  1969.     { 5.67826e-06, 5.98865760444, 625.670192312 },
  1970.     { 4.74197e-06, 4.1324371636, 412.371096874 },
  1971.     { 4.12936e-06, 5.73653788228, 95.9792272178 },
  1972.     { 3.3682e-06, 3.72892266066, 1162.47470441 },
  1973.     { 3.45412e-06, 4.24128387922, 632.783739313 },
  1974.     { 2.34071e-06, 6.24295755869, 309.278322656 },
  1975.     { 1.94827e-06, 2.21824346028, 323.505416657 },
  1976.     { 2.34805e-06, 4.03315571261, 949.17560897 },
  1977.     { 1.83904e-06, 6.2797391951, 543.918059096 },
  1978.     { 1.98512e-06, 1.50446971008, 838.96928775 },
  1979.     { 1.86807e-06, 6.07956275814, 742.990060533 },
  1980.     { 1.71405e-06, 5.41658811525, 199.072001436 },
  1981.     { 1.30777e-06, 0.62641588161, 728.762966531 },
  1982.     { 1.34095e-06, 5.23702273624, 2118.76386038 },
  1983.     { 1.15444e-06, 0.6778374723, 846.082834751 },
  1984.     { 1.06501e-06, 4.4767172424, 956.289155971 },
  1985.     { 6.6832e-07, 5.73362353275, 21.3406410024 },
  1986.     { 6.9619e-07, 5.9725637809, 532.872358832 },
  1987.     { 5.995e-07, 1.0065747379, 1596.18644228 },
  1988.     { 6.3366e-07, 6.05635396519, 1581.95934828 },
  1989.     { 7.9718e-07, 5.821567337, 1045.15483619 },
  1990.     { 6.5635e-07, 0.12938321631, 526.509571357 },
  1991.     { 5.8519e-07, 0.58687309667, 1155.36115741 },
  1992.     { 5.661e-07, 1.41183572003, 533.623118358 },
  1993.     { 7.1631e-07, 5.34149334443, 942.062061969 },
  1994.     { 5.7343e-07, 5.9687033662, 1169.58825141 },
  1995.     { 5.5048e-07, 5.42871116938, 10.2949407385 },
  1996.     { 5.2026e-07, 0.22999191591, 1368.66025285 },
  1997.     { 5.2295e-07, 5.72636754267, 117.31986822 },
  1998.     { 5.0427e-07, 6.08258832558, 525.758811831 },
  1999.     { 4.7278e-07, 3.60428393787, 1478.86657406 },
  2000.     { 4.2199e-07, 4.13113112919, 1692.1656695 },
  2001.     { 4.6566e-07, 0.51168261375, 1265.56747863 },
  2002.     { 3.2801e-07, 5.03520269183, 220.412642439 },
  2003.     { 3.3556e-07, 0.09960615979, 302.164775655 },
  2004.     { 2.9379e-07, 3.35927110207, 4.665866446 },
  2005.     { 2.9311e-07, 0.75894050642, 88.865680217 },
  2006.     { 3.2449e-07, 5.37487176787, 508.350324092 },
  2007.     { 2.9741e-07, 5.42345191096, 1272.68102563 },
  2008.     { 2.1789e-07, 6.14949766217, 1685.0521225 },
  2009.     { 2.5194e-07, 1.60716361937, 831.85574075 },
  2010.     { 2.1133e-07, 5.86310776376, 1258.45393163 },
  2011.     { 1.9668e-07, 2.18904500387, 316.391869657 },
  2012.     { 1.7878e-07, 0.82813691085, 433.711737877 },
  2013.     { 1.7409e-07, 2.75647882058, 853.196381752 },
  2014.     { 1.7703e-07, 5.95527033658, 5.4166259714 },
  2015.     { 1.8586e-07, 0.51459954175, 1375.77379985 },
  2016.     { 1.7469e-07, 0.7085516406, 1471.75302706 },
  2017.     { 1.4369e-07, 0.91459684737, 18.1592472647 },
  2018.     { 1.4107e-07, 0.63031131929, 2.9207613068 },
  2019.     { 1.1728e-07, 1.76421689491, 380.12776796 },
  2020.     { 1.1042e-07, 5.56386292919, 1574.84580128 },
  2021.     { 1.1422e-07, 4.30273286555, 405.257549874 },
  2022.     { 1.0407e-07, 0.30595619562, 1361.54670584 },
  2023.     { 9.894e-08, 0.38972478935, 1073.60902419 },
  2024.     { 9.808e-08, 5.90342059427, 519.396024356 },
  2025.     { 9.287e-08, 3.23717178839, 1795.25844372 },
  2026.     { 9.079e-08, 5.59391515894, 2648.45482547 },
  2027.     { 8.83e-08, 0.53669085248, 1788.14489672 },
  2028.     { 8.238e-08, 5.88621877345, 2001.44399216 },
  2029.     { 8.058e-08, 5.07394631539, 1485.98012107 },
  2030.     { 6.69e-08, 2.41093500491, 4.192785694 },
  2031.     { 5.917e-08, 4.17942020818, 2008.55753916 },
  2032.     { 7.256e-08, 6.19390446816, 11.0457002639 },
  2033.     { 6.272e-08, 1.36131578474, 1148.24761041 },
  2034.     { 5.142e-08, 5.23124680535, 628.85158605 },
  2035.     { 5.141e-08, 2.92956226336, 518.645264831 },
  2036.     { 4.764e-08, 0.16833299921, 629.602345575 },
  2037.     { 4.603e-08, 0.78535347104, 721.64941953 },
  2038.     { 4.573e-08, 6.24771751154, 1677.9385755 },
  2039.     { 4.536e-08, 4.9510938869, 635.965133051 },
  2040.     { 4.434e-08, 1.45220762308, 2125.87740738 },
  2041.     { 4.518e-08, 2.06522259381, 453.424893819 },
  2042.     { 4.428e-08, 0.15677546362, 1699.2792165 },
  2043.     { 5.594e-08, 5.5747124137, 191.958454436 },
  2044.     { 5.405e-08, 1.46221153779, 330.618963658 },
  2045.     { 5.776e-08, 4.37575545399, 2221.8566346 },
  2046.     { 4.265e-08, 0.24198200812, 2104.53676638 },
  2047.     { 4.1e-08, 6.19338226411, 636.715892576 },
  2048.     { 4.432e-08, 4.35787390405, 423.416797138 },
  2049.     { 4.102e-08, 0.4919546148, 1056.20053645 },
  2050.     { 4.527e-08, 0.09244775677, 1062.56332393 },
  2051.     { 4.397e-08, 4.14273244974, 511.53171783 },
  2052.     { 3.567e-08, 5.66550104255, 2317.83586181 },
  2053.     { 3.585e-08, 0.28040162482, 1055.44977693 },
  2054.     { 4.009e-08, 2.54842404074, 74.7815985673 },
  2055.     { 3.686e-08, 2.9336784999, 32.2433289144 },
  2056.     { 2.969e-08, 5.50022776972, 107.024927482 },
  2057.     { 2.856e-08, 5.73809418496, 99.9113804809 },
  2058.     { 2.718e-08, 1.25246874516, 540.736665358 },
  2059.     { 2.808e-08, 3.30714906571, 0.7507595254 },
  2060.     { 2.669e-08, 1.6339853139, 1063.31408345 },
  2061.     { 2.667e-08, 4.28683044077, 106.274167956 },
  2062.     { 2.705e-08, 3.03568370231, 422.666037613 },
  2063.     { 3.271e-08, 5.89438924876, 1802.37199072 },
  2064.     { 2.654e-08, 0.35475530647, 1898.35121794 },
  2065.     { 2.574e-08, 3.59809745049, 750.103607533 },
  2066.     { 2.486e-08, 5.28928577587, 1891.23767094 },
  2067.     { 3.221e-08, 4.58424996327, 416.303250138 },
  2068.     { 2.936e-08, 1.09054035208, 1464.63948006 },
  2069.     { 2.398e-08, 6.02106328658, 551.031606097 },
  2070.     // 122 terms retained
  2071. };
  2072. static VSOPTerm jupiter_L2[] = {
  2073.     { 0.00047233601, 4.32148536482, 7.1135470008 },
  2074.     { 0.00030649436, 2.929777887, 529.690965095 },
  2075.     { 0.00014837605, 3.14159265359, 0 },
  2076.     { 3.189359e-05, 1.05515491122, 522.577418094 },
  2077.     { 2.728901e-05, 4.84555421873, 536.804512095 },
  2078.     { 2.54744e-05, 3.42720888976, 1059.38193019 },
  2079.     { 1.721046e-05, 4.18734600902, 14.2270940016 },
  2080.     { 3.83277e-06, 5.76794364868, 419.484643875 },
  2081.     { 3.67514e-06, 6.05520169517, 103.092774219 },
  2082.     { 3.77503e-06, 0.7605083906, 515.463871093 },
  2083.     { 3.37386e-06, 3.78644856157, 3.1813937377 },
  2084.     { 3.08194e-06, 0.6936828379, 206.185548437 },
  2085.     { 2.14121e-06, 3.8295818143, 1589.07289528 },
  2086.     { 2.03945e-06, 5.34259263233, 1066.49547719 },
  2087.     { 1.97456e-06, 2.4835107179, 3.9321532631 },
  2088.     { 1.46156e-06, 3.81335105293, 639.897286314 },
  2089.     { 1.56209e-06, 1.36162315686, 1052.26838319 },
  2090.     { 1.29577e-06, 5.83745710707, 412.371096874 },
  2091.     { 1.41825e-06, 1.63491733107, 426.598190876 },
  2092.     { 1.17324e-06, 1.41441723025, 625.670192312 },
  2093.     { 9.6673e-07, 4.03472268105, 110.206321219 },
  2094.     { 9.0824e-07, 1.10616181082, 95.9792272178 },
  2095.     { 7.8757e-07, 4.63773672633, 543.918059096 },
  2096.     { 7.2393e-07, 2.21660922294, 735.876513532 },
  2097.     { 8.732e-07, 2.52152838765, 632.783739313 },
  2098.     { 5.6885e-07, 3.12193937495, 213.299095438 },
  2099.     { 4.8615e-07, 1.67250930065, 309.278322656 },
  2100.     { 5.8472e-07, 0.83261136328, 199.072001436 },
  2101.     { 4.0161e-07, 4.02477739294, 21.3406410024 },
  2102.     { 3.9773e-07, 0.62346681537, 323.505416657 },
  2103.     { 3.5738e-07, 2.32587552001, 728.762966531 },
  2104.     { 2.561e-07, 2.52090555309, 1162.47470441 },
  2105.     { 2.9257e-07, 3.60827234952, 10.2949407385 },
  2106.     { 2.3621e-07, 3.00418693282, 956.289155971 },
  2107.     { 2.779e-07, 3.24029772587, 838.96928775 },
  2108.     { 2.5988e-07, 4.50541789846, 742.990060533 },
  2109.     { 2.5259e-07, 1.21368179972, 1045.15483619 },
  2110.     { 1.9456e-07, 4.29184444888, 532.872358832 },
  2111.     { 1.616e-07, 5.81618778562, 1596.18644228 },
  2112.     { 1.7655e-07, 0.8091545878, 508.350324092 },
  2113.     { 1.7714e-07, 4.21087482222, 2118.76386038 },
  2114.     { 1.695e-07, 1.83162996779, 526.509571357 },
  2115.     { 1.4656e-07, 3.99869563261, 117.31986822 },
  2116.     { 1.3717e-07, 1.80293013315, 302.164775655 },
  2117.     { 1.3232e-07, 2.51839383442, 88.865680217 },
  2118.     { 1.2771e-07, 4.3696527712, 1169.58825141 },
  2119.     { 1.5311e-07, 0.68283508612, 942.062061969 },
  2120.     { 1.0924e-07, 4.44465911708, 525.758811831 },
  2121.     { 1.3902e-07, 5.9586109821, 316.391869657 },
  2122.     { 9.462e-08, 2.17903550202, 1155.36115741 },
  2123.     { 8.792e-08, 3.29010679292, 220.412642439 },
  2124.     { 7.851e-08, 5.76115179798, 846.082834751 },
  2125.     { 7.64e-08, 2.7204502155, 533.623118358 },
  2126.     { 9.055e-08, 1.63552089571, 1581.95934828 },
  2127.     { 8.687e-08, 3.31770180816, 831.85574075 },
  2128.     { 6.355e-08, 0.49733352086, 949.17560897 },
  2129.     { 6.615e-08, 2.18391508427, 1265.56747863 },
  2130.     { 5.38e-08, 6.00496610446, 405.257549874 },
  2131.     { 4.562e-08, 1.38462817429, 1258.45393163 },
  2132.     { 4.367e-08, 5.07489817646, 1073.60902419 },
  2133.     { 4.28e-08, 3.04118697325, 1692.1656695 },
  2134.     { 4.371e-08, 5.474919646, 433.711737877 },
  2135.     { 4.201e-08, 5.28578420235, 18.1592472647 },
  2136.     { 3.95e-08, 1.25151054185, 853.196381752 },
  2137.     { 5.302e-08, 3.65714557917, 1272.68102563 },
  2138.     { 4.368e-08, 2.27494144993, 1368.66025285 },
  2139.     { 3.462e-08, 1.50340907962, 519.396024356 },
  2140.     { 2.757e-08, 2.16577371531, 1478.86657406 },
  2141.     { 2.704e-08, 1.04777971186, 1574.84580128 },
  2142.     { 2.891e-08, 2.04866759038, 1361.54670584 },
  2143.     { 3.075e-08, 0.9910538683, 191.958454436 },
  2144.     { 2.437e-08, 2.36815291342, 1471.75302706 },
  2145.     { 2.201e-08, 2.47797001828, 721.64941953 },
  2146.     { 2.093e-08, 3.72335003599, 1485.98012107 },
  2147.     { 2.273e-08, 3.03212449012, 1148.24761041 },
  2148.     { 1.947e-08, 1.8876418002, 1685.0521225 },
  2149.     { 2.057e-08, 6.18001258073, 330.618963658 },
  2150.     { 1.451e-08, 4.72055072637, 32.2433289144 },
  2151.     { 1.449e-08, 3.1879914905, 635.965133051 },
  2152.     { 1.377e-08, 5.12507193192, 1375.77379985 },
  2153.     { 1.421e-08, 1.9924918846, 629.602345575 },
  2154.     { 1.401e-08, 4.26834108454, 551.031606097 },
  2155.     { 1.265e-08, 0.00691519565, 2125.87740738 },
  2156.     { 1.272e-08, 2.25106018556, 1788.14489672 },
  2157.     { 1.238e-08, 1.75660677516, 1677.9385755 },
  2158.     { 1.206e-08, 2.18559244687, 1795.25844372 },
  2159.     { 1.493e-08, 4.02813570061, 539.985905833 },
  2160.     { 1.314e-08, 4.76481710487, 1062.56332393 },
  2161.     { 1.11e-08, 2.97713206981, 81.7521332162 },
  2162.     { 1.027e-08, 1.99159218429, 295.051228654 },
  2163.     { 1.368e-08, 4.63088532557, 2648.45482547 },
  2164.     { 1.025e-08, 3.75336759986, 28.4541880032 },
  2165.     { 9.78e-09, 3.01394148632, 124.433415221 },
  2166.     { 1.227e-08, 1.22879053363, 1038.04128919 },
  2167.     { 9.65e-09, 1.17674106025, 99.9113804809 },
  2168.     { 1.015e-08, 1.8592221639, 750.103607533 },
  2169.     { 9.24e-09, 3.53294521831, 227.52618944 },
  2170.     { 9.88e-09, 5.05622576252, 1699.2792165 },
  2171.     { 1.059e-08, 0.13477400877, 416.303250138 },
  2172.     { 8.19e-09, 2.0194816163, 1056.20053645 },
  2173.     { 8.88e-09, 1.75920995401, 1898.35121794 },
  2174.     { 1.013e-08, 2.80784883642, 1464.63948006 },
  2175.     { 7.91e-09, 4.92419444433, 1055.44977693 },
  2176.     { 7.74e-09, 1.91132974373, 2111.65031338 },
  2177.     { 7.29e-09, 3.2901665697, 628.85158605 },