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

OpenGL

开发平台:

Visual C++

  1.     { 8.489e-08, 3.911747962, 333.657345044 },
  2.     { 8.708e-08, 5.81537952972, 153.495350398 },
  3.     { 1.0194e-07, 5.97791997034, 35.1640902212 },
  4.     { 9.652e-08, 0.38887666466, 415.552490612 },
  5.     { 7.106e-08, 1.5059848847, 991.713878623 },
  6.     { 8.055e-08, 2.25812279923, 206.185548437 },
  7.     { 6.468e-08, 2.99863142327, 380.12776796 },
  8.     { 6.393e-08, 1.1686180992, 96.8729990951 },
  9.     { 8.976e-08, 6.05363032396, 146.381803397 },
  10.     { 6.131e-08, 0.05596259493, 99.1606209555 },
  11.     { 5.803e-08, 0.79879069877, 142.449650134 },
  12.     { 5.816e-08, 4.63029217647, 49.5088043018 },
  13.     { 5.557e-08, 0.63854330387, 58.1068240109 },
  14.     { 5.869e-08, 2.21418083323, 80.1982245387 },
  15.     { 5.162e-08, 4.36457872885, 977.486784621 },
  16.     { 5.428e-08, 0.85181859845, 546.956440482 },
  17.     { 5.75e-08, 2.48104577171, 373.014220959 },
  18.     { 5.766e-08, 0.34229026122, 536.804512095 },
  19.     { 5.924e-08, 5.48443563529, 76.4785195967 },
  20.     { 5.154e-08, 4.81339702575, 387.241314961 },
  21.     { 5.325e-08, 3.72411790512, 23.5758732361 },
  22.     { 5.037e-08, 5.06388596602, 440.682272526 },
  23.     { 5.209e-08, 4.09574144962, 132.888422578 },
  24.     { 5.79e-08, 3.39593613152, 458.090760265 },
  25.     { 5.007e-08, 4.25821411688, 522.577418094 },
  26.     { 5.114e-08, 0.4964558173, 60.7669528868 },
  27.     { 5.027e-08, 6.1524848967, 39.6175083461 },
  28.     { 5.183e-08, 3.25775152471, 561.183534484 },
  29.     { 4.603e-08, 1.69268338637, 152.532142551 },
  30.     { 4.566e-08, 0.46068888813, 33.1371007917 },
  31.     { 5.302e-08, 1.83522660093, 124.290402869 },
  32.     { 4.454e-08, 2.30288945184, 312.459716394 },
  33.     { 5.766e-08, 0.6606915576, 38.1330356378 },
  34.     { 4.255e-08, 3.58596694157, 479.288388915 },
  35.     { 4.315e-08, 1.64104755836, 128.956269315 },
  36.     { 4.19e-08, 4.37674804409, 79.2350166922 },
  37.     { 5.756e-08, 0.87494010124, 20.6069278195 },
  38.     { 5.409e-08, 0.87333646247, 81.8951455681 },
  39.     { 5.124e-08, 1.40551554367, 144.146571163 },
  40.     { 4.045e-08, 6.07362424621, 19.643719973 },
  41.     { 3.994e-08, 5.77048046468, 288.080694005 },
  42.     { 4.987e-08, 2.99179430284, 29.2049475286 },
  43.     { 3.87e-08, 4.43713601497, 141.698890608 },
  44.     { 3.811e-08, 3.15820960943, 159.12442469 },
  45.     { 4.553e-08, 0.01384318412, 298.232622392 },
  46.     { 3.737e-08, 5.28319518103, 353.301065017 },
  47.     { 3.742e-08, 2.67921642406, 426.598190876 },
  48.     { 3.939e-08, 5.27301148162, 521.092945386 },
  49.     { 5.065e-08, 4.09433474334, 111.430161497 },
  50.     { 3.861e-08, 1.343943837, 535.320039387 },
  51.     { 3.619e-08, 5.10070043677, 490.334089179 },
  52.     { 4.385e-08, 0.620576801, 827.172827961 },
  53.     { 3.645e-08, 0.34509016266, 33.6796175129 },
  54.     { 3.558e-08, 2.51710360898, 258.875746477 },
  55.     { 3.919e-08, 0.62079541541, 152.010877689 },
  56.     { 3.576e-08, 3.24526237368, 230.564570825 },
  57.     { 3.469e-08, 0.79054323335, 983.115858914 },
  58.     { 4.53e-08, 2.86839686392, 129.919477162 },
  59.     { 3.648e-08, 5.59395544992, 774.482629922 },
  60.     { 3.44e-08, 4.71254994607, 6.9010986797 },
  61.     { 3.513e-08, 4.49630054276, 376.195614697 },
  62.     { 4.521e-08, 2.05472247761, 404.506790348 },
  63.     { 3.336e-08, 0.89628904042, 469.136460529 },
  64.     { 3.274e-08, 3.86236880159, 42.5382696529 },
  65.     { 3.201e-08, 2.76459652868, 248.72381809 },
  66.     { 3.184e-08, 0.07709843451, 1514.29129672 },
  67.     { 3.783e-08, 5.29835962126, 369.082067696 },
  68.     { 3.119e-08, 1.27526406087, 200.768922466 },
  69.     { 3.266e-08, 2.24754480216, 73.8183907208 },
  70.     { 3.055e-08, 2.60120354408, 433.711737877 },
  71.     { 3.051e-08, 4.54953369151, 980.668178359 },
  72.     { 3.472e-08, 4.93521260607, 411.620337349 },
  73.     { 3.531e-08, 4.49372794858, 881.507557403 },
  74.     { 3.284e-08, 5.59170577331, 472.174841915 },
  75.     { 3.049e-08, 3.68906777491, 16.6747745564 },
  76.     { 3.015e-08, 6.02967446446, 291.262087743 },
  77.     { 3.755e-08, 3.1258774756, 108.46121608 },
  78.     { 3.467e-08, 2.17484439267, 554.069987483 },
  79.     { 3.138e-08, 0.52367930477, 1094.80665284 },
  80.     { 3.257e-08, 2.49339546514, 451.72797279 },
  81.     { 2.886e-08, 2.44887846041, 135.336103133 },
  82.     { 2.965e-08, 0.3929499553, 25.2727942655 },
  83.     { 2.794e-08, 5.32964924523, 125.987323898 },
  84.     { 2.814e-08, 1.70481689541, 639.897286314 },
  85.     { 2.777e-08, 5.94801147914, 89.7594520943 },
  86.     { 2.831e-08, 2.52728803131, 867.280463402 },
  87.     { 2.779e-08, 0.48501334493, 305.346169393 },
  88.     { 2.872e-08, 0.77434367967, 486.401935916 },
  89.     { 2.857e-08, 4.71106805785, 218.928169731 },
  90.     { 3.081e-08, 4.10993868704, 146.594251718 },
  91.     { 2.763e-08, 4.27510031656, 350.3321196 },
  92.     { 3.365e-08, 3.67691210011, 661.094914965 },
  93.     { 2.925e-08, 1.43646759644, 381.612240668 },
  94.     { 2.802e-08, 3.11122994722, 216.480489176 },
  95.     { 2.756e-08, 4.6267249884, 1357.61455258 },
  96.     { 3.45e-08, 2.12911756067, 685.473937353 },
  97.     { 2.646e-08, 3.81808560938, 550.888593745 },
  98.     { 2.584e-08, 5.63009428967, 24.3790223882 },
  99.     { 2.74e-08, 1.85885336732, 529.690965095 },
  100.     { 2.606e-08, 4.36605237304, 1080.57955884 },
  101.     { 2.438e-08, 3.04265976382, 391.173468224 },
  102.     { 2.446e-08, 5.7384638154, 535.910740218 },
  103.     { 2.471e-08, 4.1814010428, 235.390495966 },
  104.     { 2.568e-08, 1.09886876369, 913.000126792 },
  105.     { 2.346e-08, 1.88690998393, 82.8583534146 },
  106.     { 2.301e-08, 0.2711625493, 7.8643065262 },
  107.     { 3.053e-08, 5.35047433775, 681.54178409 },
  108.     { 2.29e-08, 2.49218620138, 203.737867882 },
  109.     { 2.325e-08, 0.52844013308, 14.2270940016 },
  110.     { 2.258e-08, 0.0315661773, 398.287015225 },
  111.     { 2.16e-08, 6.01811980506, 140.001969579 },
  112.     { 2.328e-08, 3.12607654898, 273.102840478 },
  113.     { 2.139e-08, 4.33383273131, 91.4563731237 },
  114.     { 2.723e-08, 1.24464892033, 166.828672522 },
  115.     { 2.053e-08, 4.3243438112, 515.463871093 },
  116.     { 2.398e-08, 5.9014427096, 79.4474650133 },
  117.     { 2.222e-08, 4.80208391464, 268.436974032 },
  118.     { 2.31e-08, 0.48180017719, 14.0146456805 },
  119.     { 2.022e-08, 5.85402756377, 271.405919449 },
  120.     { 2.521e-08, 3.23111737258, 901.954426528 },
  121.     { 2.369e-08, 2.40985582671, 73.0846775379 },
  122.     { 2.034e-08, 0.47496124187, 2043.98226181 },
  123.     { 1.955e-08, 6.21237525891, 384.059921223 },
  124.     { 1.954e-08, 3.38054663002, 820.05928096 },
  125.     { 1.867e-08, 5.32253331194, 31.492569389 },
  126.     { 2.416e-08, 0.0642020989, 419.484643875 },
  127.     { 1.762e-08, 5.772005785, 1589.07289528 },
  128.     { 1.762e-08, 4.23427755214, 1439.50969815 },
  129.     { 1.925e-08, 0.79521713622, 184.094147909 },
  130.     { 2.204e-08, 0.52846501316, 278.51946645 },
  131.     { 2.228e-08, 4.32684227036, 66.9172920411 },
  132.     { 1.679e-08, 5.14179135334, 1059.38193019 },
  133.     { 1.706e-08, 1.54289098759, 234.496724089 },
  134.     { 1.625e-08, 5.07314285147, 100.384461233 },
  135.     { 1.609e-08, 6.16926697458, 1119.18567523 },
  136.     { 2.033e-08, 3.53119363701, 109.945688788 },
  137.     { 2.129e-08, 1.22429037482, 184.727287356 },
  138.     { 1.717e-08, 2.42144217711, 678.360390352 },
  139.     { 1.717e-08, 3.95917040998, 827.923587486 },
  140.     { 1.81e-08, 0.05278694247, 17.2654753874 },
  141.     { 1.585e-08, 1.88716701489, 4.4534181249 },
  142.     { 1.577e-08, 5.35894329524, 1894.41906468 },
  143.     { 1.523e-08, 3.77627435709, 181.055766524 },
  144.     { 1.534e-08, 0.19778048653, 135.548551454 },
  145.     { 1.506e-08, 2.95864025543, 849.264228489 },
  146.     { 1.506e-08, 1.35493797085, 998.827425623 },
  147.     { 1.722e-08, 5.00518792666, 699.701031354 },
  148.     { 1.722e-08, 3.46745969379, 550.13783422 },
  149.     { 1.643e-08, 5.86122302822, 89.0086925689 },
  150.     { 1.52e-08, 1.42254433373, 0.2124483211 },
  151.     { 1.529e-08, 0.77073213979, 329.725191781 },
  152.     { 1.458e-08, 5.90775641818, 147.11551658 },
  153.     { 1.792e-08, 1.11686829848, 453.424893819 },
  154.     { 1.498e-08, 2.6114567579, 365.900673958 },
  155.     { 1.793e-08, 2.14241351007, 211.81462273 },
  156.     { 1.58e-08, 5.57997675255, 785.528330185 },
  157.     { 1.58e-08, 4.04224851969, 635.965133051 },
  158.     { 1.835e-08, 4.31480288855, 465.955066791 },
  159.     { 1.407e-08, 4.94842057032, 74.8934731519 },
  160.     { 1.403e-08, 5.15016124506, 180.161994646 },
  161.     { 1.42e-08, 2.60452620081, 95.3885263868 },
  162.     { 1.383e-08, 5.95287019467, 74.6697239827 },
  163.     { 1.382e-08, 2.10457236484, 458.84151979 },
  164.     { 1.513e-08, 1.88475439191, 1051.51762366 },
  165.     { 1.368e-08, 5.67966974902, 66.70484372 },
  166. };
  167. static VSOPTerm uranus_R3[] = {
  168.     { 1.164663e-05, 4.73440180792, 74.7815985673 },
  169.     { 2.12363e-06, 3.34268349684, 63.7358983034 },
  170.     { 1.96315e-06, 2.981012371, 70.8494453042 },
  171.     { 1.04707e-06, 0.95789279555, 11.0457002639 },
  172.     { 7.1681e-07, 0.02528295071, 56.6223513026 },
  173.     { 7.2719e-07, 0.99479831041, 149.563197135 },
  174.     { 5.4933e-07, 2.59936585639, 3.9321532631 },
  175.     { 3.4026e-07, 3.82319495878, 76.2660712756 },
  176.     { 3.2081e-07, 3.59825177872, 131.40394987 },
  177.     { 2.9569e-07, 3.44303690664, 85.8272988312 },
  178.     { 3.6377e-07, 5.65035573026, 77.962992305 },
  179.     { 2.7625e-07, 0.42885477377, 3.1813937377 },
  180.     { 2.7552e-07, 2.55709855563, 52.6901980395 },
  181.     { 2.474e-07, 5.14634979896, 78.7137518304 },
  182.     { 1.9382e-07, 5.13444064222, 18.1592472647 },
  183.     { 1.5767e-07, 0.37116951743, 447.795819526 },
  184.     { 1.5441e-07, 5.57271837433, 462.022913528 },
  185.     { 1.5035e-07, 3.84415419523, 73.297125859 },
  186.     { 1.545e-07, 2.9757251436, 145.631043871 },
  187.     { 1.7788e-07, 0, 0 },
  188.     { 1.5958e-07, 5.19915553861, 71.6002048296 },
  189.     { 1.078e-07, 6.02554585112, 138.517496871 },
  190.     { 1.0347e-07, 3.60350847669, 224.344795702 },
  191.     { 7.612e-08, 1.47668980969, 1.4844727083 },
  192.     { 8.14e-08, 2.61444086595, 22.0914005278 },
  193.     { 7.107e-08, 5.43946774526, 269.921446741 },
  194.     { 6.459e-08, 4.37142319461, 284.148540742 },
  195.     { 6.817e-08, 0.0148593733, 151.047669843 },
  196.     { 7.811e-08, 0.29898229022, 127.471796607 },
  197.     { 5.768e-08, 4.22672716677, 373.014220959 },
  198.     { 5.105e-08, 1.81797461354, 202.253395174 },
  199.     { 4.692e-08, 2.7840457544, 120.358249606 },
  200.     { 5.071e-08, 0.7664167964, 62.2514255951 },
  201.     { 4.133e-08, 1.8887930071, 209.366942175 },
  202.     { 5.201e-08, 4.15791319343, 195.139848173 },
  203.     { 3.946e-08, 1.83105030444, 72.3339180125 },
  204.     { 3.582e-08, 3.92592140377, 124.290402869 },
  205.     { 4.34e-08, 3.99626115302, 9.5612275556 },
  206.     { 3.739e-08, 1.50894993813, 148.078724426 },
  207.     { 3.436e-08, 1.99291271003, 65.2203710117 },
  208.     { 3.835e-08, 1.15614639932, 153.495350398 },
  209.     { 3.593e-08, 0.94897593272, 92.940845832 },
  210.     { 3.95e-08, 1.85721204646, 152.744590872 },
  211.     { 3.277e-08, 1.40881404192, 351.816592309 },
  212.     { 3.058e-08, 5.76662885271, 160.608897399 },
  213.     { 2.719e-08, 5.64780369357, 134.585343608 },
  214.     { 2.8e-08, 0.79480255927, 572.229234747 },
  215.     { 2.727e-08, 6.00569967758, 12.5301729722 },
  216.     { 2.524e-08, 3.05071097098, 387.241314961 },
  217.     { 2.662e-08, 1.98593312104, 450.977213264 },
  218.     { 2.391e-08, 1.62282528307, 358.93013931 },
  219.     { 2.57e-08, 2.81202618885, 213.299095438 },
  220.     { 2.291e-08, 4.81424601791, 536.804512095 },
  221.     { 2.213e-08, 2.20360299816, 465.955066791 },
  222.     { 2.345e-08, 3.89530188536, 76.4785195967 },
  223.     { 1.99e-08, 6.00348345539, 77.2292791221 },
  224.     { 1.836e-08, 0.86993337572, 288.080694005 },
  225.     { 2.233e-08, 4.20038854663, 45.5766510387 },
  226.     { 1.745e-08, 4.28595550732, 67.6680515665 },
  227.     { 1.715e-08, 5.36211200127, 84.3428261229 },
  228.     { 1.64e-08, 5.46719808619, 309.278322656 },
  229.     { 1.64e-08, 3.86349580161, 458.84151979 },
  230.     { 1.728e-08, 3.60055588821, 81.8951455681 },
  231.     { 1.483e-08, 3.46836166107, 59.8037450403 },
  232.     { 1.463e-08, 3.58895839694, 347.884439046 },
  233.     { 1.415e-08, 1.8281699263, 497.44763618 },
  234.     { 1.399e-08, 5.26616832831, 909.818733055 },
  235.     { 1.399e-08, 3.66246604373, 1059.38193019 },
  236.     { 1.401e-08, 4.64442933182, 96.8729990951 },
  237. };
  238. static VSOPTerm uranus_R4[] = {
  239.     { 5.3224e-07, 3.00468894529, 74.7815985673 },
  240.     { 9.887e-08, 1.91399083603, 56.6223513026 },
  241.     { 7.008e-08, 5.08677527404, 11.0457002639 },
  242.     { 6.718e-08, 5.39509675772, 149.563197135 },
  243.     { 3.855e-08, 5.18994119112, 131.40394987 },
  244.     { 3.316e-08, 1.22839100759, 85.8272988312 },
  245.     { 2.664e-08, 0.44064577837, 63.7358983034 },
  246.     { 2.309e-08, 0.92380720934, 145.631043871 },
  247.     { 2.383e-08, 6.21390585593, 358.93013931 },
  248.     { 2.288e-08, 2.23425399117, 440.682272526 },
  249.     { 2.472e-08, 3.28269448244, 18.1592472647 },
  250.     { 2.837e-08, 3.14159265359, 0 },
  251. };
  252. static VSOPTerm neptune_L0[] = {
  253.     { 5.31188633046, 0, 0 },
  254.     { 0.0179847553, 2.9010127389, 38.1330356378 },
  255.     { 0.01019727652, 0.48580922867, 1.4844727083 },
  256.     { 0.00124531845, 4.83008090676, 36.6485629295 },
  257.     { 0.00042064466, 5.41054993053, 2.9689454166 },
  258.     { 0.00037714584, 6.09221808686, 35.1640902212 },
  259.     { 0.00033784738, 1.24488874087, 76.2660712756 },
  260.     { 0.00016482741, 7.727998e-05, 491.557929457 },
  261.     { 9.198584e-05, 4.93747051954, 39.6175083461 },
  262.     { 8.99425e-05, 0.27462171806, 175.1660598 },
  263.     { 4.216242e-05, 1.98711875978, 73.297125859 },
  264.     { 3.364807e-05, 1.03590060915, 33.6796175129 },
  265.     { 2.2848e-05, 4.20606949415, 4.4534181249 },
  266.     { 1.433516e-05, 2.78339802539, 74.7815985673 },
  267.     { 9.00236e-06, 2.07607168714, 109.945688788 },
  268.     { 7.44997e-06, 3.19032509437, 71.8126531507 },
  269.     { 5.06217e-06, 5.7478606968, 114.399106913 },
  270.     { 3.99552e-06, 0.34972342836, 1021.24889455 },
  271.     { 3.45189e-06, 3.46185292806, 41.1019810544 },
  272.     { 3.06338e-06, 0.49684052934, 0.5212648618 },
  273.     { 2.87322e-06, 4.50523446022, 0.0481841098 },
  274.     { 3.23003e-06, 2.24814943701, 32.1951448046 },
  275.     { 3.40303e-06, 3.30376245107, 77.7505439839 },
  276.     { 2.66605e-06, 4.8893260559, 0.9632078465 },
  277.     { 2.27079e-06, 1.79713146385, 453.424893819 },
  278.     { 2.44722e-06, 1.24693366148, 9.5612275556 },
  279.     { 2.32888e-06, 2.50459784128, 137.033024162 },
  280.     { 2.8217e-06, 2.2456558998, 146.594251718 },
  281.     { 2.51941e-06, 5.78166617117, 388.465155238 },
  282.     { 1.50188e-06, 2.99706170691, 5.9378908332 },
  283.     { 1.70404e-06, 3.32390687638, 108.46121608 },
  284.     { 1.51401e-06, 2.19153150087, 33.9402499438 },
  285.     { 1.48305e-06, 0.85949274408, 111.430161497 },
  286.     { 1.18672e-06, 3.67706211426, 2.4476805548 },
  287.     { 1.01821e-06, 5.70539236951, 0.1118745846 },
  288.     { 9.7873e-07, 2.80518417596, 8.0767548473 },
  289.     { 1.03059e-06, 4.40432042649, 70.3281804424 },
  290.     { 1.03305e-06, 0.04078966679, 0.2606324309 },
  291.     { 1.09299e-06, 2.41599473953, 183.242814648 },
  292.     { 7.3938e-07, 1.32805035282, 529.690965095 },
  293.     { 7.7725e-07, 4.16446516489, 4.192785694 },
  294.     { 8.6312e-07, 4.22838781137, 490.073456749 },
  295.     { 8.1558e-07, 5.19840134548, 493.042402165 },
  296.     { 7.1503e-07, 5.29530376008, 350.3321196 },
  297.     { 6.4418e-07, 3.54540876782, 168.052512799 },
  298.     { 6.257e-07, 0.15028731307, 182.279606801 },
  299.     { 5.8488e-07, 3.50107011546, 145.10977901 },
  300.     { 4.8286e-07, 1.1125900709, 112.914634205 },
  301.     { 4.7229e-07, 4.57373234943, 46.2097904851 },
  302.     { 3.9124e-07, 1.66569494185, 213.299095438 },
  303.     { 4.7728e-07, 0.12906212459, 484.444382456 },
  304.     { 4.6858e-07, 3.01699530311, 498.671476458 },
  305.     { 3.8659e-07, 2.38685681991, 2.9207613068 },
  306.     { 4.7046e-07, 4.49844734537, 173.681587092 },
  307.     { 4.7565e-07, 2.58404545035, 219.891377577 },
  308.     { 4.4714e-07, 5.47302844713, 176.650532508 },
  309.     // 56 terms retained
  310. };
  311. static VSOPTerm neptune_L1[] = {
  312.     { 38.1330356396, 0, 0 },
  313.     { 0.00016604172, 4.86323329249, 1.4844727083 },
  314.     { 0.00015744045, 2.27887427527, 38.1330356378 },
  315.     { 1.306261e-05, 3.6728520962, 2.9689454166 },
  316.     { 6.04842e-06, 1.5048304279, 35.1640902212 },
  317.     { 1.82909e-06, 3.45225794434, 39.6175083461 },
  318.     { 1.95106e-06, 0.88660326088, 76.2660712756 },
  319.     { 1.0641e-06, 2.44986610969, 4.4534181249 },
  320.     { 1.0559e-06, 2.75516054635, 33.6796175129 },
  321.     { 7.2757e-07, 5.49395347003, 36.6485629295 },
  322.     { 5.7069e-07, 5.2164980497, 0.5212648618 },
  323.     { 2.9871e-07, 3.67043294114, 388.465155238 },
  324.     { 2.8866e-07, 5.16877538898, 9.5612275556 },
  325.     { 2.8742e-07, 5.16732589024, 2.4476805548 },
  326.     { 2.5507e-07, 5.24526281928, 168.052512799 },
  327.     { 2.4869e-07, 4.73193067879, 182.279606801 },
  328.     { 2.0205e-07, 5.78945415677, 1021.24889455 },
  329.     { 1.9022e-07, 1.82981144269, 484.444382456 },
  330.     { 1.8661e-07, 1.31606255521, 498.671476458 },
  331.     { 1.5039e-07, 4.94966181697, 137.033024162 },
  332.     { 1.5094e-07, 3.98706934679, 32.1951448046 },
  333.     { 1.0804e-07, 1.93261742828, 41.1019810544 },
  334.     { 1.072e-07, 2.44148207341, 4.192785694 },
  335.     { 1.1765e-07, 4.87825331237, 71.8126531507 },
  336.     { 9.363e-08, 3.07523176644, 74.7815985673 },
  337.     { 9.58e-08, 1.23193270898, 5.9378908332 },
  338.     { 8.968e-08, 0.01758782577, 8.0767548473 },
  339.     { 9.882e-08, 6.08165614859, 7.1135470008 },
  340.     { 6.992e-08, 0.61688829918, 2.9207613068 },
  341.     { 6.19e-08, 5.32293546028, 114.399106913 },
  342.     { 5.543e-08, 2.24141643357, 46.2097904851 },
  343.     { 5.578e-08, 5.45096032574, 73.297125859 },
  344.     { 5.858e-08, 1.72552768872, 77.7505439839 },
  345.     // 33 terms retained
  346. };
  347. static VSOPTerm neptune_L2[] = {
  348.     { 2.86136e-06, 1.18985661922, 38.1330356378 },
  349.     { 2.9565e-06, 1.85520880574, 1.4844727083 },
  350.     { 1.02284e-06, 0, 0 },
  351.     { 2.2987e-07, 1.21060882957, 2.9689454166 },
  352.     { 7.332e-08, 0.53982718012, 2.4476805548 },
  353.     { 9.112e-08, 4.42541280638, 35.1640902212 },
  354.     { 5.223e-08, 0.67422237527, 168.052512799 },
  355.     { 5.201e-08, 3.02334762854, 182.279606801 },
  356.     { 3.925e-08, 3.53215364421, 484.444382456 },
  357.     { 3.741e-08, 5.90239568618, 498.671476458 },
  358.     { 3.054e-08, 0.28898269237, 4.4534181249 },
  359.     { 3.382e-08, 5.91086982903, 76.2660712756 },
  360.     { 3.289e-08, 1.84550132467, 175.1660598 },
  361.     { 2.157e-08, 1.89134644831, 388.465155238 },
  362.     { 2.211e-08, 4.37947574774, 7.1135470008 },
  363.     { 1.955e-08, 5.15138892758, 33.6796175129 },
  364.     { 1.847e-08, 3.48560457075, 9.5612275556 },
  365.     { 2.436e-08, 4.68322560973, 491.557929457 },
  366.     { 1.674e-08, 2.55582666306, 36.6485629295 },
  367.     { 1.309e-08, 4.52441960698, 1021.24889455 },
  368.     // 20 terms retained
  369. };
  370. static VSOPTerm neptune_L3[] = {
  371.     { 1.2472e-07, 6.04427218715, 1.4844727083 },
  372.     { 1.1257e-07, 6.11436681584, 38.1330356378 },
  373.     { 4.354e-08, 3.14159265359, 0 },
  374.     { 1.39e-08, 4.95198243861, 2.9689454166 },
  375.     // 4 terms retained
  376. };
  377. static VSOPTerm neptune_B0[] = {
  378.     { 0.03088622933, 1.44104372644, 38.1330356378 },
  379.     { 0.00027780087, 5.91271884599, 76.2660712756 },
  380.     { 0.00027623609, 0, 0 },
  381.     { 0.00015355489, 2.52123799551, 36.6485629295 },
  382.     { 0.00015448133, 3.50877079215, 39.6175083461 },
  383.     { 1.999918e-05, 1.50998668632, 74.7815985673 },
  384.     { 1.96754e-05, 4.37778196626, 1.4844727083 },
  385.     { 1.015137e-05, 3.21560997434, 35.1640902212 },
  386.     { 6.05767e-06, 2.80246592015, 73.297125859 },
  387.     { 5.94878e-06, 2.12892696997, 41.1019810544 },
  388.     { 5.88806e-06, 3.18655898167, 2.9689454166 },
  389.     { 4.0183e-06, 4.16883411107, 114.399106913 },
  390.     { 2.54333e-06, 3.27120475878, 453.424893819 },
  391.     { 2.61647e-06, 3.76722702982, 213.299095438 },
  392.     { 2.79963e-06, 1.68165289071, 77.7505439839 },
  393.     { 2.0559e-06, 4.25652269561, 529.690965095 },
  394.     { 1.40455e-06, 3.52969120587, 137.033024162 },
  395.     { 9.853e-07, 4.16774786185, 33.6796175129 },
  396.     // 18 terms retained
  397. };
  398. static VSOPTerm neptune_B1[] = {
  399.     { 5.150897e-05, 2.14270496419, 38.1330356378 },
  400.     { 2.58298e-06, 5.4653959892, 76.2660712756 },
  401.     { 2.51862e-06, 4.40444268588, 36.6485629295 },
  402.     { 2.34436e-06, 1.65983511437, 39.6175083461 },
  403.     { 2.08814e-06, 0, 0 },
  404.     { 2.5312e-07, 6.00917621033, 35.1640902212 },
  405.     { 1.7795e-07, 4.95721064558, 213.299095438 },
  406.     { 1.7841e-07, 0.44821000048, 41.1019810544 },
  407.     { 1.3152e-07, 1.49958304388, 529.690965095 },
  408.     { 1.0729e-07, 4.39946094022, 73.297125859 },
  409.     { 8.422e-08, 1.55833887152, 2.9689454166 },
  410.     // 11 terms retained
  411. };
  412. static VSOPTerm neptune_B2[] = {
  413.     { 4.2058e-07, 1.91480759314, 38.1330356378 },
  414.     { 4.359e-08, 4.77459417163, 39.6175083461 },
  415.     { 4.23e-08, 1.12991232222, 36.6485629295 },
  416.     { 4.166e-08, 4.37185631758, 76.2660712756 },
  417.     // 4 terms retained
  418. };
  419. static VSOPTerm neptune_B3[] = {
  420.     { 4.131e-08, 3.06928911462, 38.1330356378 },
  421.     // 1 terms retained
  422. };
  423. static VSOPTerm neptune_R0[] = {
  424.     { 30.0701320583, 0, 0 },
  425.     { 0.27062259632, 1.32999459377, 38.1330356378 },
  426.     { 0.01691764014, 3.25186135653, 36.6485629295 },
  427.     { 0.00807830553, 5.18592878704, 1.4844727083 },
  428.     { 0.0053776051, 4.52113935896, 35.1640902212 },
  429.     { 0.00495725141, 1.5710564165, 491.557929457 },
  430.     { 0.00274571975, 1.84552258866, 175.1660598 },
  431.     { 0.00135134092, 3.37220609835, 39.6175083461 },
  432.     { 0.00121801746, 5.79754470298, 76.2660712756 },
  433.     { 0.00100896068, 0.3770272493, 73.297125859 },
  434.     { 0.00069791331, 3.79616637768, 2.9689454166 },
  435.     { 0.00046687836, 5.74938034313, 33.6796175129 },
  436.     { 0.00024594531, 0.50801745878, 109.945688788 },
  437.     { 0.00016939478, 1.59422512526, 71.8126531507 },
  438.     { 0.00014229808, 1.07785898723, 74.7815985673 },
  439.     { 0.0001201232, 1.92059384991, 1021.24889455 },
  440.     { 8.394349e-05, 0.67818233586, 146.594251718 },
  441.     { 7.571796e-05, 1.07149207335, 388.465155238 },
  442.     { 5.720872e-05, 2.59061733345, 4.4534181249 },
  443.     { 4.84021e-05, 1.90681013048, 41.1019810544 },
  444.     { 4.483493e-05, 2.90573464537, 529.690965095 },
  445.     { 4.269595e-05, 3.4133352687, 453.424893819 },
  446.     { 4.353588e-05, 0.67984856103, 32.1951448046 },
  447.     { 4.420549e-05, 1.74990681127, 108.46121608 },
  448.     { 2.879755e-05, 1.98627174527, 137.033024162 },
  449.     { 2.635535e-05, 3.09755951044, 213.299095438 },
  450.     { 3.381113e-05, 0.84810966225, 183.242814648 },
  451.     { 2.877511e-05, 3.67417203197, 350.3321196 },
  452.     { 2.306505e-05, 2.80964587883, 70.3281804424 },
  453.     { 2.529939e-05, 5.79822254729, 490.073456749 },
  454.     { 2.522868e-05, 0.48612122962, 493.042402165 },
  455.     { 2.085926e-05, 0.61853857468, 33.9402499438 },
  456.     { 1.976522e-05, 5.1170304456, 168.052512799 },
  457.     { 1.904055e-05, 1.72165893329, 182.279606801 },
  458.     { 1.653525e-05, 1.9278198756, 145.10977901 },
  459.     { 1.434507e-05, 1.69985856533, 484.444382456 },
  460.     { 1.403029e-05, 4.58914203187, 498.671476458 },
  461.     { 1.499989e-05, 1.01619882251, 219.891377577 },
  462.     { 1.397976e-05, 0.76199761055, 176.650532508 },
  463.     { 1.402764e-05, 6.07659120736, 173.681587092 },
  464.     { 1.128278e-05, 5.96666460978, 9.5612275556 },
  465.     { 1.228058e-05, 1.59915900158, 77.7505439839 },
  466.     { 8.35562e-06, 3.97050539397, 114.399106913 },
  467.     { 8.11407e-06, 3.00264146159, 46.2097904851 },
  468.     { 7.31543e-06, 2.10445780662, 181.758341939 },
  469.     { 6.15618e-06, 2.97867866529, 106.976743372 },
  470.     { 7.03453e-06, 1.18748208693, 256.539940506 },
  471.     { 5.01955e-06, 1.38654746863, 5.9378908332 },
  472.     { 5.30475e-06, 4.2411216215, 111.430161497 },
  473.     { 4.37096e-06, 2.27029212923, 1550.93985965 },
  474.     { 3.99906e-06, 1.25612321821, 8.0767548473 },
  475.     { 4.20992e-06, 1.8924823459, 30.7106720963 },
  476.     { 3.82461e-06, 3.29964092733, 983.115858914 },
  477.     { 4.22891e-06, 5.5309962033, 525.498179401 },
  478.     { 3.55064e-06, 2.27873080286, 218.406904869 },
  479.     { 2.81092e-06, 4.54185193503, 44.7253177768 },
  480.     { 3.14499e-06, 3.95932948594, 381.351608237 },
  481.     { 2.79604e-06, 1.54525386438, 98.8999885246 },
  482.     { 2.68088e-06, 5.1344811954, 112.914634205 },
  483.     { 3.3326e-06, 5.75014889084, 39.0962434843 },
  484.     { 2.91773e-06, 4.02405440052, 68.8437077341 },
  485.     { 3.2143e-06, 1.50624339061, 454.909366527 },
  486.     { 3.092e-06, 2.85451259377, 72.0732855816 },
  487.     { 3.45541e-06, 1.35801933629, 293.188503436 },
  488.     { 3.0736e-06, 0.31939966593, 601.764250676 },
  489.     { 2.51026e-06, 3.54039557458, 312.199083963 },
  490.     { 2.48151e-06, 3.41078778961, 37.611770776 },
  491.     { 3.06e-06, 2.72475094464, 6244.94281435 },
  492.     { 2.9353e-06, 4.89079714624, 528.206492386 },
  493.     { 2.34148e-06, 0.59107513684, 42.5864537627 },
  494.     { 2.39159e-06, 3.15940174394, 143.625306301 },
  495.     { 2.14523e-06, 3.62480267276, 278.258834019 },
  496.     { 2.46198e-06, 1.01506302015, 141.225809856 },
  497.     { 1.74151e-06, 5.54934515763, 567.824000732 },
  498.     { 1.63736e-06, 2.09772553888, 2.4476805548 },
  499.     { 1.62895e-06, 2.48942845886, 4.192785694 },
  500.     { 1.93252e-06, 1.58538835107, 138.517496871 },
  501.     { 1.55321e-06, 3.28425560727, 31.019488637 },
  502.     { 1.8228e-06, 2.45335941387, 255.055467798 },
  503.     { 1.77846e-06, 4.14773474853, 10175.1525106 },
  504.     { 1.74672e-06, 1.53072472355, 329.837066365 },
  505.     { 1.37774e-06, 3.34926113123, 0.9632078465 },
  506.     { 1.60922e-06, 5.16388154007, 211.81462273 },
  507.     { 1.13312e-06, 4.96838153028, 148.078724426 },
  508.     { 1.29107e-06, 3.2553937053, 24.1183899573 },
  509.     { 1.22785e-06, 5.39724696402, 62.2514255951 },
  510.     { 1.07361e-06, 3.2645911301, 1059.38193019 },
  511.     { 1.19951e-06, 3.07428550584, 184.727287356 },
  512.     { 9.9006e-07, 1.92575084098, 28.5718080822 },
  513.     { 9.771e-07, 2.59473517954, 6.592282139 },
  514.     { 1.23604e-06, 3.11899453253, 221.375850285 },
  515.     { 1.24693e-06, 2.97042402154, 251.432131076 },
  516.     { 1.14252e-06, 0.25039919123, 594.650703675 },
  517.     { 1.10984e-06, 3.34269023552, 180.273869231 },
  518.     { 1.20812e-06, 1.92944484022, 25.6028626656 },
  519.     { 1.04667e-06, 0.94883561775, 395.578702239 },
  520.     { 1.09779e-06, 5.43147613574, 494.526874873 },
  521.     { 9.6919e-07, 0.86184760695, 1014.13534755 },
  522.     { 9.8685e-07, 0.89578101892, 488.58898404 },
  523.     { 8.8965e-07, 4.78114888597, 144.146571163 },
  524.     { 1.07888e-06, 0.98700578434, 1124.34166877 },
  525.     { 9.7074e-07, 2.62665185334, 291.704030728 },
  526.     { 7.5666e-07, 5.88963758122, 43.2408450685 },
  527.     { 9.3718e-07, 6.09873436871, 526.722019678 },
  528.     { 9.4822e-07, 0.20662771116, 456.393839236 },
  529.     { 6.9954e-07, 2.39614984454, 426.598190876 },
  530.     { 8.9656e-07, 3.25464366223, 258.024413215 },
  531.     { 7.688e-07, 4.2039418951, 105.492270664 },
  532.     { 6.9133e-07, 4.93031154435, 1028.36244155 },
  533.     { 9.0474e-07, 1.69635495867, 366.485629295 },
  534.     { 7.3446e-07, 3.143052027, 82.8583534146 },
  535.     { 5.787e-07, 0.8590265451, 60.7669528868 },
  536.     { 7.8695e-07, 1.0930757555, 700.664239201 },
  537.     { 5.5696e-07, 3.89047184339, 47.6942631934 },
  538.     { 6.3218e-07, 4.39571226649, 149.563197135 },
  539.     { 5.6877e-07, 0.81233112899, 2.9207613068 },
  540.     { 5.6765e-07, 5.14903738264, 0.5212648618 },
  541.     { 5.6174e-07, 5.42986960794, 911.042573332 },
  542.     { 6.1746e-07, 6.16453594476, 1019.76442184 },
  543.     { 7.0668e-07, 0.08154675285, 40.5807161926 },
  544.     { 7.4941e-07, 4.85541117469, 186.211760064 },
  545.     { 6.2137e-07, 4.7900016913, 11.0457002639 },
  546.     { 6.1135e-07, 0.83712327235, 1022.73336726 },
  547.     { 6.1658e-07, 5.70207975404, 178.135005217 },
  548.     { 5.3467e-07, 0.37111991212, 27.0873353739 },
  549.     { 5.64e-07, 3.52361228973, 216.92243216 },
  550.     { 4.8819e-07, 5.10789123481, 64.9597385808 },
  551.     { 6.3989e-07, 6.27428332013, 7.1135470008 },
  552.     { 6.329e-07, 4.3942491003, 807.949799113 },
  553.     { 4.6355e-07, 1.34731122935, 451.940421111 },
  554.     { 6.0544e-07, 3.40308211679, 294.672976144 },
  555.     { 5.714e-07, 0.44713393582, 140.001969579 },
  556.     { 4.6891e-07, 0.16868575852, 7.4223635415 },
  557.     { 5.376e-07, 2.796449643, 328.352593657 },
  558.     { 5.611e-07, 1.06133412372, 172.197114384 },
  559.     { 4.3828e-07, 6.04649305744, 135.548551454 },
  560.     { 4.9546e-07, 0.64111181985, 41.0537969446 },
  561.     { 5.4352e-07, 2.92484004653, 563.631215038 },
  562.     { 4.2962e-07, 5.40180687766, 487.365143763 },
  563.     { 5.1507e-07, 0.09101955359, 210.330150021 },
  564.     { 4.2022e-07, 3.11630465723, 29.226199388 },
  565.     { 4.7855e-07, 3.9092908086, 63.7358983034 },
  566.     { 4.1545e-07, 6.27971504434, 32.7164096664 },
  567.     { 4.1412e-07, 4.45532728136, 37.1698277913 },
  568.     { 4.0691e-07, 0.15392324705, 79.2350166922 },
  569.     { 4.8205e-07, 1.8419837301, 403.134192224 },
  570.     { 3.6975e-07, 0.44979453927, 30.0562807905 },
  571.     { 4.7762e-07, 0.88083849566, 3302.47939106 },
  572.     { 3.9465e-07, 3.50565537871, 357.445666601 },
  573.     { 4.2139e-07, 0.63375113641, 343.2185726 },
  574.     { 4.278e-07, 3.55125610401, 38.6543004996 },
  575.     { 3.8995e-07, 5.26486175542, 415.291858181 },
  576.     { 3.8872e-07, 5.25715558452, 386.98068253 },
  577.     { 4.0508e-07, 1.36656945746, 31.2319369581 },
  578.     { 3.3786e-07, 5.23988634904, 67.3592350258 },
  579.     { 4.0879e-07, 3.55298595767, 331.321539074 },
  580.     { 3.8768e-07, 1.12288359393, 38.1812197476 },
  581.     { 3.6962e-07, 6.08599078489, 35.4247226521 },
  582.     { 3.8831e-07, 4.67876780698, 38.084851528 },
  583.     { 3.8231e-07, 6.26491109393, 389.949627947 },
  584.     { 3.1356e-07, 0.07745279153, 12.5301729722 },
  585.     { 2.6341e-07, 4.59559782764, 106.013535525 },
  586.     { 2.9746e-07, 4.45828452713, 22.633917249 },
  587.     { 2.7465e-07, 5.99541587686, 206.185548437 },
  588.     { 2.6195e-07, 4.49611532896, 34.2008823747 },
  589.     { 2.4122e-07, 5.1708944214, 129.919477162 },
  590.     { 2.8998e-07, 3.64928923192, 253.57099509 },
  591.     { 2.6787e-07, 4.37969316517, 142.140833593 },
  592.     { 3.0385e-07, 1.60122950634, 348.847646892 },
  593.     { 2.4285e-07, 1.01980822546, 41.7563723602 },
  594.     { 3.1322e-07, 1.05975821421, 100.384461233 },
  595.     { 2.2588e-07, 4.7248213782, 81.3738807063 },
  596.     { 2.6405e-07, 3.03479369857, 365.001156587 },
  597.     { 2.1916e-07, 3.48038797535, 69.1525242748 },
  598.     { 2.2498e-07, 4.03487494425, 19.1224551112 },
  599.     { 2.1838e-07, 3.92447477596, 5.1078094307 },
  600.     { 2.2885e-07, 1.58977064672, 189.393153802 },
  601.     { 2.5496e-07, 2.43810677799, 351.816592309 },
  602.     { 2.6083e-07, 3.61207095239, 367.970102003 },
  603.     { 1.9111e-07, 2.59694457001, 2080.63082474 },
  604.     { 1.964e-07, 6.15701741238, 35.212274331 },
  605.     { 2.5688e-07, 2.00512719767, 439.782755154 },
  606.     { 2.1613e-07, 3.32354204724, 119.506916344 },
  607.     { 2.5389e-07, 4.74025836522, 1474.67378837 },
  608.     { 1.8107e-07, 5.35129342595, 244.318584075 },
  609.     { 2.2539e-07, 4.79833880058, 84.3428261229 },
  610.     { 2.3295e-07, 5.93767762095, 316.391869657 },
  611.     { 1.6978e-07, 3.05115560279, 220.412642439 },
  612.     { 2.0022e-07, 4.99276451168, 179.098213063 },
  613.     { 2.037e-07, 1.86508317889, 171.233906537 },
  614.     { 2.2628e-07, 0.27205770382, 666.723989257 },
  615.     { 1.8427e-07, 3.3935424558, 69.3649725959 },
  616.     { 1.9046e-07, 2.02999241631, 5.4166259714 },
  617.     { 1.5738e-07, 3.40021239975, 274.066048325 },
  618.     { 1.9072e-07, 3.70882976684, 164.120359536 },
  619.     { 1.8716e-07, 0.90215956591, 285.37238102 },
  620.     { 1.5889e-07, 0.42011285882, 697.743477894 },
  621.     { 1.4988e-07, 3.08544843936, 704.857024895 },
  622.     { 1.5972e-07, 1.82864185268, 477.330835455 },
  623.     { 1.6509e-07, 5.04817895427, 36.9091953604 },
  624.     { 1.3892e-07, 2.94161501165, 38.3936680687 },
  625.     { 1.4019e-07, 2.8606104905, 37.8724032069 },
  626.     { 1.5302e-07, 4.94041289914, 101.868933941 },
  627.     { 1.7397e-07, 5.81486997282, 35.685355083 },
  628.     { 1.7379e-07, 2.51842240176, 20.6069278195 },
  629.     { 1.6416e-07, 3.63037693563, 45.2465826386 },
  630.     { 1.2943e-07, 3.03051173423, 522.577418094 },
  631.     { 1.5752e-07, 5.00292909214, 247.239345382 },
  632.     { 1.4362e-07, 5.49004892867, 39.3568759152 },
  633.     { 1.2679e-07, 0.20331109323, 460.53844082 },
  634.     { 1.626e-07, 5.93480347217, 815.063346114 },
  635.     { 1.29e-07, 3.51131840632, 446.311346818 },
  636.     { 1.3891e-07, 5.51064697666, 31.5407534988 },
  637.     { 1.577e-07, 3.77930539694, 404.618664933 },
  638.     { 1.3399e-07, 3.96033558345, 290.219558019 },
  639.     { 1.5368e-07, 2.45783892707, 26.826702943 },
  640.     { 1.4246e-07, 3.18588280921, 401.649719516 },
  641.     { 1.2199e-07, 4.94365391256, 14.0146456805 },
  642.     { 1.4368e-07, 4.93297486962, 120.991389052 },
  643.     { 1.3413e-07, 3.79142222247, 151.047669843 },
  644.     { 1.2073e-07, 2.92823577017, 2.7083129857 },
  645.     { 1.412e-07, 4.69411530315, 738.797274839 },
  646.     { 1.1566e-07, 5.91003538993, 536.804512095 },
  647.     { 1.5578e-07, 2.91836788254, 875.830299001 },
  648.     { 1.3125e-07, 2.16051328657, 152.532142551 },
  649.     { 1.2793e-07, 1.97868575679, 1.3725981237 },
  650.     { 1.4101e-07, 4.75302563115, 0.2606324309 },
  651.     { 1.2967e-07, 0.0053347154, 97.4155158163 },
  652.     { 1.0788e-07, 6.18639055862, 115.883579622 },
  653.     { 1.3729e-07, 2.3230647385, 38.2449102224 },
  654.     { 1.1606e-07, 4.61702427262, 178.789396523 },
  655.     { 1.1256e-07, 0.79281130068, 42.3258213318 },
  656.     { 1.45e-07, 5.4468870718, 44.070926471 },
  657.     { 1.1534e-07, 5.26580538005, 160.938965799 },
  658.     { 1.3411e-07, 5.17996944056, 32.4557772355 },
  659.     { 1.3658e-07, 2.15687632802, 476.431318084 },
  660.     { 1.2788e-07, 2.07356149992, 20.4950532349 },
  661.     { 1.3782e-07, 3.47865209163, 38.0211610532 },
  662.     { 1.3257e-07, 5.1513852948, 103.092774219 },
  663.     { 9.715e-08, 0.7459788348, 918.156120333 },
  664.     { 1.0378e-07, 5.38520350123, 222.860322994 },
  665.     { 1.3357e-07, 5.89635739027, 748.097869963 },
  666.     { 1.2632e-07, 1.20306997433, 16.1535096946 },
  667.     { 1.1437e-07, 1.58444114292, 495.49008272 },
  668.     { 1.1424e-07, 4.74142930795, 487.625776194 },
  669.     { 9.336e-08, 0.9731363095, 662.531203563 },
  670.     { 8.911e-08, 5.21180580479, 118.022443636 },
  671.     { 9.827e-08, 4.48170250645, 505.785023458 },
  672.     { 1.1615e-07, 3.09644428293, 17.6379824029 },
  673.     { 9.957e-08, 4.03258124099, 169.536985508 },
  674.     { 9.818e-08, 5.20376439002, 1.5963472929 },
  675.     { 1.016e-07, 3.74441320429, 457.617679513 },
  676.     { 8.661e-08, 0.31247523804, 1440.73353843 },
  677.     { 8.496e-08, 1.06445636872, 55.7710180407 },
  678.     { 1.1162e-07, 1.9290782234, 564.855055316 },
  679.     { 8.434e-08, 5.55699081873, 17.5261078183 },
  680.     { 8.057e-08, 0.31116345866, 377.419454974 },
  681.     { 1.007e-07, 3.92554977184, 441.267227862 },
  682.     { 7.77e-08, 0.14603509444, 944.982823276 },
  683.     { 7.938e-08, 2.40417397694, 488.376535719 },
  684.     { 9.894e-08, 0.63707319139, 183.764079509 },
  685.     { 7.633e-08, 2.25662443193, 79.1868325824 },
  686.     { 7.867e-08, 3.87469522964, 494.739323195 },
  687.     { 9.203e-08, 4.3660584197, 29.7474642498 },
  688.     { 9.716e-08, 3.06038536864, 166.568040091 },
  689.     { 9.377e-08, 0.56416645296, 673.316271396 },
  690.     { 8.771e-08, 5.24535317574, 1057.89745748 },
  691.     { 8.225e-08, 5.42577676109, 104.007797955 },
  692.     { 8.367e-08, 0.48337087236, 19.0105805266 },
  693.     { 9.82e-08, 5.88955818086, 358.408874448 },
  694.     { 7.009e-08, 2.93493492342, 0.0481841098 },
  695.     { 8.254e-08, 3.47304582051, 156.155479274 },
  696.     { 7.684e-08, 1.53844437652, 59.2824801785 },
  697.     { 9.804e-08, 6.06393995615, 784.746432893 },
  698.     { 8.516e-08, 5.99059807952, 180.795134093 },
  699.     { 8.09e-08, 1.38588221442, 1654.03263386 },
  700.     { 9.074e-08, 4.0397149046, 1017.05610886 },
  701.     { 6.908e-08, 1.41919832926, 178.347453538 },
  702.     { 8.713e-08, 0.35913477738, 636.667708467 },
  703.     { 8.23e-08, 2.53750470473, 518.3846324 },
  704.     { 8.594e-08, 5.29103584901, 457.878311944 },
  705.     { 6.769e-08, 5.43380191356, 171.984666062 },
  706.     { 8.995e-08, 1.36992508507, 6209.77872413 },
  707.     { 9.278e-08, 3.80308677009, 25558.2121765 },
  708.     { 6.562e-08, 3.13520633691, 416.77633089 },
  709.     { 6.567e-08, 4.01934954352, 0.1118745846 },
  710.     { 7.032e-08, 4.14454482953, 326.868120949 },
  711.     { 8.384e-08, 5.49363770202, 532.611726401 },
  712.     { 7.471e-08, 4.62144262894, 526.982652109 },
  713.     { 7.5e-08, 0.61545750834, 485.928855164 },
  714.     { 7.716e-08, 1.04880061527, 525.23754697 },
  715.     { 8.504e-08, 2.79350586429, 10139.9884204 },
  716.     { 8.006e-08, 5.70274817349, 209.106309744 },
  717.     { 7.58e-08, 5.07865976334, 157.639951982 },
  718.     { 7.186e-08, 6.22843514949, 77.2292791221 },
  719.     { 7.754e-08, 4.25725025641, 418.260803598 },
  720.     { 7.784e-08, 1.89308086046, 984.600331622 },
  721.     { 6.06e-08, 4.25541364939, 36.1272980677 },
  722.     { 6.513e-08, 0.07498932215, 79.889407998 },
  723.     { 6.05e-08, 2.97979060439, 36.6967470393 },
  724.     { 7.265e-08, 4.94483532763, 131.40394987 },
  725.     { 6.984e-08, 2.53239305821, 497.187003749 },
  726.     { 7.824e-08, 2.31462643851, 513.079881013 },
  727.     { 7.175e-08, 3.69203633127, 524.013706692 },
  728.     { 6.855e-08, 0.14076801572, 283.62727588 },
  729.     { 7.476e-08, 5.27896188334, 259.508885923 },
  730.     { 6.922e-08, 3.36515011915, 438.298282446 },
  731.     { 7.349e-08, 3.50406958122, 500.155949166 },
  732.     { 6.301e-08, 0.14776691217, 608.877797677 },
  733.     { 5.892e-08, 4.24403528888, 4.665866446 },
  734.     { 5.995e-08, 4.84848023982, 215.437959452 },
  735.     { 7.128e-08, 5.92696788834, 482.959909748 },
  736.     { 6.829e-08, 1.01745137848, 1543.82631265 },
  737.     { 6.817e-08, 6.1216282969, 395.057437377 },
  738.     { 5.369e-08, 3.76855960849, 52099.5402119 },
  739.     { 5.776e-08, 5.61434462641, 987.569277038 },
  740.     { 7.523e-08, 5.60432148128, 2810.92146161 },
  741.     { 7.329e-08, 3.76816058312, 1512.80682401 },
  742.     { 5.616e-08, 2.1387418697, 145.631043871 },
  743.     { 5.26e-08, 0.35171132812, 36.6003788197 },
  744.     { 5.366e-08, 2.33827486119, 65.2203710117 },
  745.     { 5.688e-08, 1.82274388581, 1227.43444299 },
  746.     { 5.658e-08, 2.35049199704, 5.6290742925 },
  747.     { 6.135e-08, 4.23390394127, 496.011347582 },
  748.     { 6.472e-08, 3.49494191669, 552.697389359 },
  749.     { 4.983e-08, 3.91958511552, 10135.5350022 },
  750.     { 5.071e-08, 2.99193131986, 313.683556671 },
  751.     { 5.964e-08, 5.70758449643, 309.799587518 },
  752.     { 4.83e-08, 1.15390722082, 134.064078746 },
  753.     { 5.091e-08, 6.00974510144, 1409.71404979 },
  754.     { 5.205e-08, 5.5027133451, 238.901958104 },
  755.     { 5.33e-08, 0.31491843987, 319.312630963 },
  756.     { 4.943e-08, 1.43051344597, 422.405405182 },
  757.     { 5.604e-08, 2.05669305961, 207.361204605 },
  758.     { 6.31e-08, 5.22966882627, 139.741337148 },
  759.     { 4.773e-08, 3.06677020431, 464.731226514 },
  760.     { 4.867e-08, 1.45874544328, 49.1787359017 },
  761.     { 4.919e-08, 3.57280542629, 52175.8062831 },
  762.     { 6.33e-08, 5.80748895304, 57.255490749 },
  763.     { 4.762e-08, 5.90654311203, 838.96928775 },
  764.     { 4.848e-08, 0.77467099227, 1.6969210294 },
  765.     { 5.694e-08, 0.77313415569, 709.964834325 },
  766.     { 5.455e-08, 0.90288890561, 208.845677313 },
  767.     { 4.901e-08, 3.79986913631, 15.4991183888 },
  768.     { 4.772e-08, 0.15755140037, 39.5056337615 },
  769.     { 5.673e-08, 2.68359159067, 1127.26243008 },
  770.     { 5.477e-08, 0.53123497431, 113.877842052 },
  771.     { 5.077e-08, 1.59268428609, 1547.97091423 },
  772.     { 4.981e-08, 1.44584050478, 1.2720243872 },
  773.     { 5.938e-08, 0.96886308551, 6280.10690457 },
  774.     { 5.206e-08, 3.5800381937, 474.946845375 },
  775.     { 5.256e-08, 0.61005270999, 95.9792272178 },
  776.     { 5.531e-08, 5.28764137194, 36.7604375141 },
  777.     { 5.938e-08, 0.65008179576, 6.9010986797 },
  778.     { 6.158e-08, 5.73176703797, 711.449307034 },
  779.     { 5.15e-08, 5.58407480282, 26049.7701059 },
  780.     { 5.138e-08, 4.55234158942, 670.916774951 },
  781.     { 5.609e-08, 4.3727275978, 52.8020726241 },
  782.     { 5.636e-08, 2.39183054397, 10210.3166008 },
  783.     { 5.004e-08, 4.99992587162, 421.229749014 },
  784.     { 4.512e-08, 2.59978208967, 1234.54798999 },
  785.     { 4.314e-08, 3.38846714337, 142.662098455 },
  786.     { 4.471e-08, 3.94378336812, 12566.1517 },
  787.     { 5.296e-08, 1.12249063176, 134.112262856 },
  788.     { 4.188e-08, 2.52490407427, 6205.32530601 },
  789.     { 4.645e-08, 1.90644271528, 13324.3166712 },
  790.     { 4.501e-08, 2.01956232903, 315.168029379 },
  791.     { 4.177e-08, 2.09489065926, 803.757013419 },
  792.     { 4.675e-08, 2.19237385948, 501.640421874 },
  793.     { 5.296e-08, 3.88249567974, 2118.76386038 },
  794.     { 5.325e-08, 4.28221258353, 477.915790792 },
  795.     { 5.519e-08, 0.09960657331, 600.019145537 },
  796.     { 4.179e-08, 0.14619703083, 6644.57629047 },
  797.     { 4.49e-08, 1.07042724999, 52139.1577202 },
  798.     { 3.97e-08, 6.13227798578, 1553.90880506 },
  799.     { 5.183e-08, 3.52837189121, 110.206321219 },
  800.     { 5.259e-08, 6.20809827528, 142.710282565 },
  801.     { 4.183e-08, 5.17141470503, 3.6233367224 },
  802.     { 4.196e-08, 0.14530465304, 65.8747623175 },
  803.     { 3.869e-08, 5.25125030487, 1558.05340665 },
  804.     { 4.457e-08, 2.10247889113, 487.104511332 },
  805.     { 4.893e-08, 1.83678005941, 46.5186070258 },
  806.     { 3.875e-08, 5.60271074608, 385.496209822 },
  807.     { 3.826e-08, 1.30946706974, 2176.61005196 },
  808.     { 4.591e-08, 4.84657580441, 1337.64076421 },
  809.     { 3.928e-08, 4.81049906938, 91.7864415238 },
  810.     { 5.111e-08, 1.18808726579, 981.631386205 },
  811.     { 4.709e-08, 1.40878215308, 52213.9393188 },
  812.     { 3.891e-08, 5.43661875415, 154.671006565 },
  813.     { 4.145e-08, 4.32505910718, 363.516683878 },
  814.     { 3.926e-08, 1.42639045134, 70.8494453042 },
  815.     { 4.04e-08, 5.2612175946, 80.7194894005 },
  816.     { 3.885e-08, 1.55337878207, 310.714611254 },
  817.     { 4.787e-08, 3.65822147476, 589.345952289 },
  818.     { 4.02e-08, 5.45643059988, 6641.60734505 },
  819.     { 4.288e-08, 3.35265955957, 203.216603021 },
  820.     { 4.462e-08, 2.86966056442, 353.040432586 },
  821.     { 4.657e-08, 3.60514658478, 187.696232772 },
  822.     { 3.767e-08, 0.05292047125, 320.27583881 },
  823.     { 4.632e-08, 0.82011276589, 3265.83082813 },
  824.     { 4.555e-08, 5.30391170376, 26013.121543 },
  825.     { 3.555e-08, 4.80240768951, 224.344795702 },
  826.     { 3.967e-08, 1.01381988824, 75.7448064138 },
  827.     { 4.302e-08, 1.60914544159, 12529.5031371 },
  828.     { 3.493e-08, 4.75315651083, 12489.8856287 },
  829.     { 3.722e-08, 0.27433061822, 949.436241401 },
  830.     { 3.722e-08, 4.61537211162, 1025.70231268 },
  831.     { 4.234e-08, 5.25112033465, 194.288514911 },
  832.     { 4.796e-08, 6.21059766333, 491.818561888 },
  833.     { 3.639e-08, 1.25605018211, 2603.20824283 },
  834.     { 4.646e-08, 5.71392664345, 321.760311518 },
  835.     { 4.523e-08, 4.6281260806, 179.619477925 },
  836.     { 3.702e-08, 2.08952561657, 491.036664595 },
  837.     { 3.433e-08, 5.69102402866, 419.484643875 },
  838.     { 3.672e-08, 2.87489628704, 497.49582029 },
  839.     { 3.428e-08, 5.70553310685, 491.669804041 },
  840.     { 4.513e-08, 4.3893109634, 425.113718168 },
  841.     { 3.404e-08, 0.57791231752, 491.446054872 },
  842.     { 3.853e-08, 0.61321572401, 12526.5341916 },
  843.     { 3.788e-08, 3.3222199584, 3140.01275493 },
  844.     { 3.781e-08, 5.58125317044, 1652.54816116 },
  845.     { 3.903e-08, 5.31609723466, 408.17831118 },
  846.     { 3.945e-08, 3.60558877186, 1589.07289528 },
  847.     { 4.299e-08, 5.24473992747, 296.157448853 },
  848.     { 4.084e-08, 0.83813879869, 52.3601296394 },
  849.     { 4.084e-08, 3.50290269471, 23.9059416362 },
  850.     { 4.552e-08, 1.80974055684, 73.5577582899 },
  851.     { 3.336e-08, 2.4141367832, 67.8804998876 },
  852.     { 3.636e-08, 5.31067380234, 141.486442287 },
  853.     { 3.345e-08, 3.94392179077, 20389.9225295 },
  854.     { 4.639e-08, 6.24618220184, 821.394995822 },
  855.     { 3.934e-08, 0.26992234338, 1655.51710657 },
  856.     { 4.431e-08, 2.486474378, 549.728443943 },
  857.     { 4.168e-08, 5.39993754642, 236.502461659 },
  858.     { 3.316e-08, 0.82217489269, 305.085536962 },
  859.     { 4.524e-08, 5.52532381522, 487.413327873 },
  860.     { 4.02e-08, 0.07393243012, 52136.1887748 },
  861.     { 3.275e-08, 0.98533127454, 1344.75431121 },
  862.     { 3.213e-08, 2.97105590703, 20386.9535841 },
  863.     { 4.065e-08, 5.41027187466, 332.806011782 },
  864.     { 3.183e-08, 2.98783802386, 499.634684304 },
  865.     { 4.428e-08, 0.06728869735, 491.297297026 },
  866.     { 4.063e-08, 0.0619283857, 6168.67674308 },
  867.     { 3.53e-08, 3.13717614844, 347.363174184 },
  868.     { 3.917e-08, 1.33801660176, 1054.92851206 },
  869.     { 3.917e-08, 5.67905809516, 1131.19458334 },
  870.     { 3.833e-08, 0.87811168267, 52.6901980395 },
  871.     { 4.02e-08, 2.69209723289, 1439.46151404 },
  872.     { 3.424e-08, 1.0329673702, 481.475437039 },
  873.     { 3.159e-08, 1.04693380342, 703.372552187 },
  874.     { 3.364e-08, 2.18084331708, 32.5039613453 },
  875.     { 3.258e-08, 4.65131076542, 696.259005186 },
  876.     { 3.427e-08, 0.27003884843, 2389.9091474 },
  877.     { 4.349e-08, 0.07531141761, 20426.5710924 },
  878.     { 3.383e-08, 5.61838426864, 699.227950602 },
  879.     { 3.305e-08, 1.4166687729, 562.14674233 },
  880.     { 3.297e-08, 5.46677712589, 1442.21801113 },
  881.     { 3.277e-08, 2.71815883511, 980.146913497 },
  882.     { 3.171e-08, 4.49510885866, 1439.24906572 },
  883.     { 4.175e-08, 4.24327636055, 381.612240668 },
  884.     { 3.155e-08, 3.40776789576, 39.7293829307 },
  885.     { 4.112e-08, 0.90309319273, 1087.69310584 },
  886.     { 3.05e-08, 5.01538526352, 8.9068362498 },
  887.     { 3.725e-08, 1.52448613082, 1058.1099058 },
  888.     { 3.65e-08, 3.59798316565, 192.804042203 },
  889.     { 3.837e-08, 1.48519528444, 10098.8864393 },
  890.     { 2.959e-08, 1.23012121982, 2500.11546862 },
  891.     { 3.33e-08, 6.12470287875, 10172.1835652 },
  892.     { 3.361e-08, 4.31837298696, 492.079194319 },
  893.     { 3.294e-08, 2.52694043155, 1692.1656695 },
  894.     { 3.013e-08, 0.92957285991, 1515.77576942 },
  895.     { 3.403e-08, 1.10932483984, 987.308644608 },
  896.     { 3.312e-08, 0.67710158807, 977.486784621 },
  897.     { 3.03e-08, 1.77996261146, 156489.285814 },
  898.     { 3.605e-08, 4.89955108152, 1043.8828118 },
  899.     { 3.276e-08, 4.26765608367, 1189.30140735 },
  900.     { 2.966e-08, 5.29808076929, 31.9826964835 },
  901.     { 2.994e-08, 2.58599359402, 178.086821107 },
  902.     { 3.905e-08, 1.87748122254, 1158.28191871 },
  903.     { 3.11e-08, 3.09203517638, 235.933012687 },
  904.     { 3.313e-08, 2.70308129756, 604.472563662 },
  905.     { 3.276e-08, 1.24440460327, 874.654642833 },
  906.     { 3.276e-08, 5.58544609667, 950.920714109 },
  907.     { 2.863e-08, 5.3079720203, 449.232108125 },
  908.     { 3.746e-08, 0.33859914037, 913.963334639 },
  909.     { 3.552e-08, 3.07180917863, 240.386430812 },
  910.     { 2.885e-08, 6.01129889094, 1097.51496583 },
  911.     { 3.643e-08, 5.11977873355, 452.201053542 },
  912.     { 2.761e-08, 4.05534163585, 6283.07584999 },
  913.     { 3.226e-08, 4.76711354367, 6241.97386894 },
  914.     { 2.988e-08, 5.62906786113, 140.656360885 },
  915.     { 3.748e-08, 4.84009347869, 341.734099891 },
  916.     { 3.847e-08, 2.40982343643, 26086.4186689 },
  917.     { 2.702e-08, 3.72061244391, 946.467295984 },
  918.     { 2.846e-08, 4.90997675486, 488.849616471 },
  919.     { 2.723e-08, 4.37517047024, 15.1903018481 },
  920.     { 2.847e-08, 5.22951186538, 661.046730855 },
  921.     { 2.68e-08, 4.19379121323, 13.184564278 },
  922.     { 3.269e-08, 0.4311977852, 496.974555428 },
  923.     { 2.878e-08, 5.00361557843, 252.086522382 },
  924.     { 3.489e-08, 3.82213189319, 625.994515218 },
  925.     { 3.742e-08, 2.03372773652, 8.5980197091 },
  926.     { 3.341e-08, 2.91360557418, 304.2342037 },
  927.     { 2.915e-08, 2.63627684599, 6681.2248534 },
  928.     { 2.915e-08, 1.4377362589, 6604.95878212 },
  929.     { 2.629e-08, 2.0982440745, 2713.41456405 },
  930.     { 2.901e-08, 3.3392480023, 515.463871093 },
  931.     { 2.803e-08, 1.23584865903, 6643.09181776 },
  932.     { 2.621e-08, 3.27309087943, 483.481174609 },
  933.     { 3.045e-08, 3.33515866438, 921.07688164 },
  934.     { 2.699e-08, 5.4259779465, 925.269667334 },
  935.     { 2.808e-08, 5.77870303237, 1024.21783997 },
  936.     { 3.028e-08, 3.75501312393, 511.595408305 },
  937.     { 3.09e-08, 2.49453093252, 14.6690369863 },
  938.     { 2.63e-08, 0.62190616803, 990.229405914 },
  939.     { 2.913e-08, 4.83296711477, 515.936951845 },
  940.     { 3.139e-08, 5.9913425471, 570.744762039 },
  941.     { 2.752e-08, 3.08268180744, 853.196381752 },
  942.     { 2.643e-08, 1.99093797444, 470.217288454 },
  943.     { 2.763e-08, 4.01095972177, 448.971475694 },
  944.     { 3.426e-08, 4.73955481174, 1050.9963588 },
  945.     { 2.613e-08, 5.04769883328, 175.21424391 },
  946.     { 3.08e-08, 1.08651068269, 260.993358631 },
  947.     { 2.605e-08, 1.78290020063, 175.11787569 },
  948.     { 2.573e-08, 2.01267457287, 1514.29129672 },
  949.     { 2.633e-08, 1.63639954931, 170.712641675 },
  950.     { 3.025e-08, 5.51446170055, 369.454574712 },
  951.     { 2.49e-08, 0.15301603966, 78187.4433534 },
  952.     { 2.589e-08, 0.79196093766, 1228.9189157 },
  953.     { 3.493e-08, 3.8800673873, 495.702531041 },
  954.     { 3.143e-08, 5.33170343283, 1542.34183994 },
  955.     { 2.816e-08, 3.74486418363, 2.0057375701 },
  956.     { 3.062e-08, 4.88018345098, 227.968132424 },
  957.     { 2.971e-08, 1.27359129352, 530.914805372 },
  958.     { 3.329e-08, 2.71693827722, 171.021458216 },
  959.     { 2.648e-08, 0.6030438692, 70.5888128733 },
  960.     { 3.061e-08, 5.05044834864, 378.643295252 },
  961.     { 2.738e-08, 4.75405645015, 151.260118164 },
  962.     { 2.727e-08, 5.89140709596, 213.953486744 },
  963.     { 3.411e-08, 2.24137878065, 734.455731298 },
  964.     { 2.623e-08, 0.54340876464, 1586.10394987 },
  965.     { 3.169e-08, 5.84871429991, 1049.51188609 },
  966.     { 2.43e-08, 2.34597429597, 450.455948402 },
  967.     { 2.907e-08, 5.58085498481, 597.571464982 },
  968.     { 3.06e-08, 5.27973140962, 523.753074261 },
  969.     { 3.3e-08, 0.94221473935, 58.1705144857 },
  970.     { 2.606e-08, 4.76989264753, 391.434100655 },
  971.     { 3.175e-08, 2.32600231924, 339.286419336 },
  972.     { 3.112e-08, 4.24784219323, 1615.89959823 },
  973.     { 3.34e-08, 1.36950315448, 384.272369544 },
  974.     { 3.301e-08, 5.83023910521, 51.7751743028 },
  975.     { 2.415e-08, 0.6944692367, 489.552191887 },
  976.     { 3.31e-08, 5.55595218696, 674.800744104 },
  977.     { 2.736e-08, 5.74320864965, 1167.84314627 },
  978.     { 2.956e-08, 5.22962139507, 199.853898729 },
  979.     { 3.262e-08, 0.01501002027, 1545.31078535 },
  980.     { 2.506e-08, 4.84043333582, 943.498350567 },
  981.     { 3.24e-08, 2.46676155925, 1016.79547643 },
  982.     { 3.148e-08, 4.62079057738, 233.533516242 },
  983.     { 2.327e-08, 4.10421417326, 70.1157321213 },
  984.     { 2.371e-08, 4.79963943424, 271.145287018 },
  985.     { 3.006e-08, 3.66877796077, 1476.15826108 },
  986.     { 3.033e-08, 0.6715748869, 292.48592802 },
  987.     { 2.344e-08, 1.83547256266, 492.308688982 },
  988.     { 3.117e-08, 2.76268894894, 1473.18931566 },
  989.     { 2.323e-08, 2.88799980853, 533.623118358 },
  990.     { 2.34e-08, 4.44862573253, 490.807169931 },
  991.     { 2.919e-08, 4.75889516601, 1511.3223513 },
  992.     { 2.493e-08, 6.10541658597, 1225.94997028 },
  993.     { 2.691e-08, 3.20679023131, 463.507386236 },
  994.     { 2.291e-08, 5.81535163158, 246.978712951 },
  995.     { 2.319e-08, 6.0551428147, 525.758811831 },
  996.     { 3.112e-08, 0.89712836583, 314.907396948 },
  997.     { 3.085e-08, 5.84605938859, 1192.22216866 },
  998.     { 2.897e-08, 0.54747024257, 20350.3050211 },
  999.     { 2.469e-08, 3.75373347656, 494.005610012 },
  1000.     { 3.067e-08, 2.22210324061, 248.463185659 },
  1001.     { 2.252e-08, 0.87483094907, 61.0275853177 },
  1002.     { 2.392e-08, 3.62837597194, 439.197799817 },
  1003.     { 2.817e-08, 2.73562306571, 16.6747745564 },
  1004.     { 2.379e-08, 6.17876088396, 467.651987821 },
  1005.     { 2.607e-08, 4.82656583469, 384.581186085 },
  1006.     { 2.718e-08, 1.01823841209, 215.959224314 },
  1007.     { 2.998e-08, 1.097557153, 1964.74724512 },
  1008.     { 2.883e-08, 2.97813866507, 383.096713377 },
  1009.     { 2.529e-08, 5.81554218602, 1587.58842258 },
  1010.     { 2.203e-08, 2.23336308907, 481.262988718 },
  1011.     { 2.26e-08, 2.3540491366, 659.610442256 },
  1012.     { 2.173e-08, 4.95048919972, 76.7873361374 },
  1013.     { 2.491e-08, 1.7023635707, 445.348138972 },
  1014.     { 2.164e-08, 4.91477263756, 249.947658367 },
  1015.     { 2.289e-08, 1.18497528002, 1552.42433235 },
  1016.     { 2.975e-08, 0.48272389481, 1052.48083151 },
  1017.     { 2.339e-08, 0.75318738767, 478.815308163 },
  1018.     { 3.011e-08, 0.16359500858, 54.2865453324 },
  1019.     { 3.011e-08, 1.03494557852, 21.9795259432 },
  1020. };
  1021. static VSOPTerm neptune_R1[] = {
  1022.     { 0.00236338618, 0.70497954792, 38.1330356378 },
  1023.     { 0.00013220034, 3.3201438793, 1.4844727083 },
  1024.     { 8.621779e-05, 6.21626927537, 35.1640902212 },
  1025.     { 2.701587e-05, 1.88124996531, 39.6175083461 },
  1026.     { 2.15306e-05, 5.16877044933, 76.2660712756 },
  1027.     { 2.15417e-05, 2.0943033339, 2.9689454166 },
  1028.     { 1.463314e-05, 1.18410155089, 33.6796175129 },
  1029.     { 1.603164e-05, 0, 0 },
  1030.     { 1.135663e-05, 3.91905853528, 36.6485629295 },
  1031.     { 8.9765e-06, 5.24122933533, 388.465155238 },
  1032.     { 7.89359e-06, 0.53295000718, 168.052512799 },
  1033.     { 7.6003e-06, 0.02051033644, 182.279606801 },
  1034.     { 6.07183e-06, 1.0770650035, 1021.24889455 },
  1035.     { 5.71622e-06, 3.40060785432, 484.444382456 },
  1036.     { 5.6079e-06, 2.88685815667, 498.671476458 },
  1037.     { 4.89973e-06, 3.46822250901, 137.033024162 },
  1038.     { 2.64197e-06, 0.86149368602, 4.4534181249 },
  1039.     { 2.70304e-06, 3.27489604455, 71.8126531507 },
  1040.     { 2.03512e-06, 2.41823214253, 32.1951448046 },
  1041.     { 1.5518e-06, 0.36515053081, 41.1019810544 },
  1042.     { 1.32766e-06, 3.60157672619, 9.5612275556 },
  1043.     { 9.3942e-07, 0.66658493388, 46.2097904851 },
  1044.     { 8.3697e-07, 3.26305475932, 98.8999885246 },
  1045.     { 7.2205e-07, 4.47717435693, 601.764250676 },
  1046.     { 6.8777e-07, 1.46946530374, 74.7815985673 },
  1047.     { 8.6953e-07, 5.77228651853, 381.351608237 },
  1048.     { 6.8138e-07, 4.52508272214, 70.3281804424 },
  1049.     { 6.525e-07, 3.85934463923, 73.297125859 },
  1050.     { 6.837e-07, 3.395139944, 108.46121608 },
  1051.     { 5.3375e-07, 5.43650770516, 395.578702239 },
  1052.     { 4.391e-07, 3.6156439495, 2.4476805548 },
  1053.     { 4.1546e-07, 4.74846317654, 8.0767548473 },
  1054.     { 4.8724e-07, 1.98932271543, 175.1660598 },
  1055.     { 4.1744e-07, 4.94257598763, 31.019488637 },
  1056.     { 4.4102e-07, 1.41744904844, 1550.93985965 },
  1057.     { 4.117e-07, 1.41999405024, 490.073456749 },
  1058.     { 4.1099e-07, 4.86312668872, 493.042402165 },
  1059.     { 3.6267e-07, 5.30764043577, 312.199083963 },
  1060.     { 3.6321e-07, 0.38296932117, 77.7505439839 },
  1061.     { 4.0928e-07, 2.27526815371, 529.690965095 },
  1062.     { 3.2141e-07, 5.9128587434, 5.9378908332 },
  1063.     { 3.1197e-07, 2.70549944134, 1014.13534755 },
  1064.     { 3.273e-07, 5.22147683115, 41.0537969446 },
  1065.     { 3.6035e-07, 4.88125211442, 491.557929457 },
  1066.     { 2.9991e-07, 3.30769367603, 1028.36244155 },
  1067.     { 2.9424e-07, 3.63261469286, 30.7106720963 },
  1068.     { 2.7478e-07, 1.76175718511, 44.7253177768 },
  1069.     { 2.7676e-07, 4.54801642564, 7.1135470008 },
  1070.     { 2.7475e-07, 0.97228280623, 33.9402499438 },
  1071.     { 2.4944e-07, 3.10083196356, 144.146571163 },
  1072.     { 2.5956e-07, 2.99728316628, 60.7669528868 },
  1073.     { 2.1401e-07, 0.68033795793, 251.432131076 },
  1074.     { 2.1369e-07, 4.71270048898, 278.258834019 },
  1075.     { 2.3818e-07, 5.11019967861, 176.650532508 },
  1076.     { 2.4486e-07, 3.56527493795, 145.10977901 },
  1077.     { 2.3379e-07, 1.65568321349, 173.681587092 },
  1078.     { 2.7004e-07, 4.13984627053, 453.424893819 },
  1079.     { 2.0725e-07, 0.89222104366, 4.192785694 },
  1080.     { 1.9795e-07, 5.61602288526, 24.1183899573 },
  1081.     { 2.3863e-07, 0.99001670827, 213.299095438 },
  1082.     { 1.8408e-07, 1.98233778039, 72.0732855816 },
  1083.     { 1.8266e-07, 6.17260374467, 189.393153802 },
  1084.     { 1.896e-07, 4.66648698212, 106.976743372 },
  1085.     { 1.7705e-07, 1.59531409128, 62.2514255951 },
  1086.     { 1.5648e-07, 3.64570115017, 0.5212648618 },
  1087.     { 1.6368e-07, 1.70913999198, 357.445666601 },
  1088.     { 2.0132e-07, 3.295219611, 114.399106913 },
  1089.     { 1.5425e-07, 4.38812302799, 25.6028626656 },
  1090.     { 1.8932e-07, 2.21630439663, 343.2185726 },
  1091.     { 1.4031e-07, 0.55320290294, 129.919477162 },
  1092.     { 1.4328e-07, 5.84024214567, 68.8437077341 },
  1093.     { 1.5466e-07, 4.20417846946, 567.824000732 },
  1094.     { 1.2746e-07, 3.52815836608, 477.330835455 },
  1095.     { 1.1724e-07, 5.5764726346, 31.2319369581 },
  1096.     { 1.1533e-07, 0.89138506506, 594.650703675 },
  1097.     { 1.0508e-07, 4.35552732772, 32.7164096664 },
  1098.     { 1.0777e-07, 5.30551078064, 2.9207613068 },
  1099.     { 1.0826e-07, 5.21826226871, 26.826702943 },
  1100.     { 1.0084e-07, 1.98102236804, 40.5807161926 },
  1101.     { 1.1686e-07, 5.14865195162, 42.5864537627 },
  1102.     { 9.207e-08, 0.50092534158, 64.9597385808 },
  1103.     { 9.084e-08, 5.86031317808, 6.592282139 },
  1104.     { 9.231e-08, 0.6818097771, 160.938965799 },
  1105.     { 1.0114e-07, 4.51164596686, 28.5718080822 },
  1106.     { 8.35e-08, 2.82449631025, 43.2408450685 },
  1107.     { 9.592e-08, 3.76289614986, 181.758341939 },
  1108.     { 9.969e-08, 1.45995045237, 47.6942631934 },
  1109.     { 7.946e-08, 2.40126769187, 11.0457002639 },
  1110.     { 7.629e-08, 1.57125741752, 135.548551454 },
  1111.     { 7.645e-08, 4.07503370297, 389.949627947 },
  1112.     { 8.004e-08, 2.78082277326, 505.785023458 },
  1113.     { 9.45e-08, 0.27241260289, 426.598190876 },
  1114.     { 7.192e-08, 0.82841201068, 911.042573332 },
  1115.     { 6.981e-08, 1.86764180939, 206.185548437 },
  1116.     { 7.897e-08, 1.86554246391, 38.6543004996 },
  1117.     { 6.766e-08, 0.85749934506, 82.8583534146 },
  1118.     { 6.357e-08, 0.90093123522, 487.365143763 },
  1119.     { 6.72e-08, 1.33936767947, 220.412642439 },
  1120.     { 6.344e-08, 4.04005545219, 12.5301729722 },
  1121.     { 7.695e-08, 5.13312500855, 23.9059416362 },
  1122.     { 7.059e-08, 5.99832463478, 639.897286314 },
  1123.     { 8.302e-08, 3.85960902325, 37.611770776 },
  1124.     { 6.412e-08, 2.41743840961, 1059.38193019 },
  1125.     { 6.751e-08, 1.9686089447, 45.2465826386 },
  1126.     { 6.301e-08, 4.04821192714, 35.685355083 },
  1127.     { 5.517e-08, 3.8132579089, 815.063346114 },
  1128.     { 5.562e-08, 0.41619602113, 563.631215038 },
  1129.     { 6.115e-08, 2.10934525342, 697.743477894 },
  1130.     { 6.216e-08, 4.79301628209, 143.625306301 },
  1131.     { 5.346e-08, 3.13071964722, 386.98068253 },
  1132.     { 6.866e-08, 0.62766858525, 350.3321196 },
  1133.     { 5.245e-08, 6.06245070403, 171.233906537 },
  1134.     { 5.129e-08, 0.79394555531, 179.098213063 },
  1135.     { 5.099e-08, 2.96677243218, 27.0873353739 },
  1136.     { 5.169e-08, 6.18160132142, 63.7358983034 },
  1137.     { 5.168e-08, 4.7376553637, 522.577418094 },
  1138.     { 5.006e-08, 2.37645082899, 77.2292791221 },
  1139.     { 5.005e-08, 4.70632786719, 460.53844082 },
  1140.     { 5.167e-08, 5.20246890403, 446.311346818 },
  1141.     { 5.119e-08, 2.17338058771, 494.739323195 },
  1142.     { 5.025e-08, 4.21265519443, 536.804512095 },
  1143.     { 5.125e-08, 5.38138329172, 179.310661384 },
  1144.     { 4.918e-08, 4.09031782903, 488.376535719 },
  1145.     { 4.711e-08, 5.56542374115, 42.3258213318 },
  1146.     { 4.459e-08, 1.3078482983, 69.3649725959 },
  1147.     { 5.485e-08, 3.88088464259, 218.406904869 },
  1148.     { 4.419e-08, 4.22946309121, 5.4166259714 },
  1149.     { 4.559e-08, 4.92224120952, 285.37238102 },
  1150.     { 4.687e-08, 2.2140115321, 1029.84691426 },
  1151.     { 4.644e-08, 1.87902594973, 1433.61999143 },
  1152.     { 5.639e-08, 3.05597013393, 983.115858914 },
  1153.     { 4.317e-08, 1.37172516583, 0.9632078465 },
  1154.     { 4.385e-08, 2.35709104539, 84.3428261229 },
  1155.     { 4.43e-08, 3.37768805833, 377.419454974 },
  1156.     { 4.681e-08, 2.14249250241, 97.4155158163 },
  1157.     { 5.845e-08, 4.62301099402, 1024.21783997 },
  1158.     { 5.769e-08, 5.71579471638, 351.816592309 },
  1159.     { 4.454e-08, 5.20355311714, 274.066048325 },
  1160.     { 4.398e-08, 5.65312496227, 3.9321532631 },
  1161.     { 4.287e-08, 0.66340266603, 1012.65087484 },
  1162.     { 4.086e-08, 0.14551174994, 385.283761501 },
  1163.     { 4.029e-08, 5.98399329775, 178.347453538 },
  1164.     { 4.276e-08, 3.6820508297, 348.847646892 },
  1165.     { 4.012e-08, 0.42559540783, 104313.479531 },
  1166.     { 4.309e-08, 3.04099090488, 100.384461233 },
  1167.     { 3.957e-08, 0.86846121055, 171.984666062 },
  1168.     { 3.961e-08, 3.04953080906, 1017.31674129 },
  1169.     { 5.559e-08, 0.77714806229, 1447.84708543 },
  1170.     { 5.071e-08, 2.61075526868, 1536.71276564 },
  1171.     { 4.225e-08, 2.45845211305, 496.011347582 },
  1172.     { 4.052e-08, 5.00014006312, 391.646548976 },
  1173.     { 3.763e-08, 4.29449373755, 313.683556671 },
  1174.     { 4.038e-08, 2.82857942788, 1661.14618087 },
  1175.     { 4.067e-08, 5.7316992896, 169.536985508 },
  1176.     { 4.826e-08, 3.7558926471, 379.867135529 },
  1177.     { 4.296e-08, 5.90228488768, 142.140833593 },
  1178.     { 3.721e-08, 1.20062375429, 1026.87796884 },
  1179.     { 3.929e-08, 3.94354033755, 39.0962434843 },
  1180.     { 4.728e-08, 4.73892221737, 382.836080946 },
  1181.     { 3.489e-08, 4.28865448963, 1025.18104781 },
  1182.     { 3.714e-08, 5.05021268365, 292.48592802 },
  1183.     { 3.988e-08, 2.82832650224, 134.112262856 },
  1184.     { 3.471e-08, 4.98900354066, 69.1525242748 },
  1185.     { 3.528e-08, 2.80271543681, 14.0146456805 },
  1186.     { 3.745e-08, 4.24728135115, 180.795134093 },
  1187.     { 3.836e-08, 1.02685786071, 1018.27994913 },
  1188.     { 3.941e-08, 5.21895739331, 183.764079509 },
  1189.     { 3.78e-08, 6.03723468132, 1022.73336726 },
  1190.     { 3.647e-08, 3.98130320367, 608.877797677 },
  1191.     { 3.456e-08, 5.54052355058, 846.082834751 },
  1192.     { 4.047e-08, 3.71041480907, 1018.06750081 },
  1193.     { 3.865e-08, 4.76002199091, 166.568040091 },
  1194.     { 3.629e-08, 3.29053233846, 447.795819526 },
  1195.     { 3.337e-08, 0.47308019225, 79.1868325824 },
  1196.     { 3.304e-08, 1.49289552229, 1505.69327701 },
  1197.     { 3.615e-08, 3.68096122231, 494.526874873 },
  1198.     { 3.209e-08, 0.29676849415, 22.633917249 },
  1199.     { 3.28e-08, 3.62226152032, 531.175437803 },
  1200.     { 3.337e-08, 2.7250287632, 481.475437039 },
  1201.     { 3.187e-08, 0.08677634706, 399.510855502 },
  1202.     { 3.389e-08, 1.79454271219, 1519.92037101 },
  1203.     { 3.154e-08, 3.69356460843, 470.217288454 },
  1204.     { 3.706e-08, 2.79048710497, 462.022913528 },
  1205.     { 3.682e-08, 2.45952306167, 106.013535525 },
  1206.     { 3.136e-08, 4.38015969606, 385.496209822 },
  1207.     { 4.279e-08, 4.3563378889, 1066.49547719 },
  1208.     { 3.392e-08, 0.48037804731, 521.092945386 },
  1209.     { 3.465e-08, 0.93152295589, 2183.72359896 },
  1210.     { 3.735e-08, 0.98809808606, 487.413327873 },
  1211.     { 3.285e-08, 4.36830516894, 397.063174947 },
  1212.     { 3.998e-08, 3.38773325131, 6283.07584999 },
  1213.     { 2.998e-08, 2.61728063127, 487.625776194 },
  1214.     { 3.295e-08, 2.53821501556, 4.665866446 },
  1215.     { 2.964e-08, 3.66274645375, 495.49008272 },
  1216.     { 3.901e-08, 1.65463736406, 210.330150021 },
  1217.     { 2.95e-08, 1.99904237956, 872.909537694 },
  1218.     { 2.936e-08, 3.39722203959, 423.629245459 },
  1219.     { 3.121e-08, 5.89456985534, 105.492270664 },
  1220.     { 3.904e-08, 3.01022809543, 556.517668038 },
  1221.     { 3.801e-08, 4.23636257679, 1052.26838319 },
  1222.     { 2.93e-08, 6.15005257333, 164.120359536 },
  1223.     { 3.267e-08, 4.19718045293, 518.3846324 },
  1224.     { 3.946e-08, 2.8884275967, 151.260118164 },
  1225.     { 2.823e-08, 0.60712626756, 214.783568146 },
  1226.     { 2.826e-08, 2.91070227143, 391.434100655 },
  1227.     { 3.347e-08, 6.09373507569, 6246.42728706 },
  1228.     { 2.792e-08, 0.5524813599, 5.1078094307 },
  1229.     { 3.47e-08, 5.06081504795, 79.2350166922 },
  1230.     { 3.01e-08, 0.24656411754, 91.7864415238 },
  1231.     { 2.861e-08, 6.17465663902, 422.405405182 },
  1232.     { 2.989e-08, 2.31620917965, 485.928855164 },
  1233.     { 3.088e-08, 2.29186342974, 110.206321219 },
  1234.     { 3.03e-08, 3.698661491, 532.611726401 },
  1235.     { 3.148e-08, 6.25285869266, 535.320039387 },
  1236.     { 3.02e-08, 2.36422658177, 290.219558019 },
  1237.     { 2.73e-08, 3.34082732623, 394.094229531 },
  1238.     { 3.17e-08, 1.23078934548, 10176.6369833 },
  1239.     { 2.673e-08, 6.03366372927, 196.506700803 },
  1240.     { 2.635e-08, 3.39631667641, 148.078724426 },
  1241.     { 2.838e-08, 2.85241236576, 138.517496871 },
  1242.     { 2.63e-08, 0.46957619348, 1970.42450352 },
  1243.     { 2.599e-08, 4.86022081674, 439.197799817 },
  1244.     { 2.878e-08, 2.61946597178, 488.58898404 },
  1245.     { 2.72e-08, 1.71836225398, 364.559213602 },
  1246.     { 3.053e-08, 2.49346960035, 6243.45834165 },
  1247.     { 3.332e-08, 3.25113612987, 30.0562807905 },
  1248.     { 3.062e-08, 6.23776299874, 419.484643875 },
  1249.     { 2.786e-08, 0.83078219939, 497.187003749 },
  1250.     { 2.834e-08, 3.52926079424, 457.878311944 },
  1251.     { 2.932e-08, 1.80245810977, 500.155949166 },
  1252.     { 2.613e-08, 0.97430899059, 244.318584075 },
  1253.     { 3.03e-08, 5.10152500393, 367.970102003 },
  1254.     { 2.956e-08, 5.76230870725, 986.08480433 },
  1255.     { 2.658e-08, 0.88044044504, 109.945688788 },
  1256.     { 3.116e-08, 2.20042242739, 495.702531041 },
  1257.     { 2.554e-08, 0.65945973992, 67.3592350258 },
  1258.     { 2.901e-08, 3.91891656185, 10173.6680379 },
  1259.     { 2.84e-08, 1.34453183591, 482.959909748 },
  1260.     { 2.458e-08, 1.20012815574, 489.110248902 },
  1261.     { 2.556e-08, 3.86921927085, 487.104511332 },
  1262.     { 2.614e-08, 1.51881085312, 463.507386236 },
  1263.     { 2.386e-08, 4.58400538443, 615.991344678 },
  1264.     { 2.438e-08, 5.19827220476, 501.119157012 },
  1265.     { 2.537e-08, 1.64802783144, 519.608472677 },
  1266.     { 2.444e-08, 3.87859489652, 185.248552218 },
  1267.     { 2.262e-08, 5.79112288939, 605.95703637 },
  1268.     { 2.795e-08, 4.0426575258, 255.055467798 },
  1269.     { 2.895e-08, 3.26202698812, 1646.91908686 },
  1270.     { 2.324e-08, 3.99503920129, 481.262988718 },
  1271.     { 2.962e-08, 1.74151265966, 2080.63082474 },
  1272.     { 2.621e-08, 1.74442251671, 35.212274331 },
  1273. };
  1274. static VSOPTerm neptune_R2[] = {
  1275.     { 4.247776e-05, 5.89911844921, 38.1330356378 },
  1276.     { 2.17404e-06, 0.34589546713, 1.4844727083 },
  1277.     { 1.63025e-06, 2.2387294713, 168.052512799 },
  1278.     { 1.56285e-06, 4.59414467342, 182.279606801 },
  1279.     { 1.1794e-06, 5.10295026024, 484.444382456 },
  1280.     { 1.12429e-06, 1.19000583596, 498.671476458 },
  1281.     { 1.27836e-06, 2.84821806298, 35.1640902212 },
  1282.     { 9.9311e-07, 3.41592669789, 175.1660598 },
  1283.     { 6.4814e-07, 3.4621406484, 388.465155238 },
  1284.     { 7.678e-07, 0.01680343065, 491.557929457 },
  1285.     { 4.9511e-07, 4.06995993334, 76.2660712756 },
  1286.     { 3.933e-07, 6.09521855958, 1021.24889455 },
  1287.     { 3.6451e-07, 5.17129778081, 137.033024162 },
  1288.     { 3.6709e-07, 5.97476878862, 2.9689454166 },
  1289.     { 2.9037e-07, 3.58135470306, 33.6796175129 },
  1290.     { 2.0862e-07, 0.77341568423, 36.6485629295 },
  1291.     { 1.3886e-07, 3.59248623971, 395.578702239 },
  1292.     { 1.3001e-07, 5.12870831936, 98.8999885246 },
  1293.     { 1.1379e-07, 1.18060018898, 381.351608237 },
  1294.     { 9.132e-08, 2.34787658568, 601.764250676 },
  1295.     { 8.527e-08, 5.25134685897, 2.4476805548 },
  1296.     { 7.608e-08, 4.99805971093, 4.4534181249 },
  1297.     { 7.417e-08, 4.46775409796, 189.393153802 },
  1298.     { 7.225e-08, 1.92287508629, 9.5612275556 },
  1299.     { 7.289e-08, 1.6551952578, 1028.36244155 },
  1300.     { 8.076e-08, 5.84268048268, 220.412642439 },
  1301.     { 9.415e-08, 0, 0 },
  1302.     { 6.554e-08, 0.69397520662, 144.146571163 },
  1303.     { 5.628e-08, 5.23383764266, 46.2097904851 },
  1304.     { 5.523e-08, 4.59041448911, 1014.13534755 },
  1305.     { 7.254e-08, 1.14445074833, 1059.38193019 },
  1306.     { 5.226e-08, 0.02783946816, 74.7815985673 },
  1307.     { 5.177e-08, 5.23116646157, 477.330835455 },
  1308.     { 5.098e-08, 3.50187769013, 39.6175083461 },
  1309.     { 5.503e-08, 3.49522319102, 183.764079509 },
  1310.     { 5.055e-08, 0.19949888617, 166.568040091 },
  1311.     { 4.751e-08, 1.1805494827, 169.536985508 },
  1312.     { 4.587e-08, 2.13374192347, 41.1019810544 },
  1313.     { 6.17e-08, 6.15456871599, 71.8126531507 },
  1314.     { 4.606e-08, 3.91970908886, 587.537156675 },
  1315.     { 4.536e-08, 2.84337336954, 7.1135470008 },
  1316.     { 4.338e-08, 0.51553847342, 446.311346818 },
  1317.     { 3.891e-08, 0.26338839265, 1550.93985965 },
  1318.     { 4.465e-08, 3.01487041336, 129.919477162 },
  1319.     { 4.162e-08, 1.58187532018, 73.297125859 },
  1320.     { 3.727e-08, 2.37977930658, 160.938965799 },
  1321.     { 4.83e-08, 2.23553496822, 176.650532508 },
  1322.     { 3.842e-08, 3.7938720423, 111.430161497 },
  1323.     { 3.296e-08, 1.07748822909, 505.785023458 },
  1324.     { 3.966e-08, 1.70648052846, 983.115858914 },
  1325.     { 4.008e-08, 0.30663868827, 494.739323195 },
  1326.     { 3.974e-08, 5.9735178384, 488.376535719 },
  1327.     { 3.925e-08, 4.85736421123, 60.7669528868 },
  1328.     { 2.966e-08, 2.01608546009, 822.176893115 },
  1329.     { 3.972e-08, 1.07780371834, 374.238061237 },
  1330.     { 2.848e-08, 6.17799253802, 704.857024895 },
  1331.     { 3.527e-08, 0.79317138165, 274.066048325 },
  1332.     { 2.773e-08, 5.37132330836, 251.432131076 },
  1333.     { 3.113e-08, 5.12622288666, 426.598190876 },
  1334.     { 3.344e-08, 5.61433537548, 1124.34166877 },
  1335.     { 3.552e-08, 5.22645982165, 350.3321196 },
  1336.     { 2.597e-08, 0.67759426519, 312.199083963 },
  1337.     { 2.58e-08, 3.56031931199, 567.824000732 },
  1338.     { 2.578e-08, 1.45603792456, 1035.47598855 },
  1339.     { 2.541e-08, 5.19427579702, 1227.43444299 },
  1340.     { 2.507e-08, 1.31206832468, 386.98068253 },
  1341.     { 2.51e-08, 4.12148891512, 171.233906537 },
  1342.     { 2.511e-08, 2.71606957319, 179.098213063 },
  1343.     { 2.342e-08, 0.96469916587, 1019.76442184 },
  1344.     { 2.5e-08, 0.7028227603, 707.777786202 },
  1345.     { 2.48e-08, 4.59623030219, 693.5506922 },
  1346. };
  1347. static VSOPTerm neptune_R3[] = {
  1348.     { 1.66556e-06, 4.55393495836, 38.1330356378 },
  1349.     { 2.238e-07, 3.94830879358, 168.052512799 },
  1350.     { 2.1348e-07, 2.86296778794, 182.279606801 },
  1351.     { 1.6233e-07, 0.54226725872, 484.444382456 },
  1352.     { 1.5623e-07, 5.75702251906, 498.671476458 },
  1353.     { 1.1412e-07, 4.38291384655, 1.4844727083 },
  1354.     { 6.448e-08, 5.19003066847, 31.019488637 },
  1355.     { 3.655e-08, 5.91335292846, 1007.02180055 },
  1356.     { 3.681e-08, 1.62865545676, 388.465155238 },
  1357.     { 3.198e-08, 0.70197118575, 1558.05340665 },
  1358.     { 3.243e-08, 1.8803566598, 522.577418094 },
  1359.     { 2.688e-08, 1.87062743473, 402.69224924 },
  1360.     { 3.246e-08, 0.79381356193, 536.804512095 },
  1361.     { 2.65e-08, 5.76858449026, 343.2185726 },
  1362.     { 2.644e-08, 4.64542905401, 500.155949166 },
  1363.     { 2.541e-08, 4.79217120822, 482.959909748 },
  1364.     { 2.523e-08, 1.7286988978, 395.578702239 },
  1365.     { 3.04e-08, 2.90934098363, 76.2660712756 },
  1366.     { 2.69e-08, 2.21096415618, 446.311346818 },
  1367.     { 2.355e-08, 5.77381398401, 485.928855164 },
  1368.     { 2.874e-08, 6.1964334054, 815.063346114 },
  1369.     { 2.45e-08, 2.14451121185, 39.6175083461 },
  1370.     { 2.278e-08, 3.66579603119, 497.187003749 },
  1371. };
  1372. static VSOPTerm neptune_R4[] = {
  1373.     { 4.227e-08, 2.40375758563, 477.330835455 },
  1374.     { 4.333e-08, 0.10459484545, 395.578702239 },
  1375.     { 3.545e-08, 4.78431259422, 1028.36244155 },
  1376.     { 3.154e-08, 3.88192942366, 505.785023458 },
  1377.     { 3.016e-08, 1.03609346831, 189.393153802 },
  1378.     { 2.294e-08, 1.10879658603, 182.279606801 },
  1379.     { 2.295e-08, 5.67776133184, 168.052512799 },
  1380. };
  1381. // Position of the Sun relative to the Solar System Barycenter
  1382. // From VSOP87E
  1383. static VSOPTerm sun_X0[] = {
  1384.     { 0.00495672739, 3.74107356792, 529.690965095 },
  1385.     { 0.00271802376, 4.01601149775, 213.299095438 },
  1386.     { 0.00155435675, 2.17052050061, 38.1330356378 },
  1387.     { 0.00083792997, 2.33967985523, 74.7815985673 },
  1388.     { 0.00029374249, 0, 0 },
  1389.     { 0.00012013079, 4.09073224903, 1059.38193019 },
  1390.     { 7.577257e-005, 3.24151897354, 426.598190876 },
  1391.     { 1.94138e-005, 1.01219474101, 206.185548437 },
  1392.     { 1.940649e-005, 4.79769963661, 149.563197135 },
  1393.     { 1.888831e-005, 3.89252804366, 220.412642439 },
  1394.     { 1.434208e-005, 3.86895363775, 522.577418094 },
  1395.     { 1.406367e-005, 0.4759833515, 536.804512095 },
  1396.     { 1.185835e-005, 0.77770585045, 76.2660712756 },
  1397.     { 8.13685e-006, 3.25483611884, 36.6485629295 },
  1398.     { 7.67074e-006, 4.22743731914, 39.6175083461 },
  1399.     { 6.24814e-006, 0.27936466811, 73.297125859 },
  1400.     { 4.3664e-006, 4.44044655092, 1589.07289528 },
  1401.     { 3.79145e-006, 5.15640874752, 7.1135470008 },
  1402.     { 3.15393e-006, 6.15699854629, 419.484643875 },
  1403.     { 3.08784e-006, 2.49456658747, 639.897286314 },
  1404.     { 2.78795e-006, 4.93431870348, 110.206321219 },
  1405.     { 3.03993e-006, 4.89507841707, 6283.07584999 },
  1406.     { 2.27188e-006, 5.27839813806, 103.092774219 },
  1407.     { 2.16162e-006, 5.8029803212, 316.391869657 },
  1408.     { 1.76764e-006, 0.03416525046, 10213.2855462 },
  1409.     { 1.35792e-006, 2.00151020964, 1.4844727083 },
  1410.     { 1.16993e-006, 2.42475255571, 632.783739313 },
  1411.     { 1.05413e-006, 3.1233221385, 433.711737877 },
  1412.     { 9.7988e-007, 3.02626461372, 1052.26838319 },
  1413.     { 1.09101e-006, 3.15781282608, 1162.47470441 },
  1414.     { 6.9588e-007, 0.8219649508, 1066.49547719 },
  1415.     { 5.6882e-007, 1.32304578699, 949.17560897 },
  1416.     { 6.612e-007, 0.27653561007, 846.082834751 },
  1417.     { 6.3189e-007, 5.79436684832, 148.078724426 },
  1418.     { 6.3139e-007, 0.73209797865, 224.344795702 },
  1419.     { 4.8979e-007, 3.06244424367, 3340.6124267 },
  1420.     { 3.7824e-007, 4.58891701161, 35.1640902212 },
  1421.     { 3.115e-007, 1.37429681895, 63.7358983034 },
  1422.     { 3.0682e-007, 4.22246917155, 11.0457002639 },
  1423.     { 2.8741e-007, 3.71398829023, 151.047669843 },
  1424.     { 2.858e-007, 2.84721981555, 41.1019810544 },
  1425.     { 2.3782e-007, 3.76207354349, 227.52618944 },
  1426.     { 2.3267e-007, 0.46827104623, 85.8272988312 },
  1427.     { 2.2744e-007, 1.67012539714, 71.8126531507 },
  1428.     { 1.8818e-007, 4.79056538983, 2118.76386038 },
  1429.     { 2.2286e-007, 3.93734569173, 2.9689454166 },
  1430.     { 2.1992e-007, 0.11232184552, 77.7505439839 },
  1431.     { 2.0026e-007, 4.02923197304, 209.366942175 },
  1432.     { 1.9681e-007, 0.87544248531, 217.231248701 },
  1433.     { 1.9075e-007, 5.91973929854, 202.253395174 },
  1434.     { 1.6571e-007, 2.54911337935, 735.876513532 },
  1435.     { 1.5738e-007, 5.27754524439, 742.990060533 },
  1436.     { 1.8319e-007, 3.06472848621, 323.505416657 },
  1437.     { 1.736e-007, 3.01137661271, 138.517496871 },
  1438.     { 1.5488e-007, 4.00542220967, 515.463871093 },
  1439.     { 1.6367e-007, 1.83137880912, 853.196381752 },
  1440.     { 1.1229e-007, 1.18029367551, 199.072001436 },
  1441.     { 1.0836e-007, 0.34161370756, 543.918059096 },
  1442.     { 1.1587e-007, 0.61075744193, 525.758811832 },
  1443.     { 1.1447e-007, 3.7270425577, 533.623118358 },
  1444.     { 7.92e-008, 2.43547958386, 1478.86657406 },
  1445.     { 8.322e-008, 3.52503621824, 1692.1656695 },
  1446.     { 7.185e-008, 3.51955509534, 216.480489176 },
  1447.     { 7.015e-008, 1.38855213071, 210.1177017 },
  1448.     { 7.12e-008, 2.46055859947, 415.552490612 },
  1449.     { 6.867e-008, 4.39735582882, 117.31986822 },
  1450.     { 7.226e-008, 4.04267257839, 1265.56747863 },
  1451.     { 6.955e-008, 2.865019528, 956.289155971 },
  1452.     { 7.493e-008, 5.01430547428, 14.2270940016 },
  1453.     { 6.597e-008, 2.37676813421, 647.010833315 },
  1454.     { 7.38e-008, 3.2730220882, 1581.95934828 },
  1455.     { 6.401e-008, 5.30226825802, 95.9792272178 },
  1456.     { 6.244e-008, 5.44473078234, 70.8494453042 },
  1457.     // 73 terms retained
  1458. };
  1459. static VSOPTerm sun_X1[] = {
  1460.     { 1.296073e-005, 3.14159265359, 0 },
  1461.     { 8.97419e-006, 1.1289200545, 426.598190876 },
  1462.     { 7.76911e-006, 2.70600396412, 206.185548437 },
  1463.     { 7.53636e-006, 2.19131779736, 220.412642439 },
  1464.     { 6.06034e-006, 3.24815679698, 1059.38193019 },
  1465.     { 5.72567e-006, 5.56994506134, 522.577418094 },
  1466.     { 5.6152e-006, 5.05742214407, 536.804512095 },
  1467.     { 1.01075e-006, 3.47363025932, 7.1135470008 },
  1468.     { 7.2584e-007, 0.36521293891, 639.897286314 },
  1469.     { 8.753e-007, 1.66279295561, 419.484643875 },
  1470.     { 5.3691e-007, 1.32771189808, 433.711737877 },
  1471.     { 5.7424e-007, 4.25022395061, 213.299095438 },
  1472.     { 4.4073e-007, 3.59873993683, 1589.07289528 },
  1473.     { 3.1012e-007, 4.88786083215, 1052.26838319 },
  1474.     { 3.2089e-007, 0.97023379672, 529.690965095 },
  1475.     { 3.0164e-007, 5.48452294664, 1066.49547719 },
  1476.     { 3.2092e-007, 2.84692417916, 149.563197135 },
  1477.     { 2.1371e-007, 0.56918433581, 316.391869657 },
  1478.     { 1.899e-007, 2.06104675595, 227.52618944 },
  1479.     { 1.4015e-007, 4.17777922613, 110.206321219 },
  1480.     { 1.5885e-007, 5.78017661291, 76.2660712756 },
  1481.     { 1.2374e-007, 5.70562636316, 515.463871093 },
  1482.     { 1.3243e-007, 5.16075891864, 36.6485629295 },
  1483.     { 1.1847e-007, 3.05476901979, 632.783739313 },
  1484.     { 1.2487e-007, 2.32002507803, 39.6175083461 },
  1485.     { 1.0223e-007, 2.19747174258, 73.297125859 },
  1486.     { 9.014e-008, 2.8687275429, 199.072001436 },
  1487.     { 8.667e-008, 4.924197114, 543.918059096 },
  1488.     { 7.754e-008, 3.01431732345, 949.17560897 },
  1489.     { 7.535e-008, 2.70484475866, 103.092774219 },
  1490.     { 5.483e-008, 6.01106223961, 853.196381752 },
  1491.     { 5.158e-008, 1.94900517603, 209.366942175 },
  1492.     { 5.079e-008, 2.96229494906, 217.231248701 },
  1493.     { 4.653e-008, 1.72782369127, 216.480489176 },
  1494.     { 4.541e-008, 3.17727011849, 210.1177017 },
  1495.     { 4.456e-008, 0.76977956324, 323.505416657 },
  1496.     { 4.233e-008, 3.49063898076, 63.7358983034 },
  1497.     { 4.095e-008, 0.51793431422, 647.010833315 },
  1498.     { 4.989e-008, 3.32377727482, 14.2270940016 },
  1499.     { 4.32e-008, 4.2884518892, 735.876513532 },
  1500.     // 40 terms retained
  1501. };
  1502. static VSOPTerm sun_X2[] = {
  1503.     { 1.60293e-006, 4.40406062613, 206.185548437 },
  1504.     { 1.55633e-006, 0.48183983171, 220.412642439 },
  1505.     { 1.18222e-006, 0.99338493688, 522.577418094 },
  1506.     { 1.15842e-006, 3.35337160144, 536.804512095 },
  1507.     { 9.6063e-007, 5.5670757102, 213.299095438 },
  1508.     { 6.5107e-007, 5.63089478188, 426.598190876 },
  1509.     { 7.4211e-007, 2.15619420586, 529.690965095 },
  1510.     { 3.9505e-007, 1.98115233273, 1059.38193019 },
  1511.     { 4.4785e-007, 0, 0 },
  1512.     { 1.4232e-007, 5.82837756444, 433.711737877 },
  1513.     { 1.3989e-007, 1.76434060619, 7.1135470008 },
  1514.     { 1.2711e-007, 3.4914979877, 419.484643875 },
  1515.     { 9.321e-008, 4.71464865506, 639.897286314 },
  1516.     { 7.707e-008, 0.35647823047, 227.52618944 },
  1517.     { 6.797e-008, 3.87383015136, 1066.49547719 },
  1518.     { 5.452e-008, 0.48898137631, 1052.26838319 },
  1519.     { 5.027e-008, 1.12572622612, 515.463871093 },
  1520.     { 3.854e-008, 2.44255859575, 1589.07289528 },
  1521.     { 3.667e-008, 4.56283602529, 199.072001436 },
  1522.     { 3.523e-008, 3.22103209546, 543.918059096 },
  1523.     { 1.347e-008, 2.19024470415, 316.391869657 },
  1524.     { 1.405e-008, 6.22622304401, 216.480489176 },
  1525.     { 1.32e-008, 4.96541286159, 647.010833315 },
  1526.     { 1.365e-008, 4.95810524231, 210.1177017 },
  1527.     { 1.687e-008, 1.62553064962, 14.2270940016 },
  1528.     { 1.093e-008, 4.21067890946, 103.092774219 },
  1529.     { 9.73e-009, 4.02172041169, 853.196381752 },
  1530.     // 27 terms retained
  1531. };
  1532. static VSOPTerm sun_X3[] = {
  1533.     { 2.2035e-007, 6.11822426048, 206.185548437 },
  1534.     { 2.1482e-007, 5.03368299703, 220.412642439 },
  1535.     { 1.6291e-007, 2.71940457791, 522.577418094 },
  1536.     { 1.5934e-007, 1.63320186413, 536.804512095 },
  1537.     { 3.063e-008, 3.8020122552, 426.598190876 },
  1538.     { 2.563e-008, 4.04702837579, 433.711737877 },
  1539.     { 2.101e-008, 4.9278699675, 227.52618944 },
  1540.     { 1.706e-008, 0.42316599671, 1059.38193019 },
  1541.     { 2.008e-008, 0, 0 },
  1542.     { 1.375e-008, 2.83821817426, 515.463871093 },
  1543.     { 1.266e-008, 5.3750910608, 419.484643875 },
  1544.     { 1.038e-008, 2.26994057258, 1066.49547719 },
  1545.     { 1e-008, 6.26567671131, 199.072001436 },
  1546.     { 9.64e-009, 1.50782014667, 543.918059096 },
  1547.     { 1.275e-008, 0.02482955002, 7.1135470008 },
  1548.     { 8.45e-009, 2.83708264275, 639.897286314 },
  1549.     { 6.78e-009, 2.36507413871, 1052.26838319 },
  1550.     // 17 terms retained
  1551. };
  1552. static VSOPTerm sun_X4[] = {
  1553.     { 2.272e-008, 1.5636483818, 206.185548437 },
  1554.     { 2.236e-008, 3.28143366276, 220.412642439 },
  1555.     { 1.682e-008, 4.46996330708, 522.577418094 },
  1556.     { 1.638e-008, 6.17513895178, 536.804512095 },
  1557.     { 4.3e-009, 3.20713267334, 227.52618944 },
  1558.     { 3.48e-009, 2.26681787351, 433.711737877 },
  1559.     { 2.91e-009, 4.56956279775, 515.463871093 },
  1560.     { 2.06e-009, 6.05364860885, 543.918059096 },
  1561.     { 2.02e-009, 1.69320982304, 199.072001436 },
  1562.     // 9 terms retained
  1563. };
  1564. static VSOPTerm sun_Y0[] = {
  1565.     { 0.00495536218, 2.17046712634, 529.690965095 },
  1566.     { 0.00272185821, 2.44443364925, 213.299095438 },
  1567.     { 0.00155444313, 0.5992701084, 38.1330356378 },
  1568.     { 0.00083755792, 0.7688016471, 74.7815985673 },
  1569.     { 0.00033869535, 0, 0 },
  1570.     { 0.00012011827, 2.5200314788, 1059.38193019 },
  1571.     { 7.58583e-005, 1.66995483217, 426.598190876 },
  1572.     { 1.963743e-005, 5.70773655842, 206.185548437 },
  1573.     { 1.891503e-005, 2.32096821003, 220.412642439 },
  1574.     { 1.940124e-005, 3.22686130461, 149.563197135 },
  1575.     { 1.436841e-005, 2.30161968078, 522.577418094 },
  1576.     { 1.405975e-005, 5.18858607879, 536.804512095 },
  1577.     { 1.185515e-005, 5.48969329104, 76.2660712756 },
  1578.     { 8.13077e-006, 1.68393442622, 36.6485629295 },
  1579.     { 7.67125e-006, 2.65620459324, 39.6175083461 },
  1580.     { 6.28788e-006, 4.99295631526, 73.297125859 },
  1581.     { 4.36632e-006, 2.86969820654, 1589.07289528 },
  1582.     { 3.82844e-006, 3.57213982765, 7.1135470008 },
  1583.     { 3.17511e-006, 4.53536380695, 419.484643875 },
  1584.     { 3.09191e-006, 0.92301535903, 639.897286314 },
  1585.     { 2.87366e-006, 3.36314089821, 110.206321219 },
  1586.     { 3.04013e-006, 3.32425157103, 6283.07584999 },
  1587.     { 2.69924e-006, 0.29178785093, 103.092774219 },
  1588.     { 2.13445e-006, 4.22099738237, 316.391869657 },
  1589.     { 1.77041e-006, 4.747331353, 10213.2855462 },
  1590.     { 1.38577e-006, 0.43043981485, 1.4844727083 },
  1591.     { 1.12761e-006, 0.85382170184, 632.783739313 },
  1592.     { 1.05538e-006, 1.55181188435, 433.711737877 },
  1593.     { 9.8007e-007, 1.45965911177, 1052.26838319 },
  1594.     { 1.09014e-006, 1.58735183284, 1162.47470441 },
  1595.     { 6.9581e-007, 5.53444845615, 1066.49547719 },
  1596.     { 5.6638e-007, 6.03067632809, 949.17560897 },
  1597.     { 6.6066e-007, 4.9895069635, 846.082834751 },
  1598.     { 6.3109e-007, 4.22325583135, 148.078724426 },
  1599.     { 6.3108e-007, 5.44406082112, 224.344795702 },
  1600.     { 4.891e-007, 1.4905211289, 3340.6124267 },
  1601.     { 3.4784e-007, 3.0311366542, 35.1640902212 },
  1602.     { 3.0366e-007, 2.65225160596, 11.0457002639 },
  1603.     { 2.8582e-007, 1.27599593473, 41.1019810544 },
  1604.     { 2.8733e-007, 2.14315245629, 151.047669843 },
  1605.     { 2.7688e-007, 5.44433605847, 63.7358983034 },
  1606.     { 2.3815e-007, 2.19051967809, 227.52618944 },
  1607.     { 2.3457e-007, 0.09576335036, 71.8126531507 },
  1608.     { 2.3256e-007, 5.18050538435, 85.8272988312 },
  1609.     { 1.8818e-007, 3.21978774117, 2118.76386038 },
  1610.     { 2.2104e-007, 2.36649230999, 2.9689454166 },
  1611.     { 2.1981e-007, 4.82484958838, 77.7505439839 },
  1612.     { 2.0052e-007, 2.45637769313, 209.366942175 },
  1613.     { 1.9691e-007, 5.58713076986, 217.231248701 },
  1614.     { 1.5682e-007, 3.70800811377, 742.990060533 },
  1615.     { 1.8552e-007, 4.31061638297, 202.253395174 },
  1616.     { 1.8318e-007, 1.49471267476, 323.505416657 },
  1617.     { 1.7492e-007, 1.45131471586, 138.517496871 },
  1618.     { 1.5554e-007, 1.06805925164, 735.876513532 },
  1619.     { 1.5545e-007, 2.44244738845, 515.463871093 },
  1620.     { 1.6381e-007, 0.25980625854, 853.196381752 },
  1621.     { 1.1595e-007, 5.83451477433, 199.072001436 },
  1622.     { 1.0833e-007, 5.05422968004, 543.918059096 },
  1623.     { 1.1585e-007, 5.32336141881, 525.758811832 },
  1624.     { 1.1435e-007, 2.15573411853, 533.623118358 },
  1625.     { 7.912e-008, 0.8642910472, 1478.86657406 },
  1626.     { 8.319e-008, 1.95435351055, 1692.1656695 },
  1627.     { 7.196e-008, 1.94802350337, 216.480489176 },
  1628.     { 7.036e-008, 6.09743344991, 210.1177017 },
  1629.     { 7.148e-008, 0.89057242152, 415.552490612 },
  1630.     { 6.899e-008, 2.82570489004, 117.31986822 },
  1631.     { 7.245e-008, 2.48166026447, 1265.56747863 },
  1632.     { 6.96e-008, 1.29290894763, 956.289155971 },
  1633.     { 7.569e-008, 3.42743646666, 14.2270940016 },
  1634.     { 6.604e-008, 0.80525786731, 647.010833315 },
  1635.     { 7.374e-008, 1.70513414627, 1581.95934828 },
  1636.     { 7.04e-008, 0.48482036852, 95.9792272178 },
  1637.     { 6.33e-008, 3.87859376833, 70.8494453042 },
  1638.     // 73 terms retained
  1639. };
  1640. static VSOPTerm sun_Y1[] = {
  1641.     { 8.98747e-006, 5.8406215769, 426.598190876 },
  1642.     { 7.81392e-006, 1.12962797123, 206.185548437 },
  1643.     { 7.54898e-006, 0.61969438775, 220.412642439 },
  1644.     { 6.05551e-006, 1.67748431613, 1059.38193019 },
  1645.     { 5.73282e-006, 4.00088433502, 522.577418094 },
  1646.     { 5.61304e-006, 3.48675865561, 536.804512095 },
  1647.     { 1.02847e-006, 1.87716874734, 7.1135470008 },
  1648.     { 7.2695e-007, 5.07718907269, 639.897286314 },
  1649.     { 8.732e-007, 0.0906528032, 419.484643875 },
  1650.     { 5.3759e-007, 6.03942421773, 433.711737877 },
  1651.     { 4.7287e-007, 2.15306225354, 213.299095438 },
  1652.     { 4.4572e-007, 5.0598198221, 529.690965095 },
  1653.     { 4.4061e-007, 2.02795830775, 1589.07289528 },
  1654.     { 3.101e-007, 3.31770926852, 1052.26838319 },
  1655.     { 3.016e-007, 3.91376481697, 1066.49547719 },
  1656.     { 3.2071e-007, 1.27581809571, 149.563197135 },
  1657.     { 2.1415e-007, 5.30131509744, 316.391869657 },
  1658.     { 1.9019e-007, 0.48946385175, 227.52618944 },
  1659.     { 1.6129e-007, 2.44989442588, 110.206321219 },
  1660.     { 1.5875e-007, 4.20914007335, 76.2660712756 },
  1661.     { 1.2413e-007, 4.14057132118, 515.463871093 },
  1662.     { 1.3252e-007, 3.5892518546, 36.6485629295 },
  1663.     { 1.1814e-007, 1.50628561093, 632.783739313 },
  1664.     { 1.2488e-007, 0.74887488462, 39.6175083461 },
  1665.     { 1.0164e-007, 0.6299231039, 73.297125859 },
  1666.     { 9.222e-008, 1.25927718333, 199.072001436 },
  1667.     { 8.663e-008, 3.35360012494, 543.918059096 },
  1668.     { 7.755e-008, 1.44764390538, 949.17560897 },
  1669.     { 7.691e-008, 1.12047989646, 103.092774219 },
  1670.     { 5.487e-008, 4.43944248381, 853.196381752 },
  1671.     { 5.17e-008, 0.37516758388, 209.366942175 },
  1672.     { 5.081e-008, 1.3905945573, 217.231248701 },
  1673.     { 4.66e-008, 0.15626149972, 216.480489176 },
  1674.     { 4.553e-008, 1.60431626596, 210.1177017 },
  1675.     { 4.447e-008, 5.48065037241, 323.505416657 },
  1676.     { 6.117e-008, 0, 0 },
  1677.     { 4.151e-008, 1.93098926861, 63.7358983034 },
  1678.     { 4.099e-008, 5.22964063969, 647.010833315 },
  1679.     { 5.058e-008, 1.73136117173, 14.2270940016 },
  1680.     { 4.293e-008, 2.71452907477, 735.876513532 },
  1681.     // 40 terms retained
  1682. };
  1683. static VSOPTerm sun_Y2[] = {
  1684.     { 1.60849e-006, 2.83104666823, 206.185548437 },
  1685.     { 1.55973e-006, 5.19309730583, 220.412642439 },
  1686.     { 1.18316e-006, 5.70681506981, 522.577418094 },
  1687.     { 1.15781e-006, 1.78259431361, 536.804512095 },
  1688.     { 1.03374e-006, 4.03691274682, 213.299095438 },
  1689.     { 6.5392e-007, 4.05826871786, 426.598190876 },
  1690.     { 7.3065e-007, 0.61752643976, 529.690965095 },
  1691.     { 5.5814e-007, 3.14159265359, 0 },
  1692.     { 3.9447e-007, 0.41095552166, 1059.38193019 },
  1693.     { 1.4254e-007, 4.25680464915, 433.711737877 },
  1694.     { 1.4479e-007, 0.14336346755, 7.1135470008 },
  1695.     { 1.2723e-007, 1.91903810105, 419.484643875 },
  1696.     { 9.344e-008, 3.14385567645, 639.897286314 },
  1697.     { 7.72e-008, 5.06798604557, 227.52618944 },
  1698.     { 6.795e-008, 2.30303656447, 1066.49547719 },
  1699.     { 5.452e-008, 5.20193437243, 1052.26838319 },
  1700.     { 5.04e-008, 5.84239832938, 515.463871093 },
  1701.     { 3.852e-008, 0.87182418595, 1589.07289528 },
  1702.     { 3.729e-008, 2.96611895542, 199.072001436 },
  1703.     { 3.521e-008, 1.65043749771, 543.918059096 },
  1704.     { 1.351e-008, 0.59351678849, 316.391869657 },
  1705.     { 1.409e-008, 4.65471130275, 216.480489176 },
  1706.     { 1.321e-008, 3.39383854482, 647.010833315 },
  1707.     { 1.368e-008, 3.38543777835, 210.1177017 },
  1708.     { 1.717e-008, 0.02861328541, 14.2270940016 },
  1709.     // 25 terms retained
  1710. };
  1711. static VSOPTerm sun_Y3[] = {
  1712.     { 2.2088e-007, 4.54598360855, 206.185548437 },
  1713.     { 2.1546e-007, 3.46116671016, 220.412642439 },
  1714.     { 1.63e-007, 1.14934178921, 522.577418094 },
  1715.     { 1.5923e-007, 0.06221071687, 536.804512095 },
  1716.     { 3.093e-008, 2.22514436528, 426.598190876 },
  1717.     { 2.568e-008, 2.47493921494, 433.711737877 },
  1718.     { 2.105e-008, 3.35595521974, 227.52618944 },
  1719.     { 2.639e-008, 0, 0 },
  1720.     { 1.7e-008, 5.13510489936, 1059.38193019 },
  1721.     { 1.378e-008, 1.27086042787, 515.463871093 },
  1722.     { 1.266e-008, 3.80209162712, 419.484643875 },
  1723.     { 1.363e-008, 4.63636570705, 7.1135470008 },
  1724.     { 1.013e-008, 4.67704889552, 199.072001436 },
  1725.     { 1.037e-008, 0.69915801725, 1066.49547719 },
  1726.     { 9.64e-009, 6.2204514585, 543.918059096 },
  1727.     { 8.49e-009, 1.26670686968, 639.897286314 },
  1728.     { 6.78e-009, 0.7955478313, 1052.26838319 },
  1729.     // 17 terms retained
  1730. };
  1731. static VSOPTerm sun_Y4[] = {
  1732.     { 2.278e-008, 6.2738890301, 206.185548437 },
  1733.     { 2.245e-008, 1.70782913671, 220.412642439 },
  1734.     { 1.682e-008, 2.8998895537, 522.577418094 },
  1735.     { 1.636e-008, 4.60365551069, 536.804512095 },
  1736.     { 4.31e-009, 1.63508563664, 227.52618944 },
  1737.     { 3.49e-009, 0.69586528581, 433.711737877 },
  1738.     { 2.91e-009, 3.00165310731, 515.463871093 },
  1739.     { 2.06e-009, 4.48461122025, 543.918059096 },
  1740.     { 2.04e-009, 0.11049991144, 199.072001436 },
  1741.     // 9 terms retained
  1742. };
  1743. static VSOPTerm sun_Z0[] = {
  1744.     { 0.00011810648, 0.46078690233, 213.299095438 },
  1745.     { 0.000112777, 0.41689943638, 529.690965095 },
  1746.     { 4.802048e-005, 4.5826472337, 38.1330356378 },
  1747.     { 1.131046e-005, 5.75877139035, 74.7815985673 },
  1748.     { 1.152656e-005, 3.14159265359, 0 },
  1749.     { 3.2982e-006, 5.97879747107, 426.598190876 },
  1750.     { 2.73335e-006, 0.76652182727, 1059.38193019 },
  1751.     { 9.4247e-007, 3.71017552866, 206.185548437 },
  1752.     { 8.1859e-007, 0.33908959552, 220.412642439 },
  1753.     { 4.0793e-007, 0.45519444489, 522.577418094 },
  1754.     { 3.1695e-007, 3.44538862917, 536.804512095 },
  1755.     { 2.4534e-007, 5.66491831903, 36.6485629295 },
  1756.     { 2.6057e-007, 1.93178628731, 149.563197135 },
  1757.     { 2.3291e-007, 0.36646817056, 39.6175083461 },
  1758.     { 1.973e-007, 3.16782731236, 76.2660712756 },
  1759.     { 2.1801e-007, 1.54437894252, 7.1135470008 },
  1760.     { 1.4512e-007, 1.58375269275, 110.206321219 },
  1761.     { 1.3582e-007, 5.23992989955, 639.897286314 },
  1762.     // 18 terms retained
  1763. };
  1764. static VSOPTerm sun_Z1[] = {
  1765.     { 5.44343e-006, 1.80383716985, 213.299095438 },
  1766.     { 3.88234e-006, 4.6685522117, 529.690965095 },
  1767.     { 1.33398e-006, 0, 0 },
  1768.     { 3.7294e-007, 5.40133589632, 206.185548437 },
  1769.     { 2.8944e-007, 4.9324571056, 220.412642439 },
  1770.     { 2.8635e-007, 3.15447649004, 74.7815985673 },
  1771.     { 2.4988e-007, 3.65752330365, 426.598190876 },
  1772.     { 1.9373e-007, 5.74043087058, 1059.38193019 },
  1773.     { 1.3746e-007, 1.71298046603, 536.804512095 },
  1774.     { 1.2168e-007, 2.31196328906, 522.577418094 },
  1775.     { 8.01e-008, 5.28413417446, 38.1330356378 },
  1776.     // 11 terms retained
  1777. };
  1778. static VSOPTerm sun_Z2[] = {
  1779.     { 3.7478e-007, 3.23028568613, 213.299095438 },
  1780.     { 2.7315e-007, 6.15507992196, 529.690965095 },
  1781.     { 8.616e-008, 0.7720923931, 206.185548437 },
  1782.     { 5.511e-008, 3.23377546695, 220.412642439 },
  1783.     { 2.969e-008, 6.27419756063, 536.804512095 },
  1784.     { 2.272e-008, 4.09618627765, 522.577418094 },
  1785.     { 1.982e-008, 2.34242027589, 426.598190876 },
  1786.     // 7 terms retained
  1787. };
  1788. #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
  1789. #define VSOP_SERIES(s) VSOPSeries(s, ARRAY_SIZE(s))
  1790. static VSOPSeries mercury_L[] = {
  1791.     VSOP_SERIES(mercury_L0), VSOP_SERIES(mercury_L1), VSOP_SERIES(mercury_L2),
  1792.     VSOP_SERIES(mercury_L3), VSOP_SERIES(mercury_L4), VSOP_SERIES(mercury_L5),
  1793. };
  1794. static VSOPSeries mercury_B[] = {
  1795.     VSOP_SERIES(mercury_B0), VSOP_SERIES(mercury_B1), VSOP_SERIES(mercury_B2),
  1796.     VSOP_SERIES(mercury_B3), VSOP_SERIES(mercury_B4), VSOP_SERIES(mercury_B5),
  1797. };
  1798. static VSOPSeries mercury_R[] = {
  1799.     VSOP_SERIES(mercury_R0), VSOP_SERIES(mercury_R1), VSOP_SERIES(mercury_R2),
  1800.     VSOP_SERIES(mercury_R3), VSOP_SERIES(mercury_R4),
  1801. };
  1802. static VSOPSeries venus_L[] = {
  1803.     VSOP_SERIES(venus_L0), VSOP_SERIES(venus_L1), VSOP_SERIES(venus_L2),
  1804.     VSOP_SERIES(venus_L3), VSOP_SERIES(venus_L4), VSOP_SERIES(venus_L5),
  1805. };
  1806. static VSOPSeries venus_B[] = {
  1807.     VSOP_SERIES(venus_B0), VSOP_SERIES(venus_B1), VSOP_SERIES(venus_B2),
  1808.     VSOP_SERIES(venus_B3), VSOP_SERIES(venus_B4), VSOP_SERIES(venus_B5),
  1809. };
  1810. static VSOPSeries venus_R[] = {
  1811.     VSOP_SERIES(venus_R0), VSOP_SERIES(venus_R1), VSOP_SERIES(venus_R2),
  1812.     VSOP_SERIES(venus_R3), VSOP_SERIES(venus_R4),
  1813. };
  1814. static VSOPSeries earth_L[] = {
  1815.     VSOP_SERIES(earth_L0), VSOP_SERIES(earth_L1), VSOP_SERIES(earth_L2),
  1816.     VSOP_SERIES(earth_L3), VSOP_SERIES(earth_L4), VSOP_SERIES(earth_L5),
  1817. };
  1818. static VSOPSeries earth_B[] = {
  1819.     VSOP_SERIES(earth_B0), VSOP_SERIES(earth_B1), VSOP_SERIES(earth_B2),
  1820. };
  1821. static VSOPSeries earth_R[] = {
  1822.     VSOP_SERIES(earth_R0), VSOP_SERIES(earth_R1), VSOP_SERIES(earth_R2),
  1823.     VSOP_SERIES(earth_R3), VSOP_SERIES(earth_R4), VSOP_SERIES(earth_R5),
  1824. };
  1825. static VSOPSeries mars_L[] = {
  1826.     VSOP_SERIES(mars_L0), VSOP_SERIES(mars_L1), VSOP_SERIES(mars_L2),
  1827.     VSOP_SERIES(mars_L3), VSOP_SERIES(mars_L4), VSOP_SERIES(mars_L5),
  1828. };
  1829. static VSOPSeries mars_B[] = {
  1830.     VSOP_SERIES(mars_B0), VSOP_SERIES(mars_B1), VSOP_SERIES(mars_B2),
  1831.     VSOP_SERIES(mars_B3), VSOP_SERIES(mars_B4), VSOP_SERIES(mars_B5),
  1832. };
  1833. static VSOPSeries mars_R[] = {
  1834.     VSOP_SERIES(mars_R0), VSOP_SERIES(mars_R1), VSOP_SERIES(mars_R2),
  1835.     VSOP_SERIES(mars_R3), VSOP_SERIES(mars_R4), VSOP_SERIES(mars_R5),
  1836. };
  1837. static VSOPSeries jupiter_L[] = {
  1838.     VSOP_SERIES(jupiter_L0), VSOP_SERIES(jupiter_L1), VSOP_SERIES(jupiter_L2),
  1839.     VSOP_SERIES(jupiter_L3), VSOP_SERIES(jupiter_L4), VSOP_SERIES(jupiter_L5),
  1840. };
  1841. static VSOPSeries jupiter_B[] = {
  1842.     VSOP_SERIES(jupiter_B0), VSOP_SERIES(jupiter_B1), VSOP_SERIES(jupiter_B2),
  1843.     VSOP_SERIES(jupiter_B3), VSOP_SERIES(jupiter_B4), VSOP_SERIES(jupiter_B5),
  1844. };
  1845. static VSOPSeries jupiter_R[] = {
  1846.     VSOP_SERIES(jupiter_R0), VSOP_SERIES(jupiter_R1), VSOP_SERIES(jupiter_R2),
  1847.     VSOP_SERIES(jupiter_R3), VSOP_SERIES(jupiter_R4), VSOP_SERIES(jupiter_R5),
  1848. };
  1849. static VSOPSeries saturn_L[] = {
  1850.     VSOP_SERIES(saturn_L0), VSOP_SERIES(saturn_L1), VSOP_SERIES(saturn_L2),
  1851.     VSOP_SERIES(saturn_L3), VSOP_SERIES(saturn_L4), VSOP_SERIES(saturn_L5),
  1852. };
  1853. static VSOPSeries saturn_B[] = {
  1854.     VSOP_SERIES(saturn_B0), VSOP_SERIES(saturn_B1), VSOP_SERIES(saturn_B2),
  1855.     VSOP_SERIES(saturn_B3), VSOP_SERIES(saturn_B4), VSOP_SERIES(saturn_B5),
  1856. };
  1857. static VSOPSeries saturn_R[] = {
  1858.     VSOP_SERIES(saturn_R0), VSOP_SERIES(saturn_R1), VSOP_SERIES(saturn_R2),
  1859.     VSOP_SERIES(saturn_R3), VSOP_SERIES(saturn_R4), VSOP_SERIES(saturn_R5),
  1860. };
  1861. static VSOPSeries uranus_L[] = {
  1862.     VSOP_SERIES(uranus_L0), VSOP_SERIES(uranus_L1), VSOP_SERIES(uranus_L2),
  1863.     VSOP_SERIES(uranus_L3), VSOP_SERIES(uranus_L4),
  1864. };
  1865. static VSOPSeries uranus_B[] = {
  1866.     VSOP_SERIES(uranus_B0), VSOP_SERIES(uranus_B1), VSOP_SERIES(uranus_B2),
  1867.     VSOP_SERIES(uranus_B3),
  1868. };
  1869. static VSOPSeries uranus_R[] = {
  1870.     VSOP_SERIES(uranus_R0), VSOP_SERIES(uranus_R1), VSOP_SERIES(uranus_R2),
  1871.     VSOP_SERIES(uranus_R3), VSOP_SERIES(uranus_R4),
  1872. };
  1873. static VSOPSeries neptune_L[] = {
  1874.     VSOP_SERIES(neptune_L0), VSOP_SERIES(neptune_L1), VSOP_SERIES(neptune_L2),
  1875.     VSOP_SERIES(neptune_L3),
  1876. };
  1877. static VSOPSeries neptune_B[] = {
  1878.     VSOP_SERIES(neptune_B0), VSOP_SERIES(neptune_B1), VSOP_SERIES(neptune_B2),
  1879.     VSOP_SERIES(neptune_B3),
  1880. };
  1881. static VSOPSeries neptune_R[] = {
  1882.     VSOP_SERIES(neptune_R0), VSOP_SERIES(neptune_R1), VSOP_SERIES(neptune_R2),
  1883.     VSOP_SERIES(neptune_R3), VSOP_SERIES(neptune_R4),
  1884. };
  1885. static VSOPSeries sun_X[] = {
  1886.     VSOP_SERIES(sun_X0), VSOP_SERIES(sun_X1), VSOP_SERIES(sun_X2),
  1887.     VSOP_SERIES(sun_X3), VSOP_SERIES(sun_X4),
  1888. };
  1889. static VSOPSeries sun_Y[] = {
  1890.     VSOP_SERIES(sun_Y0), VSOP_SERIES(sun_Y1), VSOP_SERIES(sun_Y2),
  1891.     VSOP_SERIES(sun_Y3), VSOP_SERIES(sun_Y4),
  1892. };
  1893. static VSOPSeries sun_Z[] = {
  1894.     VSOP_SERIES(sun_Z0), VSOP_SERIES(sun_Z1), VSOP_SERIES(sun_Z2),
  1895. };
  1896. static double SumSeries(const VSOPSeries& series, double t)
  1897. {
  1898.     if (series.nTerms < 1)
  1899.         return 0.0;
  1900.     double x = 0.0;
  1901.     VSOPTerm* term = &series.terms[0];
  1902.     for (int i = 0; i < series.nTerms; i++, term++)
  1903.         x += term->A * cos(term->B + term->C * t);
  1904.     return x;
  1905. };
  1906. class VSOP87Orbit : public CachingOrbit
  1907. {
  1908.  private:
  1909.     VSOPSeries* vsL;
  1910.     int nL;
  1911.     VSOPSeries* vsB;
  1912.     int nB;
  1913.     VSOPSeries* vsR;
  1914.     int nR;
  1915.     double period;
  1916.     double boundingRadius;
  1917.  public:
  1918.     VSOP87Orbit(VSOPSeries* _vsL, int _nL,
  1919.                 VSOPSeries* _vsB, int _nB,
  1920.                 VSOPSeries* _vsR, int _nR,
  1921.                 double _period,
  1922.                 double _boundingRadius) :
  1923.         vsL(_vsL), nL(_nL),
  1924.         vsB(_vsB), nB(_nB),
  1925.         vsR(_vsR), nR(_nR),
  1926.         period(_period),
  1927.         boundingRadius(_boundingRadius)
  1928.     {
  1929.     };
  1930.     virtual ~VSOP87Orbit() {};
  1931.     double getPeriod() const
  1932.     {
  1933.         return period;
  1934.     }
  1935.     double getBoundingRadius() const
  1936.     {
  1937.         return boundingRadius;
  1938.     }
  1939.     Point3d computePosition(double jd) const
  1940.     {
  1941.         // t is Julian millenia since J2000.0
  1942.         double t = (jd - 2451545.0) / 365250.0;
  1943.         // Heliocentric coordinates
  1944.         double l = 0.0; // longitude
  1945.         double b = 0.0; // latitude
  1946.         double r = 0.0; // radius
  1947.         int i;
  1948.         double T;
  1949.         // Evaluate series for l
  1950.         T = 1;
  1951.         for (i = 0; i < nL; i++)
  1952.         {
  1953.             l += SumSeries(vsL[i], t) * T;
  1954.             T = t * T;
  1955.         }
  1956.         // Evaluate series for b
  1957.         T = 1;
  1958.         for (i = 0; i < nB; i++)
  1959.         {
  1960.             b += SumSeries(vsB[i], t) * T;
  1961.             T = t * T;
  1962.         }
  1963.         // Evaluate series for r
  1964.         T = 1;
  1965.         for (i = 0; i < nR; i++)
  1966.         {
  1967.             r += SumSeries(vsR[i], t) * T;
  1968.             T = t * T;
  1969.         }
  1970. #if 0
  1971.         // l and b are in units of 1e+8 radians
  1972.         l *= 1.0e-8;
  1973.         b *= 1.0e-8;
  1974.         // r is in units of 1e-8 AU
  1975.         r *= (KM_PER_AU / 100000000.0);
  1976. #endif
  1977.         r *= KM_PER_AU;
  1978.         // Corrections for internal coordinate system
  1979.         b -= PI / 2;
  1980.         l += PI;
  1981.         return Point3d(cos(l) * sin(b) * r,
  1982.                        cos(b) * r,
  1983.                        -sin(l) * sin(b) * r);
  1984.     }
  1985. };
  1986. // VSOP87 orbit with rectangular variables
  1987. class VSOP87OrbitRect : public CachingOrbit
  1988. {
  1989.  private:
  1990.     VSOPSeries* vsX;
  1991.     int nX;
  1992.     VSOPSeries* vsY;
  1993.     int nY;
  1994.     VSOPSeries* vsZ;
  1995.     int nZ;
  1996.     double period;
  1997.     double boundingRadius;
  1998.  public:
  1999.     VSOP87OrbitRect(VSOPSeries* _vsX, int _nX,
  2000.                     VSOPSeries* _vsY, int _nY,
  2001.                     VSOPSeries* _vsZ, int _nZ,
  2002.                     double _period,
  2003.                     double _boundingRadius) :
  2004.         vsX(_vsX), nX(_nX),
  2005.         vsY(_vsY), nY(_nY),
  2006.         vsZ(_vsZ), nZ(_nZ),
  2007.         period(_period),
  2008.         boundingRadius(_boundingRadius)
  2009.     {
  2010.     };
  2011.     virtual ~VSOP87OrbitRect() {};
  2012.     double getPeriod() const
  2013.     {
  2014.         return period;
  2015.     }
  2016.     virtual bool isPeriodic() const
  2017.     {
  2018.         return period != 0.0;
  2019.     }
  2020.     double getBoundingRadius() const
  2021.     {
  2022.         return boundingRadius;
  2023.     }
  2024.     Point3d computePosition(double jd) const
  2025.     {
  2026.         // t is Julian millenia since J2000.0
  2027.         double t = (jd - 2451545.0) / 365250.0;
  2028.         Vec3d v(0.0, 0.0, 0.0);
  2029.         int i;
  2030.         double T;
  2031.         // Evaluate series for x
  2032.         T = 1;
  2033.         for (i = 0; i < nX; i++)
  2034.         {
  2035.             v.x += SumSeries(vsX[i], t) * T;
  2036.             T = t * T;
  2037.         }
  2038.         // Evaluate series for y
  2039.         T = 1;
  2040.         for (i = 0; i < nY; i++)
  2041.         {
  2042.             v.y += SumSeries(vsY[i], t) * T;
  2043.             T = t * T;
  2044.         }
  2045.         // Evaluate series for z
  2046.         T = 1;
  2047.         for (i = 0; i < nZ; i++)
  2048.         {
  2049.             v.z += SumSeries(vsZ[i], t) * T;
  2050.             T = t * T;
  2051.         }
  2052.         v *= KM_PER_AU;
  2053.         // Corrections for internal coordinate system
  2054.         return Point3d(v.x, v.z, -v.y);
  2055.     }
  2056. };
  2057. static double yearToJD(int year)
  2058. {
  2059.     return (double) astro::Date(year, 1, 1);
  2060. }
  2061. Orbit* CreateVSOP87Orbit(const string& name)
  2062. {
  2063.     if (name == "vsop87-mercury")
  2064.     {
  2065.         Orbit* o = new VSOP87Orbit(mercury_L, 6,
  2066.                                    mercury_B, 6,
  2067.                                    mercury_R, 5,
  2068.                                    0.2408 * 365.25,
  2069.                                    60000000.0);
  2070.         return new MixedOrbit(o, yearToJD(-4000), yearToJD(4000),
  2071.                               astro::SolarMass);
  2072.     }
  2073.     else if (name == "vsop87-venus")
  2074.     {
  2075.         Orbit* o = new VSOP87Orbit(venus_L, 6,
  2076.                                    venus_B, 6,
  2077.                                    venus_R, 5,
  2078.                                    0.6152 * 365.25,
  2079.                                    100000000.0);
  2080.         return new MixedOrbit(o, yearToJD(-4000), yearToJD(4000),
  2081.                               astro::SolarMass);
  2082.     }
  2083.     else if (name == "vsop87-earth")
  2084.     {
  2085.         Orbit* o = new VSOP87Orbit(earth_L, 6,
  2086.                                    earth_B, 3,
  2087.                                    earth_R, 6,
  2088.                                    365.25,
  2089.                                    160000000.0);
  2090.         return new MixedOrbit(o, yearToJD(-4000), yearToJD(4000),
  2091.                               astro::SolarMass);
  2092.     }
  2093.     else if (name == "vsop87-mars")
  2094.     {
  2095.         Orbit* o = new VSOP87Orbit(mars_L, 6,
  2096.                                    mars_B, 6,
  2097.                                    mars_R, 6,
  2098.                                    1.8809 * 365.25,
  2099.                                    240000000);
  2100.         return new MixedOrbit(o, yearToJD(-4000), yearToJD(4000),
  2101.                               astro::SolarMass);
  2102.     }
  2103.     else if (name == "vsop87-jupiter")
  2104.     {
  2105.         Orbit* o = new VSOP87Orbit(jupiter_L, 6,
  2106.                                    jupiter_B, 6,
  2107.                                    jupiter_R, 6,
  2108.                                    11.86 * 365.25,
  2109.                                    800000000.0);
  2110.         return new MixedOrbit(o, yearToJD(-4000), yearToJD(4000),
  2111.                               astro::SolarMass);
  2112.     }
  2113.     else if (name == "vsop87-saturn")
  2114.     {
  2115.         Orbit* o = new VSOP87Orbit(saturn_L, 6,
  2116.                                    saturn_B, 6,
  2117.                                    saturn_R, 6,
  2118.                                    29.4577 * 365.25,
  2119.                                    1.5e9);
  2120.         return new MixedOrbit(o, yearToJD(-4000), yearToJD(4000),
  2121.                               astro::SolarMass);
  2122.     }
  2123.     else if (name == "vsop87-uranus")
  2124.     {
  2125.         Orbit* o = new VSOP87Orbit(uranus_L, 5,
  2126.                                    uranus_B, 4,
  2127.                                    uranus_R, 5,
  2128.                                    84.0139 * 365.25,
  2129.                                    3.0e9);
  2130.         return new MixedOrbit(o, yearToJD(-4000), yearToJD(4000),
  2131.                               astro::SolarMass);
  2132.     }
  2133.     else if (name == "vsop87-neptune")
  2134.     {
  2135.         Orbit* o = new VSOP87Orbit(neptune_L, 4,
  2136.                                    neptune_B, 4,
  2137.                                    neptune_R, 5,
  2138.                                    164.793 * 365.25,
  2139.                                    4.7e9);
  2140.         return new MixedOrbit(o, yearToJD(-4000), yearToJD(4000),
  2141.                               astro::SolarMass);
  2142.     }
  2143.     else if (name == "vsop87-sun")
  2144.     {
  2145.         Orbit* o = new VSOP87OrbitRect(sun_X, 5,
  2146.                                        sun_Y, 5,
  2147.                                        sun_Z, 3,
  2148.                                        0.0,
  2149.                                        2000000);
  2150.         return new MixedOrbit(o, yearToJD(-4000), yearToJD(6000),
  2151.                               astro::SolarMass);
  2152.     }
  2153.     return NULL;
  2154. }