1 /*
2  *  This library is free software; you can redistribute it and/or
3  *  modify it under the terms of the GNU Lesser General Public
4  *  License as published by the Free Software Foundation; either
5  *  version 2 of the License, or (at your option) any later version.
6  *
7  *  This library is distributed in the hope that it will be useful,
8  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
9  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
10  *  Lesser General Public License for more details.
11  *
12  *  You should have received a copy of the GNU General Public License
13  *  along with this program; if not, write to the Free Software
14  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
15  *
16  *  Some functions in this file use the VSOP87 solution by
17  *  Messrs. Bretagnon and Francou.
18  *
19  *  Copyright (C) 2000 - 2005 Liam Girdwood
20  */
21 
22 #include <math.h>
23 #include <libnova/neptune.h>
24 #include <libnova/vsop87.h>
25 #include <libnova/solar.h>
26 #include <libnova/earth.h>
27 #include <libnova/transform.h>
28 #include <libnova/rise_set.h>
29 #include <libnova/utility.h>
30 
31 #define LONG_L0 539
32 #define LONG_L1 224
33 #define LONG_L2 59
34 #define LONG_L3 18
35 #define LAT_B0 172
36 #define LAT_B1 49
37 #define LAT_B2 13
38 #define LAT_B3 2
39 #define RADIUS_R0 596
40 #define RADIUS_R1 251
41 #define RADIUS_R2 71
42 #define RADIUS_R3 23
43 #define RADIUS_R4 7
44 
45 /* cache variables */
46 static double cJD = 0, cL = 0, cB = 0, cR = 0;
47 
48 static const struct ln_vsop neptune_longitude_l0[LONG_L0] = {
49     {     5.31188633046,  0.00000000000,        0.00000000000},
50     {     0.01798475530,  2.90101273890,       38.13303563780},
51     {     0.01019727652,  0.48580922867,        1.48447270830},
52     {     0.00124531845,  4.83008090676,       36.64856292950},
53     {     0.00042064466,  5.41054993053,        2.96894541660},
54     {     0.00037714584,  6.09221808686,       35.16409022120},
55     {     0.00033784738,  1.24488874087,       76.26607127560},
56     {     0.00016482741,  0.00007727998,      491.55792945680},
57     {     0.00009198584,  4.93747051954,       39.61750834610},
58     {     0.00008994250,  0.27462171806,      175.16605980020},
59     {     0.00004216242,  1.98711875978,       73.29712585900},
60     {     0.00003364807,  1.03590060915,       33.67961751290},
61     {     0.00002284800,  4.20606949415,        4.45341812490},
62     {     0.00001433516,  2.78339802539,       74.78159856730},
63     {     0.00000900236,  2.07607168714,      109.94568878850},
64     {     0.00000744997,  3.19032509437,       71.81265315070},
65     {     0.00000506217,  5.74786069680,      114.39910691340},
66     {     0.00000399552,  0.34972342836,     1021.24889455140},
67     {     0.00000345189,  3.46185292806,       41.10198105440},
68     {     0.00000306338,  0.49684052934,        0.52126486180},
69     {     0.00000287322,  4.50523446022,        0.04818410980},
70     {     0.00000323003,  2.24814943701,       32.19514480460},
71     {     0.00000340303,  3.30376245107,       77.75054398390},
72     {     0.00000266605,  4.88932605590,        0.96320784650},
73     {     0.00000227079,  1.79713146385,      453.42489381900},
74     {     0.00000244722,  1.24693366148,        9.56122755560},
75     {     0.00000232888,  2.50459784128,      137.03302416240},
76     {     0.00000282170,  2.24565589980,      146.59425171800},
77     {     0.00000251941,  5.78166617117,      388.46515523820},
78     {     0.00000150188,  2.99706170691,        5.93789083320},
79     {     0.00000170404,  3.32390687638,      108.46121608020},
80     {     0.00000151401,  2.19153150087,       33.94024994380},
81     {     0.00000148305,  0.85949274408,      111.43016149680},
82     {     0.00000118672,  3.67706211426,        2.44768055480},
83     {     0.00000101821,  5.70539236951,        0.11187458460},
84     {     0.00000097873,  2.80518417596,        8.07675484730},
85     {     0.00000103059,  4.40432042649,       70.32818044240},
86     {     0.00000103305,  0.04078966679,        0.26063243090},
87     {     0.00000109299,  2.41599473953,      183.24281464750},
88     {     0.00000073938,  1.32805035282,      529.69096509460},
89     {     0.00000077725,  4.16446516489,        4.19278569400},
90     {     0.00000086312,  4.22838781137,      490.07345674850},
91     {     0.00000081558,  5.19840134548,      493.04240216510},
92     {     0.00000071503,  5.29530376008,      350.33211960040},
93     {     0.00000064418,  3.54540876782,      168.05251279940},
94     {     0.00000062570,  0.15028731307,      182.27960680100},
95     {     0.00000058488,  3.50107011546,      145.10977900970},
96     {     0.00000048286,  1.11259007090,      112.91463420510},
97     {     0.00000047229,  4.57373234943,       46.20979048510},
98     {     0.00000039124,  1.66569494185,      213.29909543800},
99     {     0.00000047728,  0.12906212459,      484.44438245600},
100     {     0.00000046858,  3.01699530311,      498.67147645760},
101     {     0.00000038659,  2.38685681991,        2.92076130680},
102     {     0.00000047046,  4.49844734537,      173.68158709190},
103     {     0.00000047565,  2.58404545035,      219.89137757700},
104     {     0.00000044714,  5.47302844713,      176.65053250850},
105     {     0.00000032279,  3.45758705244,       30.71067209630},
106     {     0.00000028249,  4.13282449919,        6.59228213900},
107     {     0.00000024432,  4.55736924822,      106.97674337190},
108     {     0.00000024661,  3.67821364144,      181.75834193920},
109     {     0.00000024505,  1.55095976661,        7.11354700080},
110     {     0.00000021848,  1.04366945175,       39.09624348430},
111     {     0.00000016835,  6.11092370371,       44.72531777680},
112     {     0.00000022220,  2.74693585259,      256.53994050650},
113     {     0.00000016614,  4.98189005162,       37.61177077600},
114     {     0.00000017728,  3.55049134136,        1.37259812370},
115     {     0.00000017348,  2.14093469791,       42.58645376270},
116     {     0.00000014588,  0.69766675400,     1550.93985964600},
117     {     0.00000014969,  3.36426560630,       98.89998852460},
118     {     0.00000015677,  6.22011053513,      454.90936652730},
119     {     0.00000013243,  5.61712395571,       68.84370773410},
120     {     0.00000014837,  3.52556891759,       25.60286266560},
121     {     0.00000012757,  0.04509403901,       11.04570026390},
122     {     0.00000011988,  4.81688773476,       24.11838995730},
123     {     0.00000011060,  1.78958328174,        7.42236354150},
124     {     0.00000012104,  1.86916301309,       79.23501669220},
125     {     0.00000011698,  0.49005698054,        1.59634729290},
126     {     0.00000010459,  2.38743199573,      381.35160823740},
127     {     0.00000011682,  3.85152266622,      218.40690486870},
128     {     0.00000008744,  0.14169605624,      148.07872442630},
129     {     0.00000009196,  1.00274082532,       72.07328558160},
130     {     0.00000011343,  0.81432264944,      525.49817940060},
131     {     0.00000010097,  5.03381894926,      601.76425067620},
132     {     0.00000008035,  1.77685723010,        0.21244832110},
133     {     0.00000008382,  3.07534786987,        1.27202438720},
134     {     0.00000010803,  2.92080692152,      293.18850343600},
135     {     0.00000007666,  1.52272200302,      115.88357962170},
136     {     0.00000007531,  5.37537041047,        5.10780943070},
137     {     0.00000008691,  4.74349171636,      143.62530630140},
138     {     0.00000010183,  1.15395455831,     6244.94281435360},
139     {     0.00000008287,  0.35990637292,      138.51749687070},
140     {     0.00000009543,  4.02459127211,      152.53214255120},
141     {     0.00000007268,  4.11164858892,      251.43213107580},
142     {     0.00000007465,  1.72131360023,       31.01948863700},
143     {     0.00000006902,  4.62452234150,        2.70831298570},
144     {     0.00000007094,  5.11529809988,      312.19908396260},
145     {     0.00000007929,  2.10765766676,       27.08733537390},
146     {     0.00000006156,  3.50746819519,       28.57180808220},
147     {     0.00000007134,  2.05292375736,      278.25883401880},
148     {     0.00000008193,  2.58588219154,      141.22580985640},
149     {     0.00000005499,  2.09250039025,        1.69692102940},
150     {     0.00000005279,  4.09388735435,      983.11585891360},
151     {     0.00000006933,  3.47729102004,      415.29185818120},
152     {     0.00000005916,  0.68957254143,       62.25142559510},
153     {     0.00000005925,  4.02508149455,      255.05546779820},
154     {     0.00000004606,  1.17780552175,       43.24084506850},
155     {     0.00000005357,  3.63061309594,        5.41662597140},
156     {     0.00000005918,  2.57693824084,    10175.15251057320},
157     {     0.00000005482,  3.07977337441,      329.83706636550},
158     {     0.00000003956,  5.00417876355,      184.72728735580},
159     {     0.00000005398,  3.31531091775,      528.20649238630},
160     {     0.00000004767,  4.91981115318,      456.39383923560},
161     {     0.00000003770,  1.57277409027,       32.71640966640},
162     {     0.00000003924,  4.92761954552,      180.27386923090},
163     {     0.00000003707,  4.82965059592,      221.37585028530},
164     {     0.00000003802,  4.96279204998,      594.65070367540},
165     {     0.00000004014,  1.63901581079,       40.58071619260},
166     {     0.00000003061,  0.39712980415,        1.43628859850},
167     {     0.00000003261,  4.65481470589,       29.22619938800},
168     {     0.00000003474,  5.65891306563,      395.57870223900},
169     {     0.00000002918,  5.91079083936,        1.22384027740},
170     {     0.00000003225,  5.57423738665,     1014.13534755060},
171     {     0.00000003442,  5.60791606864,      488.58898404020},
172     {     0.00000002845,  0.56009439099,      144.14657116320},
173     {     0.00000002841,  0.55459681230,      567.82400073240},
174     {     0.00000003440,  1.70886719923,       12.53017297220},
175     {     0.00000003456,  3.87315999467,      494.52687487340},
176     {     0.00000003107,  5.79332348779,      105.49227066360},
177     {     0.00000002712,  2.43722805817,       60.76695288680},
178     {     0.00000003227,  4.68651708637,       82.85835341460},
179     {     0.00000003202,  2.21481972921,       41.05379694460},
180     {     0.00000003590,  5.69939670162,     1124.34166877000},
181     {     0.00000002961,  0.54712452509,      135.54855145410},
182     {     0.00000003173,  4.19788791291,      291.70403072770},
183     {     0.00000002899,  5.99671470079,       22.63391724900},
184     {     0.00000003143,  2.93495725805,       31.23193695810},
185     {     0.00000002729,  4.62709462438,        5.62907429250},
186     {     0.00000002513,  5.60391563025,       19.12245511120},
187     {     0.00000002690,  5.32070934185,        2.00573757010},
188     {     0.00000002630,  6.00855115785,       37.16982779130},
189     {     0.00000002282,  6.07498178903,      451.94042111070},
190     {     0.00000002858,  4.88680338436,      258.02441321480},
191     {     0.00000002879,  5.12236912878,       38.65430049960},
192     {     0.00000002270,  2.08633953722,       30.05628079050},
193     {     0.00000002301,  3.35951602914,     1028.36244155220},
194     {     0.00000003001,  3.59152016870,      211.81462272970},
195     {     0.00000002238,  0.38455483182,        3.62333672240},
196     {     0.00000002901,  3.24753792395,      366.48562929500},
197     {     0.00000002592,  1.36262664245,       35.42472265210},
198     {     0.00000002418,  4.93469145264,       47.69426319340},
199     {     0.00000002089,  5.79838063413,        4.66586644600},
200     {     0.00000002586,  2.69392971550,       38.18121974760},
201     {     0.00000001971,  6.00790962923,       34.20088237470},
202     {     0.00000002586,  6.24984047773,       38.08485152800},
203     {     0.00000002098,  4.57817230839,     1019.76442184310},
204     {     0.00000001839,  5.57608456495,      149.56319713460},
205     {     0.00000001869,  3.85907708723,      911.04257333200},
206     {     0.00000002486,  5.21233869943,      140.00196957900},
207     {     0.00000001795,  1.68007697304,     1059.38193018920},
208     {     0.00000002326,  2.82664069146,      807.94979911340},
209     {     0.00000001936,  5.10955276726,      216.92243216040},
210     {     0.00000001984,  5.54760871921,     1022.73336725970},
211     {     0.00000001835,  5.97770747608,      172.19711438360},
212     {     0.00000002004,  5.47803248635,       63.73589830340},
213     {     0.00000002140,  2.65037925793,      700.66423920080},
214     {     0.00000001988,  3.35856016133,      186.21176006410},
215     {     0.00000001956,  5.01516643942,      294.67297614430},
216     {     0.00000001966,  4.07957525462,       20.60692781950},
217     {     0.00000001637,  0.53824150223,       67.35923502580},
218     {     0.00000001871,  4.15223195600,      178.13500521680},
219     {     0.00000001540,  2.62327824804,       41.75637236020},
220     {     0.00000001820,  5.81768086494,      129.91947716160},
221     {     0.00000001754,  4.36839235779,      328.35259365720},
222     {     0.00000001460,  2.63664516309,        2.85707083200},
223     {     0.00000001388,  2.10605065495,        3.93215326310},
224     {     0.00000001352,  0.55618245459,        0.65439130580},
225     {     0.00000001668,  2.77543377384,       16.15350969460},
226     {     0.00000001338,  0.37645467215,       14.01464568050},
227     {     0.00000001218,  0.73457000060,      426.59819087600},
228     {     0.00000001610,  3.40993998127,      403.13419222450},
229     {     0.00000001361,  4.48227243414,       17.63798240290},
230     {     0.00000001589,  5.59323020112,     3302.47939106200},
231     {     0.00000001464,  4.52431769151,      526.72201967800},
232     {     0.00000001122,  5.66659544539,      151.04766984290},
233     {     0.00000001357,  4.06398362517,       26.82670294300},
234     {     0.00000001494,  4.98692083723,      666.72398925700},
235     {     0.00000001077,  4.30911470250,        0.63313944640},
236     {     0.00000001042,  6.02756893202,      106.01353552540},
237     {     0.00000001060,  0.74665002402,      487.36514376280},
238     {     0.00000001310,  3.78526234581,      386.98068252990},
239     {     0.00000001342,  4.52683913540,      563.63121503840},
240     {     0.00000000986,  0.00602637103,       81.37388070630},
241     {     0.00000001233,  5.17442601841,      331.32153907380},
242     {     0.00000000929,  4.51267466208,       38.39366806870},
243     {     0.00000000956,  3.50447791020,       64.95973858080},
244     {     0.00000000929,  4.43109514668,       37.87240320690},
245     {     0.00000000926,  6.09803297747,        4.14460158420},
246     {     0.00000000972,  0.59044574729,        8.90683624980},
247     {     0.00000001246,  4.69840799242,      389.94962794650},
248     {     0.00000001009,  5.98445003291,      142.14083359310},
249     {     0.00000001020,  0.83233892293,       39.35687591520},
250     {     0.00000001013,  0.37845632082,       36.90919536040},
251     {     0.00000001193,  0.77431842880,       44.07092647100},
252     {     0.00000000940,  2.42688217399,      343.21857259960},
253     {     0.00000000974,  5.24721391344,      253.57099508990},
254     {     0.00000000964,  5.09748188959,      357.44566660120},
255     {     0.00000000835,  1.45570317496,       35.21227433100},
256     {     0.00000001083,  2.27578915691,        6.90109867970},
257     {     0.00000000938,  5.03471597364,       69.36497259590},
258     {     0.00000001078,  1.20239572961,       35.68535508300},
259     {     0.00000001027,  0.18244384186,       84.34282612290},
260     {     0.00000000764,  4.62720907712,        0.83008140250},
261     {     0.00000001013,  0.42234910440,       32.45577723550},
262     {     0.00000000939,  4.50445790730,      365.00115658670},
263     {     0.00000000756,  0.82872484721,       17.52610781830},
264     {     0.00000000916,  3.89409205647,       38.24491022240},
265     {     0.00000000736,  4.78125743795,        5.36844186160},
266     {     0.00000000755,  2.28073625559,       42.32582133180},
267     {     0.00000000762,  0.01897337130,      189.39315380180},
268     {     0.00000000888,  3.20358484815,      348.84764689210},
269     {     0.00000000916,  5.04967793164,       38.02116105320},
270     {     0.00000000638,  0.63267398066,      244.31858407500},
271     {     0.00000000870,  4.69158261795,      210.33015002140},
272     {     0.00000000636,  1.02615137352,     2080.63082474060},
273     {     0.00000000774,  5.44432672662,      367.97010200330},
274     {     0.00000000644,  1.94044995543,      446.31134681820},
275     {     0.00000000631,  4.82928478042,      460.53844081980},
276     {     0.00000000855,  3.57592750113,      439.78275515400},
277     {     0.00000000678,  4.48672134948,      351.81659230870},
278     {     0.00000000724,  4.89125815316,      119.50691634410},
279     {     0.00000000594,  0.59315717685,      491.03666459500},
280     {     0.00000000655,  1.99014094340,       19.01058052660},
281     {     0.00000000580,  2.57189536244,      492.07919431860},
282     {     0.00000000694,  0.08328898350,        5.67725840230},
283     {     0.00000000733,  5.81485239057,       29.74746424980},
284     {     0.00000000666,  3.42196897591,      179.09821306330},
285     {     0.00000000678,  0.29428615814,      171.23390653710},
286     {     0.00000000635,  2.13805182663,      164.12035953630},
287     {     0.00000000623,  5.61454940380,      285.37238101960},
288     {     0.00000000529,  1.88036938507,      416.77633088950},
289     {     0.00000000529,  5.13250788030,      697.74347789400},
290     {     0.00000000500,  1.49548514012,      704.85702489480},
291     {     0.00000000666,  6.26456825266,     1474.67378837040},
292     {     0.00000000532,  0.25784352716,      477.33083545520},
293     {     0.00000000477,  4.96717541029,      274.06604832480},
294     {     0.00000000557,  0.71390028264,       80.71948940050},
295     {     0.00000000556,  2.60791466171,      418.26080359780},
296     {     0.00000000584,  4.29064541383,       16.67477455640},
297     {     0.00000000524,  5.42714112993,      290.21955801940},
298     {     0.00000000524,  0.29054995359,      247.23934538180},
299     {     0.00000000541,  4.36400580938,      815.06334611420},
300     {     0.00000000525,  4.70814258726,      401.64971951620},
301     {     0.00000000544,  1.70619260267,       97.41551581630},
302     {     0.00000000458,  6.13569488022,      178.78939652260},
303     {     0.00000000432,  2.98508233021,      100.38446123290},
304     {     0.00000000456,  4.35380290850,      180.79513409270},
305     {     0.00000000382,  0.28067758468,        8.38557138800},
306     {     0.00000000484,  0.01535334378,      738.79727483860},
307     {     0.00000000518,  4.48916591410,      875.83029900100},
308     {     0.00000000506,  5.38611153480,      404.61866493280},
309     {     0.00000000396,  4.62747640832,        6.15033915430},
310     {     0.00000000466,  0.23333349172,      120.99138905240},
311     {     0.00000000409,  3.08848985159,       59.28248017850},
312     {     0.00000000470,  5.01853077975,      313.68355667090},
313     {     0.00000000442,  3.68919364372,      457.87831194390},
314     {     0.00000000384,  3.69499925394,      160.93896579860},
315     {     0.00000000364,  0.76172331873,      104.00779795530},
316     {     0.00000000416,  0.26654216462,      103.09277421860},
317     {     0.00000000401,  4.06530055968,       14.66903698630},
318     {     0.00000000454,  3.72767803715,      476.43131808350},
319     {     0.00000000434,  0.33532124451,      984.60033162190},
320     {     0.00000000340,  0.99917090883,       31.54075349880},
321     {     0.00000000420,  3.65147769264,       20.49505323490},
322     {     0.00000000334,  0.35121412008,     1227.43444298860},
323     {     0.00000000321,  0.46861755388,      118.02244363580},
324     {     0.00000000323,  5.45836731979,      918.15612033280},
325     {     0.00000000407,  4.19457842203,      309.79958751760},
326     {     0.00000000381,  0.01364856960,      495.49008271990},
327     {     0.00000000334,  4.05924071124,        8.33738727820},
328     {     0.00000000380,  3.17063415023,      487.62577619370},
329     {     0.00000000380,  2.70238752925,      134.11226285560},
330     {     0.00000000305,  2.49866234194,    12566.15169998280},
331     {     0.00000000296,  0.33794345250,      208.84567731310},
332     {     0.00000000362,  4.88985810610,      438.29828244570},
333     {     0.00000000327,  2.91090790412,      505.78502345840},
334     {     0.00000000308,  0.96082817124,       21.14944454070},
335     {     0.00000000282,  4.04208377539,     6205.32530600750},
336     {     0.00000000288,  1.48123825325,      220.41264243880},
337     {     0.00000000391,  4.00154736435,      674.80074410430},
338     {     0.00000000326,  2.46105030955,      169.53698550770},
339     {     0.00000000289,  2.63591886401,       55.77101804070},
340     {     0.00000000288,  5.02487283285,     1440.73353842660},
341     {     0.00000000344,  1.48931098748,      166.56804009110},
342     {     0.00000000277,  2.56804940377,      662.53120356300},
343     {     0.00000000268,  5.02354540478,      377.41945497430},
344     {     0.00000000308,  1.50179611581,       77.22927912210},
345     {     0.00000000324,  5.30240189409,      457.61767951300},
346     {     0.00000000264,  0.83337660655,      488.37653571910},
347     {     0.00000000290,  1.79966899809,      101.86893394120},
348     {     0.00000000262,  2.30390003360,      494.73932319450},
349     {     0.00000000293,  5.61946139216,      326.86812094890},
350     {     0.00000000325,  5.52669903629,      441.26722786230},
351     {     0.00000000253,  1.51157242351,       79.88940799800},
352     {     0.00000000250,  1.08902686231,      450.45594840240},
353     {     0.00000000254,  0.02957070469,      117.36805233000},
354     {     0.00000000315,  5.34884988949,      183.76407950930},
355     {     0.00000000243,  0.63404014969,       79.18683258240},
356     {     0.00000000313,  5.45945846595,       13.49338081870},
357     {     0.00000000306,  5.23048213432,       45.24658263860},
358     {     0.00000000263,  2.66670757215,      464.73122651380},
359     {     0.00000000242,  6.04858356336,       36.12729806770},
360     {     0.00000000234,  1.82700149824,    52175.80628314840},
361     {     0.00000000275,  5.04385701142,      156.15547927360},
362     {     0.00000000247,  1.74540930625,       65.87476231750},
363     {     0.00000000293,  3.98736984598,      141.48644228730},
364     {     0.00000000269,  6.09827783249,     1654.03263386460},
365     {     0.00000000229,  2.25830514766,      190.66517818900},
366     {     0.00000000294,  5.45234088717,      206.18554843720},
367     {     0.00000000230,  6.13158632762,      178.34745353790},
368     {     0.00000000274,  4.10829870815,      518.38463239980},
369     {     0.00000000225,  3.86300359251,      171.98466606250},
370     {     0.00000000272,  5.61149862463,      148.33935685720},
371     {     0.00000000239,  0.67204276457,      267.58564077040},
372     {     0.00000000256,  5.53344401207,      266.10116806210},
373     {     0.00000000214,  1.45987234069,      522.57741809380},
374     {     0.00000000237,  0.88414073923,      304.23420369990},
375     {     0.00000000266,  0.99036038827,      209.10630974400},
376     {     0.00000000235,  1.45372667222,       69.15252427480},
377     {     0.00000000230,  0.54049951530,      532.61172640140},
378     {     0.00000000226,  3.84152961620,      283.62727588040},
379     {     0.00000000243,  5.32730356188,      485.92885516430},
380     {     0.00000000211,  4.62164373274,      110.20632121940},
381     {     0.00000000209,  4.35051429228,      536.80451209540},
382     {     0.00000000232,  3.01948719112,       10.93382567930},
383     {     0.00000000244,  1.32007560700,      279.74330672710},
384     {     0.00000000246,  0.37702127050,      157.63995198190},
385     {     0.00000000219,  5.67679857772,    52099.54021187280},
386     {     0.00000000251,  1.52353965506,        6.85291456990},
387     {     0.00000000203,  5.44328634514,      145.63104387150},
388     {     0.00000000238,  0.96169703532,      497.18700374930},
389     {     0.00000000219,  4.52300776062,     1615.89959822680},
390     {     0.00000000275,  2.37619204391,     2118.76386037840},
391     {     0.00000000260,  5.73101715512,      490.33408917940},
392     {     0.00000000221,  0.02848945752,      215.43795945210},
393     {     0.00000000258,  5.12448148780,      608.87779767700},
394     {     0.00000000260,  3.88543008475,      513.07988101300},
395     {     0.00000000191,  3.72590321496,       65.22037101170},
396     {     0.00000000189,  5.28013390816,      377.15882254340},
397     {     0.00000000243,  4.35559887596,      482.95990974770},
398     {     0.00000000208,  5.62023497734,      526.98265210890},
399     {     0.00000000243,  6.06790724123,      154.01661525950},
400     {     0.00000000188,  2.62629206555,      276.77436131050},
401     {     0.00000000209,  2.55968827096,       75.74480641380},
402     {     0.00000000187,  4.74390535167,     1189.30140735080},
403     {     0.00000000216,  0.02830351243,       73.55775828990},
404     {     0.00000000227,  3.27856938091,      522.52923398400},
405     {     0.00000000249,  1.57215637373,       14.22709400160},
406     {     0.00000000202,  1.28244949587,    20426.57109242200},
407     {     0.00000000238,  1.93340172124,      500.15594916590},
408     {     0.00000000209,  5.02893682321,      364.55921360200},
409     {     0.00000000184,  4.83097075362,      315.16802937920},
410     {     0.00000000227,  5.72984298540,     1543.82631264520},
411     {     0.00000000198,  3.48843299287,      207.36120460480},
412     {     0.00000000217,  2.45036922991,      187.17496791060},
413     {     0.00000000181,  1.65699502247,     1627.20593092160},
414     {     0.00000000214,  1.60213179145,       11.30633269480},
415     {     0.00000000203,  0.74638490279,       14.55716240170},
416     {     0.00000000227,  4.05259736056,      285.11174858870},
417     {     0.00000000192,  3.17719161639,      343.47920503050},
418     {     0.00000000206,  1.70602580638,      913.96333463880},
419     {     0.00000000177,  1.50027795761,        9.44935297100},
420     {     0.00000000177,  0.03038093848,      165.60483224460},
421     {     0.00000000229,  3.63854889639,      139.74133714810},
422     {     0.00000000208,  2.65835804847,      496.01134758170},
423     {     0.00000000208,  0.12968873405,      252.91660378410},
424     {     0.00000000174,  2.76107721407,       49.17873590170},
425     {     0.00000000185,  6.01438406519,      355.96119389290},
426     {     0.00000000184,  3.34554375681,       95.93104310800},
427     {     0.00000000182,  0.17588831495,       91.78644152380},
428     {     0.00000000172,  4.15140954379,       67.88049988760},
429     {     0.00000000188,  6.17288910532,      535.32003938710},
430     {     0.00000000215,  1.92414563346,      552.69738935910},
431     {     0.00000000166,  5.49038139690,    10135.53500222710},
432     {     0.00000000195,  5.50011081154,      179.31066138440},
433     {     0.00000000209,  5.34065233845,       13.64213866500},
434     {     0.00000000192,  5.83612790963,      987.30864460760},
435     {     0.00000000204,  3.46033533181,      246.97871295090},
436     {     0.00000000174,  1.95010683512,      319.31263096340},
437     {     0.00000000165,  4.00537112057,      493.56366702690},
438     {     0.00000000163,  1.73931497111,       39.50563376150},
439     {     0.00000000173,  3.93200456456,      238.90195810360},
440     {     0.00000000214,  1.44203805516,      340.88276662940},
441     {     0.00000000177,  5.20505417820,      474.94684537520},
442     {     0.00000000193,  0.10674418270,      104.52906281710},
443     {     0.00000000189,  1.11279570541,     1127.26243007680},
444     {     0.00000000193,  2.12636756833,    20350.30502114640},
445     {     0.00000000181,  2.10814562080,      113.87784205160},
446     {     0.00000000165,  2.90285982491,      944.98282327580},
447     {     0.00000000194,  1.13504963784,       57.25549074900},
448     {     0.00000000198,  5.68125942959,     6280.10690457480},
449     {     0.00000000156,  1.44680882209,      524.06189080210},
450     {     0.00000000194,  0.82038638816,    10210.31660079440},
451     {     0.00000000199,  3.01674233707,      461.76228109720},
452     {     0.00000000163,  1.08083105653,      556.51766803760},
453     {     0.00000000205,  4.16096717573,      711.44930703380},
454     {     0.00000000166,  5.82269892726,      363.51668387840},
455     {     0.00000000199,  0.73336150031,      194.28851491140},
456     {     0.00000000168,  0.52839376810,      487.10451133190},
457     {     0.00000000148,  3.49775706709,      447.79581952650},
458     {     0.00000000160,  4.77748329946,      524.01370669230},
459     {     0.00000000200,  4.93953136966,      732.97125859000},
460     {     0.00000000201,  4.60377078221,      142.71028256470},
461     {     0.00000000188,  3.49370600377,     1967.71619053550},
462     {     0.00000000146,  4.99570104768,      142.66209845490},
463     {     0.00000000147,  5.91318176956,       70.11573212130},
464     {     0.00000000158,  4.49935225328,      249.94765836750},
465     {     0.00000000145,  2.01584284819,      282.14280317210},
466     {     0.00000000139,  0.04417506218,      260.99335863140},
467     {     0.00000000176,  0.41786563552,      222.86032299360},
468     {     0.00000000137,  2.96534233094,     6206.80977871580},
469     {     0.00000000138,  1.22183114912,      187.69623277240},
470     {     0.00000000147,  5.47686077634,       15.49911838880},
471     {     0.00000000144,  0.86582247161,      170.97327410620},
472     {     0.00000000158,  1.64284142080,      563.37058260750},
473     {     0.00000000163,  3.40763757343,       46.51860702580},
474     {     0.00000000127,  0.55262902348,      245.49424024260},
475     {     0.00000000131,  1.01890930568,      140.65636088480},
476     {     0.00000000135,  5.22138226920,      439.19779981740},
477     {     0.00000000125,  3.31010747037,       76.78733613740},
478     {     0.00000000127,  2.50788482744,      191.31956949480},
479     {     0.00000000130,  3.04810037778,      310.71461125430},
480     {     0.00000000140,  5.78513367440,      604.73319609280},
481     {     0.00000000155,  3.83835809042,     1512.80682400820},
482     {     0.00000000120,  2.89920382272,      422.40540518200},
483     {     0.00000000147,  3.51503910807,      421.22974901440},
484     {     0.00000000143,  0.29840596863,      259.50888592310},
485     {     0.00000000122,  3.01323328703,       70.84944530420},
486     {     0.00000000142,  4.65284277800,      528.46712481720},
487     {     0.00000000133,  4.59396705758,      497.49582029000},
488     {     0.00000000124,  5.80857038334,      423.67742956920},
489     {     0.00000000119,  5.02901764495,    12489.88562870720},
490     {     0.00000000122,  1.86088175570,      116.53797092750},
491     {     0.00000000111,  0.77447922936,      179.35884549420},
492     {     0.00000000141,  0.18423856688,      131.40394986990},
493     {     0.00000000118,  0.29375056913,      252.08652238160},
494     {     0.00000000125,  1.93416839115,      335.77495719870},
495     {     0.00000000109,  2.39031603899,      305.08553696180},
496     {     0.00000000125,  0.61344782123,      408.17831118040},
497     {     0.00000000142,  0.57310802423,      296.15744885260},
498     {     0.00000000132,  4.76684757273,      353.04043258610},
499     {     0.00000000130,  5.12925248080,      324.72925693480},
500     {     0.00000000115,  1.53744955496,      406.10313764110},
501     {     0.00000000118,  6.09863412341,      169.22816896700},
502     {     0.00000000134,  1.63469028613,     6168.67674307800},
503     {     0.00000000144,  2.02224512289,      589.34595228860},
504     {     0.00000000124,  2.93224816514,      179.61947792510},
505     {     0.00000000139,  5.00897329509,      636.66770846650},
506     {     0.00000000102,  4.57322305433,       85.82729883120},
507     {     0.00000000126,  1.32135490674,      598.79530525960},
508     {     0.00000000102,  4.65261542673,       57.79800747020},
509     {     0.00000000122,  3.73358839778,      104.83787935780},
510     {     0.00000000111,  6.18471084965,      981.63138620530},
511     {     0.00000000117,  1.60090805440,       18.48931566480},
512     {     0.00000000136,  5.63003448986,      525.23754696970},
513     {     0.00000000141,  2.63342759831,      381.61224066830},
514     {     0.00000000133,  1.71663261072,      419.74527630610},
515     {     0.00000000127,  3.05719879887,    10098.88643929760},
516     {     0.00000000110,  5.25051232375,      986.08480433020},
517     {     0.00000000101,  1.40363357063,      213.95348674380},
518     {     0.00000000097,  3.61152071016,     1587.58842257550},
519     {     0.00000000113,  1.13223480146,      604.47256366190},
520     {     0.00000000099,  2.04721879617,       70.58881287330},
521     {     0.00000000119,  2.90157321317,       94.75538694040},
522     {     0.00000000096,  2.31674172036,      227.96813242430},
523     {     0.00000000116,  4.30714911354,      189.83509678650},
524     {     0.00000000106,  2.23888483610,      853.19638175200},
525     {     0.00000000096,  3.86661212196,      240.12579838100},
526     {     0.00000000120,  3.78748778119,     1057.89745748090},
527     {     0.00000000094,  4.82757670972,      392.91857336310},
528     {     0.00000000102,  4.41384282230,      603.24872338450},
529     {     0.00000000100,  2.78834593110,     1017.05610885740},
530     {     0.00000000093,  4.54014018836,       36.69674703930},
531     {     0.00000000107,  0.03653394273,       95.27665180220},
532     {     0.00000000094,  0.80425312383,      432.22726516850},
533     {     0.00000000098,  5.60599279629,     1265.56747862640},
534     {     0.00000000109,  4.83225302495,      235.93301268700},
535     {     0.00000000090,  5.28097582589,      946.46729598410},
536     {     0.00000000096,  1.44316147572,      347.41135829360},
537     {     0.00000000122,  0.77697508887,      332.80601178210},
538     {     0.00000000090,  0.24166205071,      449.23210812500},
539     {     0.00000000095,  2.88593540245,     1511.32235129990},
540     {     0.00000000093,  4.33568012755,      776.93031047640},
541     {     0.00000000110,  0.31702511154,      264.61669535380},
542     {     0.00000000088,  3.51795785198,      316.65250208750},
543     {     0.00000000087,  4.62145192466,     1692.16566950240},
544     {     0.00000000094,  4.21867891011,     1024.21783996800},
545     {     0.00000000094,  1.55501457323,      287.25061260280},
546     {     0.00000000092,  5.57906316341,      448.97147569410},
547     {     0.00000000116,  1.22656968212,     2042.49778910280},
548     {     0.00000000109,  2.15910046916,      289.56516671360},
549     {     0.00000000104,  0.20665805247,      564.85505531580},
550     {     0.00000000092,  5.09319278852,      600.01914553700},
551     {     0.00000000096,  6.14431281930,     1050.99635880120},
552     {     0.00000000081,  1.89134137927,       36.60037881970},
553     {     0.00000000080,  4.38832609440,    10137.01947493540},
554     {     0.00000000111,  2.93920408928,      384.27236954420},
555     {     0.00000000079,  0.97793287738,       76.31425538540},
556     {     0.00000000079,  4.53377022456,       76.21788716580},
557     {     0.00000000090,  5.52318874603,      943.49835056750},
558     {     0.00000000089,  0.86440255505,      398.68077409960},
559     {     0.00000000084,  2.75719331074,      990.22940591440},
560     {     0.00000000105,  3.05022136412,      233.53351624200},
561     {     0.00000000088,  1.11114202915,      103.04459010880},
562     {     0.00000000100,  5.59794770455,       63.47526587250},
563     {     0.00000000083,  1.13342138644,      112.39336934330},
564     {     0.00000000089,  5.47772001536,      515.46387109300},
565     {     0.00000000097,  3.52796776171,      452.20105354160},
566     {     0.00000000102,  4.28702103685,      171.02145821600},
567     {     0.00000000085,  3.12585200036,     1158.28191871380},
568     {     0.00000000085,  1.92685738761,     1082.01584743820},
569     {     0.00000000098,  0.63359633835,      566.60016045500},
570     {     0.00000000092,  4.62229215777,     2043.98226181110},
571     {     0.00000000097,  2.01931678228,    10286.58267207000},
572     {     0.00000000097,  5.84570418188,      477.91579079180},
573     {     0.00000000102,  0.63659106649,      656.70518731440},
574     {     0.00000000084,  0.81307057570,      170.71264167530},
575     {     0.00000000094,  3.69951065430,      523.75307426140},
576     {     0.00000000090,  0.60145820130,       36.76043751410},
577     {     0.00000000086,  2.24624509383,      344.96367773880},
578     {     0.00000000075,  1.25466323333,      378.64329525170},
579     {     0.00000000074,  4.92603243986,     1549.45538693770},
580     {     0.00000000076,  2.23758392622,     1310.81406126500},
581     {     0.00000000076,  1.03858931347,     1234.54798998940},
582     {     0.00000000094,  5.95660239987,      560.71045373160},
583     {     0.00000000086,  3.90953269522,     1436.54075273260},
584     {     0.00000000090,  2.80791662014,      639.63665388310},
585     {     0.00000000091,  0.87037832675,      369.45457471160},
586     {     0.00000000072,  2.86956711212,      134.06407874580},
587     {     0.00000000084,  3.30910046360,       40.84134862350},
588 };
589 
590 
591 static const struct ln_vsop neptune_longitude_l1[LONG_L1] = {
592     {    38.13303563957,  0.00000000000,        0.00000000000},
593     {     0.00016604172,  4.86323329249,        1.48447270830},
594     {     0.00015744045,  2.27887427527,       38.13303563780},
595     {     0.00001306261,  3.67285209620,        2.96894541660},
596     {     0.00000604842,  1.50483042790,       35.16409022120},
597     {     0.00000182909,  3.45225794434,       39.61750834610},
598     {     0.00000195106,  0.88660326088,       76.26607127560},
599     {     0.00000106410,  2.44986610969,        4.45341812490},
600     {     0.00000105590,  2.75516054635,       33.67961751290},
601     {     0.00000072757,  5.49395347003,       36.64856292950},
602     {     0.00000057069,  5.21649804970,        0.52126486180},
603     {     0.00000029871,  3.67043294114,      388.46515523820},
604     {     0.00000028866,  5.16877538898,        9.56122755560},
605     {     0.00000028742,  5.16732589024,        2.44768055480},
606     {     0.00000025507,  5.24526281928,      168.05251279940},
607     {     0.00000024869,  4.73193067879,      182.27960680100},
608     {     0.00000020205,  5.78945415677,     1021.24889455140},
609     {     0.00000019022,  1.82981144269,      484.44438245600},
610     {     0.00000018661,  1.31606255521,      498.67147645760},
611     {     0.00000015039,  4.94966181697,      137.03302416240},
612     {     0.00000015094,  3.98706934679,       32.19514480460},
613     {     0.00000010804,  1.93261742828,       41.10198105440},
614     {     0.00000010720,  2.44148207341,        4.19278569400},
615     {     0.00000011765,  4.87825331237,       71.81265315070},
616     {     0.00000009363,  3.07523176644,       74.78159856730},
617     {     0.00000009580,  1.23193270898,        5.93789083320},
618     {     0.00000008968,  0.01758782577,        8.07675484730},
619     {     0.00000009882,  6.08165614859,        7.11354700080},
620     {     0.00000006992,  0.61688829918,        2.92076130680},
621     {     0.00000006190,  5.32293546028,      114.39910691340},
622     {     0.00000005543,  2.24141643357,       46.20979048510},
623     {     0.00000005578,  5.45096032574,       73.29712585900},
624     {     0.00000005858,  1.72552768872,       77.75054398390},
625     {     0.00000003225,  4.82619066785,       98.89998852460},
626     {     0.00000003233,  6.10277422759,       70.32818044240},
627     {     0.00000002403,  2.90637675099,      601.76425067620},
628     {     0.00000002398,  1.04343547015,        6.59228213900},
629     {     0.00000002784,  4.95817105045,      108.46121608020},
630     {     0.00000002894,  4.20148844767,      381.35160823740},
631     {     0.00000002111,  5.93089610785,       25.60286266560},
632     {     0.00000002343,  5.38519388332,      111.43016149680},
633     {     0.00000002075,  5.20634366104,       30.71067209630},
634     {     0.00000002126,  0.54976393131,       41.05379694460},
635     {     0.00000001856,  0.89178118176,       24.11838995730},
636     {     0.00000002223,  2.37864617899,      453.42489381900},
637     {     0.00000002018,  3.42245277134,       31.01948863700},
638     {     0.00000001700,  3.91715254179,       11.04570026390},
639     {     0.00000001776,  3.86571077241,      395.57870223900},
640     {     0.00000001646,  3.34591591398,       44.72531777680},
641     {     0.00000001876,  2.59784473507,       33.94024994380},
642     {     0.00000001468,  6.12983933526,     1550.93985964600},
643     {     0.00000001405,  6.13184010665,      490.07345674850},
644     {     0.00000001207,  0.59525736062,      312.19908396260},
645     {     0.00000001607,  0.31467769026,      175.16605980020},
646     {     0.00000001176,  5.87266726996,        5.41662597140},
647     {     0.00000001333,  3.29176219816,      493.04240216510},
648     {     0.00000001037,  4.89007314395,        1.27202438720},
649     {     0.00000001034,  5.93741289103,       32.71640966640},
650     {     0.00000001038,  1.13470380744,     1014.13534755060},
651     {     0.00000001002,  1.85850922283,        5.10780943070},
652     {     0.00000000983,  0.05347709280,        7.42236354150},
653     {     0.00000000998,  1.73689827444,     1028.36244155220},
654     {     0.00000001193,  4.63534810298,       60.76695288680},
655     {     0.00000000940,  3.09103162869,       62.25142559510},
656     {     0.00000000994,  4.11489180313,        4.66586644600},
657     {     0.00000000890,  0.87049255398,       31.23193695810},
658     {     0.00000001218,  3.13917786778,      491.55792945680},
659     {     0.00000000852,  5.35508393873,      144.14657116320},
660     {     0.00000000926,  5.11983602547,      145.10977900970},
661     {     0.00000000789,  0.37496785039,       26.82670294300},
662     {     0.00000000711,  3.14189997439,      278.25883401880},
663     {     0.00000000727,  1.39886876821,      213.29909543800},
664     {     0.00000000781,  0.11084554410,      173.68158709190},
665     {     0.00000000669,  4.50554989404,       27.08733537390},
666     {     0.00000000825,  1.35568911825,      129.91947716160},
667     {     0.00000000738,  3.56612220900,      176.65053250850},
668     {     0.00000000714,  6.24797506961,      106.97674337190},
669     {     0.00000000650,  1.12660516258,       68.84370773410},
670     {     0.00000000624,  0.01563274460,       28.57180808220},
671     {     0.00000000608,  4.60180625368,      189.39315380180},
672     {     0.00000000719,  0.22946487975,       42.58645376270},
673     {     0.00000000530,  5.61201247156,       12.53017297220},
674     {     0.00000000642,  0.70172928732,      529.69096509460},
675     {     0.00000000494,  2.56554862431,      251.43213107580},
676     {     0.00000000526,  3.02138731705,        5.62907429250},
677     {     0.00000000456,  4.44331571392,       43.24084506850},
678     {     0.00000000524,  3.43311475385,       38.65430049960},
679     {     0.00000000436,  2.41601362194,       82.85835341460},
680     {     0.00000000424,  1.95736011325,      477.33083545520},
681     {     0.00000000443,  3.39350944965,      357.44566660120},
682     {     0.00000000401,  0.17854032412,      567.82400073240},
683     {     0.00000000382,  1.90239879977,       22.63391724900},
684     {     0.00000000479,  5.55147421917,       37.61177077600},
685     {     0.00000000462,  3.80436146981,      343.21857259960},
686     {     0.00000000384,  5.60377408953,      594.65070367540},
687     {     0.00000000369,  4.45577410338,        6.90109867970},
688     {     0.00000000358,  3.69126615846,        3.93215326310},
689     {     0.00000000352,  3.10946988482,      135.54855145410},
690     {     0.00000000424,  5.29683941547,      181.75834193920},
691     {     0.00000000361,  0.29019719613,       72.07328558160},
692     {     0.00000000390,  5.49494308738,      350.33211960040},
693     {     0.00000000378,  2.74122401337,      488.37653571910},
694     {     0.00000000372,  0.39980033572,      494.73932319450},
695     {     0.00000000353,  1.10614174053,       20.60692781950},
696     {     0.00000000307,  3.30113579069,     1066.49547719000},
697     {     0.00000000307,  5.39420288683,      160.93896579860},
698     {     0.00000000369,  0.36210011664,       79.23501669220},
699     {     0.00000000395,  1.93577214824,    10137.01947493540},
700     {     0.00000000288,  2.28751244512,       47.69426319340},
701     {     0.00000000291,  3.07789638770,       69.36497259590},
702     {     0.00000000295,  2.48737537240,       19.12245511120},
703     {     0.00000000293,  2.25797853419,     1052.26838318840},
704     {     0.00000000298,  3.57815428349,       40.58071619260},
705     {     0.00000000290,  0.18636083306,      143.62530630140},
706     {     0.00000000274,  2.58630290331,      119.50691634410},
707     {     0.00000000266,  1.21002824826,      505.78502345840},
708     {     0.00000000252,  3.12744980468,      460.53844081980},
709     {     0.00000000328,  0.50849285663,     6206.80977871580},
710     {     0.00000000257,  3.64119923209,      446.31134681820},
711     {     0.00000000239,  5.54080102299,      911.04257333200},
712     {     0.00000000265,  0.62702473701,      253.57099508990},
713     {     0.00000000287,  2.44403568436,       16.67477455640},
714     {     0.00000000231,  2.47183469179,      454.90936652730},
715     {     0.00000000281,  1.48514892087,      983.11585891360},
716     {     0.00000000212,  5.41931177641,       64.95973858080},
717     {     0.00000000213,  1.64175339637,     1089.12939443900},
718     {     0.00000000238,  2.69801319489,      882.94384600180},
719     {     0.00000000210,  4.53976756699,     1093.32218013300},
720     {     0.00000000217,  3.52601381097,      152.53214255120},
721     {     0.00000000216,  5.44223069507,       39.09624348430},
722     {     0.00000000256,  0.42073598460,       23.90594163620},
723     {     0.00000000202,  3.65153361854,      556.51766803760},
724     {     0.00000000224,  4.43751404513,      639.89728631400},
725     {     0.00000000198,  3.24942532936,    10251.41858184880},
726     {     0.00000000191,  0.70266181509,      149.56319713460},
727     {     0.00000000190,  2.64945536417,      984.60033162190},
728     {     0.00000000189,  4.05785534221,      120.99138905240},
729     {     0.00000000184,  2.24245977278,      815.06334611420},
730     {     0.00000000202,  3.43517686770,       45.24658263860},
731     {     0.00000000193,  2.15194865652,       67.35923502580},
732     {     0.00000000175,  4.49165234532,      171.23390653710},
733     {     0.00000000171,  5.50633466316,      179.09821306330},
734     {     0.00000000200,  6.12663205401,       14.22709400160},
735     {     0.00000000173,  2.61074067302,      389.94962794650},
736     {     0.00000000192,  3.17111883673,      868.71675200020},
737     {     0.00000000167,  3.94754384833,       77.22927912210},
738     {     0.00000000166,  3.41009128748,       81.37388070630},
739     {     0.00000000166,  4.89205139167,      872.90953769420},
740     {     0.00000000170,  0.16973531975,      115.88357962170},
741     {     0.00000000161,  2.55224034702,      487.36514376280},
742     {     0.00000000164,  1.49614763031,       63.73589830340},
743     {     0.00000000176,  3.86129425367,      148.33935685720},
744     {     0.00000000171,  2.47073358147,      109.94568878850},
745     {     0.00000000161,  2.22215642318,      574.93754773320},
746     {     0.00000000188,  3.63784698745,      106.01353552540},
747     {     0.00000000171,  0.66899426684,      179.31066138440},
748     {     0.00000000158,  3.36297374123,      285.37238101960},
749     {     0.00000000161,  1.21480182441,     1024.43028828910},
750     {     0.00000000183,  5.45168150656,      218.40690486870},
751     {     0.00000000156,  0.64321524870,     1029.84691426050},
752     {     0.00000000151,  5.30865874765,      348.84764689210},
753     {     0.00000000147,  1.80689177510,      377.41945497430},
754     {     0.00000000193,  2.30767977885,     1447.84708542740},
755     {     0.00000000149,  0.47455340012,      274.06604832480},
756     {     0.00000000137,  2.14480227115,      563.63121503840},
757     {     0.00000000137,  2.60839453958,      354.52490529440},
758     {     0.00000000137,  1.41568352361,      386.98068252990},
759     {     0.00000000136,  1.30429476661,      105.49227066360},
760     {     0.00000000131,  5.83845597009,      419.48464387520},
761     {     0.00000000127,  3.98728588464,       84.34282612290},
762     {     0.00000000142,  1.22597408614,      142.14083359310},
763     {     0.00000000123,  4.43184301227,      211.81462272970},
764     {     0.00000000134,  4.16039500373,      169.53698550770},
765     {     0.00000000121,  0.29301015084,      206.18554843720},
766     {     0.00000000129,  2.67625064707,      180.79513409270},
767     {     0.00000000119,  0.92800049940,       42.32582133180},
768     {     0.00000000119,  4.35793909281,       14.01464568050},
769     {     0.00000000134,  3.18869031781,      166.56804009110},
770     {     0.00000000116,  4.81575725589,      560.71045373160},
771     {     0.00000000135,  5.07450847539,      426.59819087600},
772     {     0.00000000116,  4.29863269938,      138.51749687070},
773     {     0.00000000129,  1.62619100480,      875.83029900100},
774     {     0.00000000132,  2.97512323405,      258.02441321480},
775     {     0.00000000129,  3.64795533299,      183.76407950930},
776     {     0.00000000115,  1.48047840752,      219.89137757700},
777     {     0.00000000116,  6.06435577890,      220.41264243880},
778     {     0.00000000111,  5.34758096393,      670.91677495100},
779     {     0.00000000123,  4.46585892600,     1022.73336725970},
780     {     0.00000000111,  1.56986129352,      531.17543780290},
781     {     0.00000000107,  0.80503196962,     1060.86640289750},
782     {     0.00000000130,  3.49889244997,      799.56422772540},
783     {     0.00000000108,  4.19624502746,      157.63995198190},
784     {     0.00000000116,  5.58946533219,       35.68535508300},
785     {     0.00000000102,  5.42185685225,       79.18683258240},
786     {     0.00000000133,  4.95875659093,     6283.07584999140},
787     {     0.00000000111,  1.45068439598,      433.71173787680},
788     {     0.00000000108,  1.03915893069,      488.58898404020},
789     {     0.00000000108,  2.10259280512,      494.52687487340},
790     {     0.00000000114,  1.95389133455,       91.78644152380},
791     {     0.00000000106,  0.86997192127,     1059.38193018920},
792     {     0.00000000097,  4.22245180427,       67.88049988760},
793     {     0.00000000126,  0.09441818431,    10213.28554621100},
794     {     0.00000000109,  5.76793513384,      518.38463239980},
795     {     0.00000000094,  3.29085817288,      949.17560896980},
796     {     0.00000000090,  0.36813455675,      310.71461125430},
797     {     0.00000000093,  2.03533728562,    10175.15251057320},
798     {     0.00000000093,  1.45987720796,      422.40540518200},
799     {     0.00000000097,  0.74486754369,      485.92885516430},
800     {     0.00000000097,  4.49932032174,      632.78373931320},
801     {     0.00000000095,  5.54259846730,      497.18700374930},
802     {     0.00000000100,  3.82035103648,      110.20632121940},
803     {     0.00000000085,  3.16062166564,      522.57741809380},
804     {     0.00000000097,  6.05634816495,      482.95990974770},
805     {     0.00000000095,  0.23111784604,      500.15594916590},
806     {     0.00000000080,  5.79669381067,      313.68355667090},
807     {     0.00000000084,  2.64687115752,      536.80451209540},
808     {     0.00000000097,  3.21200267248,       97.41551581630},
809     {     0.00000000078,  4.29527108326,      605.95703637020},
810     {     0.00000000082,  2.59093334256,      244.31858407500},
811     {     0.00000000079,  4.56190413535,      361.63845229520},
812     {     0.00000000077,  2.35507598764,      184.72728735580},
813     {     0.00000000073,  3.90646647360,     1019.76442184310},
814     {     0.00000000092,  5.35417312882,       44.07092647100},
815     {     0.00000000097,  1.10874938473,     1371.58101415180},
816 };
817 
818 
819 static const struct ln_vsop neptune_longitude_l2[LONG_L2] = {
820     {     0.00000286136,  1.18985661922,       38.13303563780},
821     {     0.00000295650,  1.85520880574,        1.48447270830},
822     {     0.00000102284,  0.00000000000,        0.00000000000},
823     {     0.00000022987,  1.21060882957,        2.96894541660},
824     {     0.00000007332,  0.53982718012,        2.44768055480},
825     {     0.00000009112,  4.42541280638,       35.16409022120},
826     {     0.00000005223,  0.67422237527,      168.05251279940},
827     {     0.00000005201,  3.02334762854,      182.27960680100},
828     {     0.00000003925,  3.53215364421,      484.44438245600},
829     {     0.00000003741,  5.90239568618,      498.67147645760},
830     {     0.00000003054,  0.28898269237,        4.45341812490},
831     {     0.00000003382,  5.91086982903,       76.26607127560},
832     {     0.00000003289,  1.84550132467,      175.16605980020},
833     {     0.00000002157,  1.89134644831,      388.46515523820},
834     {     0.00000002211,  4.37947574774,        7.11354700080},
835     {     0.00000001955,  5.15138892758,       33.67961751290},
836     {     0.00000001847,  3.48560457075,        9.56122755560},
837     {     0.00000002436,  4.68322560973,      491.55792945680},
838     {     0.00000001674,  2.55582666306,       36.64856292950},
839     {     0.00000001309,  4.52441960698,     1021.24889455140},
840     {     0.00000001081,  0.38230409887,      137.03302416240},
841     {     0.00000000664,  0.87638209009,        4.19278569400},
842     {     0.00000000516,  6.23450266091,      381.35160823740},
843     {     0.00000000497,  2.24615784762,      395.57870223900},
844     {     0.00000000486,  5.23098153853,       39.61750834610},
845     {     0.00000000582,  5.25717304070,       31.01948863700},
846     {     0.00000000395,  5.45450678888,        5.93789083320},
847     {     0.00000000382,  4.60921220106,        8.07675484730},
848     {     0.00000000435,  0.40412683723,       98.89998852460},
849     {     0.00000000351,  1.32083544720,      601.76425067620},
850     {     0.00000000270,  2.97193645281,       73.29712585900},
851     {     0.00000000247,  2.89695614593,      189.39315380180},
852     {     0.00000000235,  4.11675607570,      114.39910691340},
853     {     0.00000000240,  3.56640034110,       41.10198105440},
854     {     0.00000000242,  4.39232827391,      220.41264243880},
855     {     0.00000000242,  5.56816734078,      343.21857259960},
856     {     0.00000000220,  1.61117582925,      357.44566660120},
857     {     0.00000000215,  1.21535463029,       74.78159856730},
858     {     0.00000000198,  0.53499909652,       64.95973858080},
859     {     0.00000000212,  0.05943058707,      493.04240216510},
860     {     0.00000000206,  0.20022831995,     1028.36244155220},
861     {     0.00000000264,  2.83515920571,      144.14657116320},
862     {     0.00000000187,  0.52144835978,       46.20979048510},
863     {     0.00000000247,  5.85680172451,     1059.38193018920},
864     {     0.00000000228,  0.20021706844,       60.76695288680},
865     {     0.00000000184,  3.01962045713,     1014.13534755060},
866     {     0.00000000177,  3.63909894715,      983.11585891360},
867     {     0.00000000172,  3.66036463613,      477.33083545520},
868     {     0.00000000182,  1.92429336792,      183.76407950930},
869     {     0.00000000171,  3.76746326227,      129.91947716160},
870     {     0.00000000169,  4.91188584697,      166.56804009110},
871     {     0.00000000157,  5.89309507727,      169.53698550770},
872     {     0.00000000194,  1.51802955592,       71.81265315070},
873     {     0.00000000114,  0.48567381491,      419.48464387520},
874     {     0.00000000103,  2.80609907986,      433.71173787680},
875     {     0.00000000093,  0.66549730538,      251.43213107580},
876     {     0.00000000086,  5.12698345709,      567.82400073240},
877     {     0.00000000086,  2.24868532014,      312.19908396260},
878     {     0.00000000079,  2.04262119026,      274.06604832480},
879 };
880 
881 
882 static const struct ln_vsop neptune_longitude_l3[LONG_L3] = {
883     {     0.00000012472,  6.04427218715,        1.48447270830},
884     {     0.00000011257,  6.11436681584,       38.13303563780},
885     {     0.00000004354,  3.14159265359,        0.00000000000},
886     {     0.00000001390,  4.95198243861,        2.96894541660},
887     {     0.00000000745,  2.37751238105,      168.05251279940},
888     {     0.00000000710,  1.29216892369,      182.27960680100},
889     {     0.00000000540,  5.25465584672,      484.44438245600},
890     {     0.00000000520,  4.18622893104,      498.67147645760},
891     {     0.00000000664,  0.55871435877,       31.01948863700},
892     {     0.00000000301,  2.69253200796,        7.11354700080},
893     {     0.00000000192,  2.01562375989,      137.03302416240},
894     {     0.00000000168,  6.26790496230,      357.44566660120},
895     {     0.00000000183,  4.12898383544,       76.26607127560},
896     {     0.00000000144,  2.84518337934,      460.53844081980},
897     {     0.00000000144,  3.93173694550,      446.31134681820},
898     {     0.00000000108,  3.45112519708,      522.57741809380},
899     {     0.00000000108,  2.36456446266,      536.80451209540},
900     {     0.00000000085,  4.34146183645,      433.71173787680},
901 };
902 
903 
904 static const struct ln_vsop neptune_latitude_b0[LAT_B0] = {
905     {     0.03088622933,  1.44104372644,       38.13303563780},
906     {     0.00027780087,  5.91271884599,       76.26607127560},
907     {     0.00027623609,  0.00000000000,        0.00000000000},
908     {     0.00015355489,  2.52123799551,       36.64856292950},
909     {     0.00015448133,  3.50877079215,       39.61750834610},
910     {     0.00001999918,  1.50998668632,       74.78159856730},
911     {     0.00001967540,  4.37778196626,        1.48447270830},
912     {     0.00001015137,  3.21560997434,       35.16409022120},
913     {     0.00000605767,  2.80246592015,       73.29712585900},
914     {     0.00000594878,  2.12892696997,       41.10198105440},
915     {     0.00000588806,  3.18655898167,        2.96894541660},
916     {     0.00000401830,  4.16883411107,      114.39910691340},
917     {     0.00000254333,  3.27120475878,      453.42489381900},
918     {     0.00000261647,  3.76722702982,      213.29909543800},
919     {     0.00000279963,  1.68165289071,       77.75054398390},
920     {     0.00000205590,  4.25652269561,      529.69096509460},
921     {     0.00000140455,  3.52969120587,      137.03302416240},
922     {     0.00000098530,  4.16774786185,       33.67961751290},
923     {     0.00000051257,  1.95120897519,        4.45341812490},
924     {     0.00000067971,  4.66970488716,       71.81265315070},
925     {     0.00000041931,  5.41783733708,      111.43016149680},
926     {     0.00000041822,  5.94831807711,      112.91463420510},
927     {     0.00000030637,  0.93620784844,       42.58645376270},
928     {     0.00000011084,  5.88898642607,      108.46121608020},
929     {     0.00000009620,  0.03946190739,       70.32818044240},
930     {     0.00000009664,  0.22454439644,       79.23501669220},
931     {     0.00000009728,  5.30069291338,       32.19514480460},
932     {     0.00000007386,  3.00684969443,      426.59819087600},
933     {     0.00000007087,  0.12539126589,      109.94568878850},
934     {     0.00000006021,  6.20509673404,      115.88357962170},
935     {     0.00000006169,  3.62095364534,      983.11585891360},
936     {     0.00000004778,  0.75209801727,        5.93789083320},
937     {     0.00000006391,  5.84641678934,      148.07872442630},
938     {     0.00000006250,  2.41685076974,      152.53214255120},
939     {     0.00000004538,  5.58174697144,      175.16605980020},
940     {     0.00000005006,  4.60821553923,     1059.38193018920},
941     {     0.00000004289,  4.19647890252,       47.69426319340},
942     {     0.00000005795,  5.07512593683,      415.29185818120},
943     {     0.00000004749,  2.51604900018,       37.61177077600},
944     {     0.00000004119,  1.72780379682,       28.57180808220},
945     {     0.00000004076,  6.00250763264,      145.10977900970},
946     {     0.00000004429,  5.66004129948,       98.89998852460},
947     {     0.00000003950,  2.74109077312,      350.33211960040},
948     {     0.00000004091,  1.61788463987,       39.09624348430},
949     {     0.00000004130,  4.40683058061,       37.16982779130},
950     {     0.00000004710,  3.50928512298,       38.65430049960},
951     {     0.00000004440,  4.78977105547,       38.08485152800},
952     {     0.00000004433,  1.23386935925,       38.18121974760},
953     {     0.00000003762,  4.83946937242,      491.55792945680},
954     {     0.00000002606,  1.20948074983,      451.94042111070},
955     {     0.00000002536,  2.18629981865,      454.90936652730},
956     {     0.00000002328,  5.19777734610,       72.07328558160},
957     {     0.00000002502,  0.85987169644,      106.97674337190},
958     {     0.00000002342,  0.81385415125,        4.19278569400},
959     {     0.00000001981,  0.46628243826,      184.72728735580},
960     {     0.00000001963,  6.01908740123,       44.07092647100},
961     {     0.00000002180,  0.70099749848,      206.18554843720},
962     {     0.00000001814,  3.64693569553,      220.41264243880},
963     {     0.00000001811,  0.40438727680,       40.58071619260},
964     {     0.00000001706,  6.13546176473,      181.75834193920},
965     {     0.00000001855,  5.61617808686,       35.68535508300},
966     {     0.00000001595,  2.97142092029,       37.87240320690},
967     {     0.00000001785,  2.42173650828,      388.46515523820},
968     {     0.00000001595,  3.05261042370,       38.39366806870},
969     {     0.00000001437,  1.48678263330,      135.54855145410},
970     {     0.00000001387,  2.46128498127,      138.51749687070},
971     {     0.00000001367,  1.52035493296,       68.84370773410},
972     {     0.00000001575,  3.58964541604,       38.02116105320},
973     {     0.00000001297,  5.06156596334,       33.94024994380},
974     {     0.00000001487,  0.20211319124,       30.05628079050},
975     {     0.00000001504,  5.80298305102,       46.20979048510},
976     {     0.00000001192,  0.87274762791,       42.32582133180},
977     {     0.00000001569,  2.43405967107,       38.24491022240},
978     {     0.00000001207,  1.84658709550,      251.43213107580},
979     {     0.00000001015,  0.53439848924,      129.91947716160},
980     {     0.00000001000,  2.47430267510,      312.19908396260},
981     {     0.00000000989,  3.41493531823,      144.14657116320},
982     {     0.00000000963,  4.31728030609,      151.04766984290},
983     {     0.00000001020,  0.98204578051,      143.62530630140},
984     {     0.00000000940,  1.02983172757,      221.37585028530},
985     {     0.00000000938,  2.43648016071,      567.82400073240},
986     {     0.00000001111,  0.65217589630,      146.59425171800},
987     {     0.00000000778,  0.00147489924,      218.40690486870},
988     {     0.00000000895,  0.25116382531,       30.71067209630},
989     {     0.00000000795,  5.80508903944,      149.56319713460},
990     {     0.00000000737,  3.40041191615,      446.31134681820},
991     {     0.00000000719,  1.43797240082,        8.07675484730},
992     {     0.00000000720,  0.00651007550,      460.53844081980},
993     {     0.00000000766,  4.03381639032,      522.57741809380},
994     {     0.00000000666,  1.39459333877,       84.34282612290},
995     {     0.00000000584,  1.01405548157,      536.80451209540},
996     {     0.00000000596,  0.62385371171,       35.21227433100},
997     {     0.00000000598,  5.39942003543,       41.05379694460},
998     {     0.00000000475,  5.80146378263,        7.42236354150},
999     {     0.00000000510,  1.34408868529,      258.02441321480},
1000     {     0.00000000458,  5.25296349653,       80.71948940050},
1001     {     0.00000000421,  3.24495106241,      416.77633088950},
1002     {     0.00000000446,  1.19100879284,      180.27386923090},
1003     {     0.00000000472,  0.92703398655,       44.72531777680},
1004     {     0.00000000388,  1.68493201140,      183.24281464750},
1005     {     0.00000000375,  0.15241043424,      255.05546779820},
1006     {     0.00000000354,  4.21553560271,        0.96320784650},
1007     {     0.00000000380,  2.17069237734,      105.49227066360},
1008     {     0.00000000341,  4.79196775965,      110.20632121940},
1009     {     0.00000000427,  5.15774558344,       31.54075349880},
1010     {     0.00000000301,  3.45817005630,      100.38446123290},
1011     {     0.00000000298,  2.26795857315,      639.89728631400},
1012     {     0.00000000279,  0.25689162963,       39.50563376150},
1013     {     0.00000000320,  3.58027351264,       45.24658263860},
1014     {     0.00000000269,  5.72024180826,       36.76043751410},
1015     {     0.00000000247,  0.60910176939,      186.21176006410},
1016     {     0.00000000245,  0.64173616285,      419.48464387520},
1017     {     0.00000000235,  0.73189197672,    10213.28554621100},
1018     {     0.00000000232,  0.37399769205,      490.07345674850},
1019     {     0.00000000230,  5.76579551439,       12.53017297220},
1020     {     0.00000000240,  4.13474003423,        0.52126486180},
1021     {     0.00000000279,  1.62813369297,      294.67297614430},
1022     {     0.00000000238,  2.18530921569,      219.89137757700},
1023     {     0.00000000262,  3.08411150984,        6.59228213900},
1024     {     0.00000000217,  2.93258397672,       27.08733537390},
1025     {     0.00000000217,  4.69259794345,      406.10313764110},
1026     {     0.00000000219,  1.35160367448,      216.92243216040},
1027     {     0.00000000200,  2.35228881303,      605.95703637020},
1028     {     0.00000000232,  3.92583619589,     1512.80682400820},
1029     {     0.00000000223,  5.52411141993,      187.69623277240},
1030     {     0.00000000190,  0.29170678080,      291.70403072770},
1031     {     0.00000000236,  3.12468256482,      563.63121503840},
1032     {     0.00000000193,  0.53307912023,       60.76695288680},
1033     {     0.00000000215,  3.78391258991,      103.09277421860},
1034     {     0.00000000172,  5.63262770751,        7.11354700080},
1035     {     0.00000000164,  4.14647236992,       77.22927912210},
1036     {     0.00000000162,  0.71904053601,       11.04570026390},
1037     {     0.00000000160,  4.23625258528,      487.36514376280},
1038     {     0.00000000191,  0.37601781666,       31.01948863700},
1039     {     0.00000000157,  1.02419759383,     6283.07584999140},
1040     {     0.00000000157,  4.42530429545,     6206.80977871580},
1041     {     0.00000000178,  6.24797160212,      316.39186965660},
1042     {     0.00000000161,  5.65988283675,      343.21857259960},
1043     {     0.00000000153,  5.58414765899,      252.08652238160},
1044     {     0.00000000189,  4.80791039970,      641.12112659140},
1045     {     0.00000000166,  5.50438043690,      662.53120356300},
1046     {     0.00000000146,  5.08949604858,      286.59622129700},
1047     {     0.00000000145,  2.13015521882,     2042.49778910280},
1048     {     0.00000000156,  2.19405770242,      274.06604832480},
1049     {     0.00000000148,  4.85749820683,      442.75170057060},
1050     {     0.00000000187,  4.96121139093,     1589.07289528380},
1051     {     0.00000000155,  2.28259405687,      142.14083359310},
1052     {     0.00000000134,  1.29277232397,      456.39383923560},
1053     {     0.00000000126,  5.59769497652,      179.35884549420},
1054     {     0.00000000146,  2.53463818201,      256.53994050650},
1055     {     0.00000000140,  1.57962199938,       75.74480641380},
1056     {     0.00000000123,  0.05437698562,      944.98282327580},
1057     {     0.00000000122,  1.90676170566,      418.26080359780},
1058     {     0.00000000154,  1.86816969261,      331.32153907380},
1059     {     0.00000000144,  5.52321332407,       14.01464568050},
1060     {     0.00000000139,  2.80726892154,       82.85835341460},
1061     {     0.00000000107,  0.66980589221,      190.66517818900},
1062     {     0.00000000114,  1.48896223432,      253.57099508990},
1063     {     0.00000000110,  5.32587573069,      240.12579838100},
1064     {     0.00000000105,  0.65340064265,      173.68158709190},
1065     {     0.00000000102,  2.58735834098,      450.45594840240},
1066     {     0.00000000099,  0.43935555771,      328.35259365720},
1067     {     0.00000000101,  4.71130182307,      117.36805233000},
1068     {     0.00000000095,  2.17590506749,      101.86893394120},
1069     {     0.00000000094,  0.55008356412,      293.18850343600},
1070     {     0.00000000093,  0.63642129305,      377.15882254340},
1071     {     0.00000000091,  5.84828809934,    10137.01947493540},
1072     {     0.00000000089,  1.02829282520,     1021.24889455140},
1073     {     0.00000000094,  1.79318047295,      493.04240216510},
1074     {     0.00000000080,  1.58140274465,       69.15252427480},
1075     {     0.00000000074,  0.23362667562,       63.73589830340},
1076     {     0.00000000071,  1.51961975694,      488.58898404020},
1077 };
1078 
1079 
1080 static const struct ln_vsop neptune_latitude_b1[LAT_B1] = {
1081     {     0.00005150897,  2.14270496419,       38.13303563780},
1082     {     0.00000258298,  5.46539598920,       76.26607127560},
1083     {     0.00000251862,  4.40444268588,       36.64856292950},
1084     {     0.00000234436,  1.65983511437,       39.61750834610},
1085     {     0.00000208814,  0.00000000000,        0.00000000000},
1086     {     0.00000025312,  6.00917621033,       35.16409022120},
1087     {     0.00000017795,  4.95721064558,      213.29909543800},
1088     {     0.00000017841,  0.44821000048,       41.10198105440},
1089     {     0.00000013152,  1.49958304388,      529.69096509460},
1090     {     0.00000010729,  4.39946094022,       73.29712585900},
1091     {     0.00000008422,  1.55833887152,        2.96894541660},
1092     {     0.00000005650,  2.15782280490,       74.78159856730},
1093     {     0.00000005164,  3.68693766150,      114.39910691340},
1094     {     0.00000005439,  0.26747546514,       77.75054398390},
1095     {     0.00000004883,  5.47281451218,        1.48447270830},
1096     {     0.00000001863,  5.45718239014,       71.81265315070},
1097     {     0.00000001956,  0.59394993708,       33.67961751290},
1098     {     0.00000001486,  0.26979020045,        4.45341812490},
1099     {     0.00000001482,  5.46695876828,       42.58645376270},
1100     {     0.00000000881,  4.07805940363,       37.61177077600},
1101     {     0.00000000881,  1.94513348170,       38.65430049960},
1102     {     0.00000000851,  2.39564495000,      206.18554843720},
1103     {     0.00000000606,  1.99397575028,      220.41264243880},
1104     {     0.00000000552,  2.27385531237,      137.03302416240},
1105     {     0.00000000425,  5.31717031249,      112.91463420510},
1106     {     0.00000000444,  1.89596154412,       40.58071619260},
1107     {     0.00000000405,  2.23350335799,      129.91947716160},
1108     {     0.00000000445,  1.89735718846,       47.69426319340},
1109     {     0.00000000390,  3.00112052361,      111.43016149680},
1110     {     0.00000000444,  4.12778640748,       35.68535508300},
1111     {     0.00000000390,  1.72106368725,      144.14657116320},
1112     {     0.00000000447,  4.12632050294,       28.57180808220},
1113     {     0.00000000385,  0.60554020191,      426.59819087600},
1114     {     0.00000000443,  0.66667071474,      350.33211960040},
1115     {     0.00000000413,  2.53628535203,      453.42489381900},
1116     {     0.00000000322,  2.78214046965,      983.11585891360},
1117     {     0.00000000294,  5.10116120513,      446.31134681820},
1118     {     0.00000000332,  2.57248850528,     1059.38193018920},
1119     {     0.00000000288,  4.58741150748,      460.53844081980},
1120     {     0.00000000288,  0.74693614733,       70.32818044240},
1121     {     0.00000000275,  1.46123635585,      175.16605980020},
1122     {     0.00000000237,  6.26990493578,      522.57741809380},
1123     {     0.00000000254,  5.45401514230,      536.80451209540},
1124     {     0.00000000228,  2.46457859271,       98.89998852460},
1125     {     0.00000000204,  5.30009848697,        5.93789083320},
1126     {     0.00000000142,  1.52594076364,      109.94568878850},
1127     {     0.00000000167,  5.03534602485,       79.23501669220},
1128     {     0.00000000133,  2.11377639696,      152.53214255120},
1129     {     0.00000000082,  3.63263716103,      491.55792945680},
1130 };
1131 
1132 
1133 static const struct ln_vsop neptune_latitude_b2[LAT_B2] = {
1134     {     0.00000042058,  1.91480759314,       38.13303563780},
1135     {     0.00000004359,  4.77459417163,       39.61750834610},
1136     {     0.00000004230,  1.12991232222,       36.64856292950},
1137     {     0.00000004166,  4.37185631758,       76.26607127560},
1138     {     0.00000001235,  0.13036455232,      213.29909543800},
1139     {     0.00000000905,  3.05640125957,      529.69096509460},
1140     {     0.00000000743,  3.14159265359,        0.00000000000},
1141     {     0.00000000380,  1.70771699530,       35.16409022120},
1142     {     0.00000000328,  4.23287817216,       41.10198105440},
1143     {     0.00000000188,  1.15191208244,      220.41264243880},
1144     {     0.00000000132,  4.73251124812,      206.18554843720},
1145     {     0.00000000084,  3.93928282212,      129.91947716160},
1146     {     0.00000000080,  0.01151271706,      144.14657116320},
1147 };
1148 
1149 
1150 static const struct ln_vsop neptune_latitude_b3[LAT_B3] = {
1151     {     0.00000004131,  3.06928911462,       38.13303563780},
1152     {     0.00000000143,  4.00453590187,       36.64856292950},
1153 };
1154 
1155 
1156 static const struct ln_vsop neptune_radius_r0[RADIUS_R0] = {
1157     {    30.07013205828,  0.00000000000,        0.00000000000},
1158     {     0.27062259632,  1.32999459377,       38.13303563780},
1159     {     0.01691764014,  3.25186135653,       36.64856292950},
1160     {     0.00807830553,  5.18592878704,        1.48447270830},
1161     {     0.00537760510,  4.52113935896,       35.16409022120},
1162     {     0.00495725141,  1.57105641650,      491.55792945680},
1163     {     0.00274571975,  1.84552258866,      175.16605980020},
1164     {     0.00135134092,  3.37220609835,       39.61750834610},
1165     {     0.00121801746,  5.79754470298,       76.26607127560},
1166     {     0.00100896068,  0.37702724930,       73.29712585900},
1167     {     0.00069791331,  3.79616637768,        2.96894541660},
1168     {     0.00046687836,  5.74938034313,       33.67961751290},
1169     {     0.00024594531,  0.50801745878,      109.94568878850},
1170     {     0.00016939478,  1.59422512526,       71.81265315070},
1171     {     0.00014229808,  1.07785898723,       74.78159856730},
1172     {     0.00012012320,  1.92059384991,     1021.24889455140},
1173     {     0.00008394349,  0.67818233586,      146.59425171800},
1174     {     0.00007571796,  1.07149207335,      388.46515523820},
1175     {     0.00005720872,  2.59061733345,        4.45341812490},
1176     {     0.00004840210,  1.90681013048,       41.10198105440},
1177     {     0.00004483493,  2.90573464537,      529.69096509460},
1178     {     0.00004269595,  3.41333526870,      453.42489381900},
1179     {     0.00004353588,  0.67984856103,       32.19514480460},
1180     {     0.00004420549,  1.74990681127,      108.46121608020},
1181     {     0.00002879755,  1.98627174527,      137.03302416240},
1182     {     0.00002635535,  3.09755951044,      213.29909543800},
1183     {     0.00003381113,  0.84810966225,      183.24281464750},
1184     {     0.00002877511,  3.67417203197,      350.33211960040},
1185     {     0.00002306505,  2.80964587883,       70.32818044240},
1186     {     0.00002529939,  5.79822254729,      490.07345674850},
1187     {     0.00002522868,  0.48612122962,      493.04240216510},
1188     {     0.00002085926,  0.61853857468,       33.94024994380},
1189     {     0.00001976522,  5.11703044560,      168.05251279940},
1190     {     0.00001904055,  1.72165893329,      182.27960680100},
1191     {     0.00001653525,  1.92781987560,      145.10977900970},
1192     {     0.00001434507,  1.69985856533,      484.44438245600},
1193     {     0.00001403029,  4.58914203187,      498.67147645760},
1194     {     0.00001499989,  1.01619882251,      219.89137757700},
1195     {     0.00001397976,  0.76199761055,      176.65053250850},
1196     {     0.00001402764,  6.07659120736,      173.68158709190},
1197     {     0.00001128278,  5.96666460978,        9.56122755560},
1198     {     0.00001228058,  1.59915900158,       77.75054398390},
1199     {     0.00000835562,  3.97050539397,      114.39910691340},
1200     {     0.00000811407,  3.00264146159,       46.20979048510},
1201     {     0.00000731543,  2.10445780662,      181.75834193920},
1202     {     0.00000615618,  2.97867866529,      106.97674337190},
1203     {     0.00000703453,  1.18748208693,      256.53994050650},
1204     {     0.00000501955,  1.38654746863,        5.93789083320},
1205     {     0.00000530475,  4.24112162150,      111.43016149680},
1206     {     0.00000437096,  2.27029212923,     1550.93985964600},
1207     {     0.00000399906,  1.25612321821,        8.07675484730},
1208     {     0.00000420992,  1.89248234590,       30.71067209630},
1209     {     0.00000382461,  3.29964092733,      983.11585891360},
1210     {     0.00000422891,  5.53099620330,      525.49817940060},
1211     {     0.00000355064,  2.27873080286,      218.40690486870},
1212     {     0.00000281092,  4.54185193503,       44.72531777680},
1213     {     0.00000314499,  3.95932948594,      381.35160823740},
1214     {     0.00000279604,  1.54525386438,       98.89998852460},
1215     {     0.00000268088,  5.13448119540,      112.91463420510},
1216     {     0.00000333260,  5.75014889084,       39.09624348430},
1217     {     0.00000291773,  4.02405440052,       68.84370773410},
1218     {     0.00000321430,  1.50624339061,      454.90936652730},
1219     {     0.00000309200,  2.85451259377,       72.07328558160},
1220     {     0.00000345541,  1.35801933629,      293.18850343600},
1221     {     0.00000307360,  0.31939966593,      601.76425067620},
1222     {     0.00000251026,  3.54039557458,      312.19908396260},
1223     {     0.00000248151,  3.41078778961,       37.61177077600},
1224     {     0.00000306000,  2.72475094464,     6244.94281435360},
1225     {     0.00000293530,  4.89079714624,      528.20649238630},
1226     {     0.00000234148,  0.59107513684,       42.58645376270},
1227     {     0.00000239159,  3.15940174394,      143.62530630140},
1228     {     0.00000214523,  3.62480267276,      278.25883401880},
1229     {     0.00000246198,  1.01506302015,      141.22580985640},
1230     {     0.00000174151,  5.54934515763,      567.82400073240},
1231     {     0.00000163736,  2.09772553888,        2.44768055480},
1232     {     0.00000162895,  2.48942845886,        4.19278569400},
1233     {     0.00000193252,  1.58538835107,      138.51749687070},
1234     {     0.00000155321,  3.28425560727,       31.01948863700},
1235     {     0.00000182280,  2.45335941387,      255.05546779820},
1236     {     0.00000177846,  4.14773474853,    10175.15251057320},
1237     {     0.00000174672,  1.53072472355,      329.83706636550},
1238     {     0.00000137774,  3.34926113123,        0.96320784650},
1239     {     0.00000160922,  5.16388154007,      211.81462272970},
1240     {     0.00000113312,  4.96838153028,      148.07872442630},
1241     {     0.00000129107,  3.25539370530,       24.11838995730},
1242     {     0.00000122785,  5.39724696402,       62.25142559510},
1243     {     0.00000107361,  3.26459113010,     1059.38193018920},
1244     {     0.00000119951,  3.07428550584,      184.72728735580},
1245     {     0.00000099006,  1.92575084098,       28.57180808220},
1246     {     0.00000097710,  2.59473517954,        6.59228213900},
1247     {     0.00000123604,  3.11899453253,      221.37585028530},
1248     {     0.00000124693,  2.97042402154,      251.43213107580},
1249     {     0.00000114252,  0.25039919123,      594.65070367540},
1250     {     0.00000110984,  3.34269023552,      180.27386923090},
1251     {     0.00000120812,  1.92944484022,       25.60286266560},
1252     {     0.00000104667,  0.94883561775,      395.57870223900},
1253     {     0.00000109779,  5.43147613574,      494.52687487340},
1254     {     0.00000096919,  0.86184760695,     1014.13534755060},
1255     {     0.00000098685,  0.89578101892,      488.58898404020},
1256     {     0.00000088965,  4.78114888597,      144.14657116320},
1257     {     0.00000107888,  0.98700578434,     1124.34166877000},
1258     {     0.00000097074,  2.62665185334,      291.70403072770},
1259     {     0.00000075666,  5.88963758122,       43.24084506850},
1260     {     0.00000093718,  6.09873436871,      526.72201967800},
1261     {     0.00000094822,  0.20662771116,      456.39383923560},
1262     {     0.00000069954,  2.39614984454,      426.59819087600},
1263     {     0.00000089656,  3.25464366223,      258.02441321480},
1264     {     0.00000076880,  4.20394189510,      105.49227066360},
1265     {     0.00000069133,  4.93031154435,     1028.36244155220},
1266     {     0.00000090474,  1.69635495867,      366.48562929500},
1267     {     0.00000073446,  3.14305202700,       82.85835341460},
1268     {     0.00000057870,  0.85902654510,       60.76695288680},
1269     {     0.00000078695,  1.09307575550,      700.66423920080},
1270     {     0.00000055696,  3.89047184339,       47.69426319340},
1271     {     0.00000063218,  4.39571226649,      149.56319713460},
1272     {     0.00000056877,  0.81233112899,        2.92076130680},
1273     {     0.00000056765,  5.14903738264,        0.52126486180},
1274     {     0.00000056174,  5.42986960794,      911.04257333200},
1275     {     0.00000061746,  6.16453594476,     1019.76442184310},
1276     {     0.00000070668,  0.08154675285,       40.58071619260},
1277     {     0.00000074941,  4.85541117469,      186.21176006410},
1278     {     0.00000062137,  4.79000169130,       11.04570026390},
1279     {     0.00000061135,  0.83712327235,     1022.73336725970},
1280     {     0.00000061658,  5.70207975404,      178.13500521680},
1281     {     0.00000053467,  0.37111991212,       27.08733537390},
1282     {     0.00000056400,  3.52361228973,      216.92243216040},
1283     {     0.00000048819,  5.10789123481,       64.95973858080},
1284     {     0.00000063989,  6.27428332013,        7.11354700080},
1285     {     0.00000063290,  4.39424910030,      807.94979911340},
1286     {     0.00000046355,  1.34731122935,      451.94042111070},
1287     {     0.00000060544,  3.40308211679,      294.67297614430},
1288     {     0.00000057140,  0.44713393582,      140.00196957900},
1289     {     0.00000046891,  0.16868575852,        7.42236354150},
1290     {     0.00000053760,  2.79644964300,      328.35259365720},
1291     {     0.00000056110,  1.06133412372,      172.19711438360},
1292     {     0.00000043828,  6.04649305744,      135.54855145410},
1293     {     0.00000049546,  0.64111181985,       41.05379694460},
1294     {     0.00000054352,  2.92484004653,      563.63121503840},
1295     {     0.00000042962,  5.40180687766,      487.36514376280},
1296     {     0.00000051507,  0.09101955359,      210.33015002140},
1297     {     0.00000042022,  3.11630465723,       29.22619938800},
1298     {     0.00000047855,  3.90929080860,       63.73589830340},
1299     {     0.00000041545,  6.27971504434,       32.71640966640},
1300     {     0.00000041412,  4.45532728136,       37.16982779130},
1301     {     0.00000040691,  0.15392324705,       79.23501669220},
1302     {     0.00000048205,  1.84198373010,      403.13419222450},
1303     {     0.00000036975,  0.44979453927,       30.05628079050},
1304     {     0.00000047762,  0.88083849566,     3302.47939106200},
1305     {     0.00000039465,  3.50565537871,      357.44566660120},
1306     {     0.00000042139,  0.63375113641,      343.21857259960},
1307     {     0.00000042780,  3.55125610401,       38.65430049960},
1308     {     0.00000038995,  5.26486175542,      415.29185818120},
1309     {     0.00000038872,  5.25715558452,      386.98068252990},
1310     {     0.00000040508,  1.36656945746,       31.23193695810},
1311     {     0.00000033786,  5.23988634904,       67.35923502580},
1312     {     0.00000040879,  3.55298595767,      331.32153907380},
1313     {     0.00000038768,  1.12288359393,       38.18121974760},
1314     {     0.00000036962,  6.08599078489,       35.42472265210},
1315     {     0.00000038831,  4.67876780698,       38.08485152800},
1316     {     0.00000038231,  6.26491109393,      389.94962794650},
1317     {     0.00000031356,  0.07745279153,       12.53017297220},
1318     {     0.00000026341,  4.59559782764,      106.01353552540},
1319     {     0.00000029746,  4.45828452713,       22.63391724900},
1320     {     0.00000027465,  5.99541587686,      206.18554843720},
1321     {     0.00000026195,  4.49611532896,       34.20088237470},
1322     {     0.00000024122,  5.17089442140,      129.91947716160},
1323     {     0.00000028998,  3.64928923192,      253.57099508990},
1324     {     0.00000026787,  4.37969316517,      142.14083359310},
1325     {     0.00000030385,  1.60122950634,      348.84764689210},
1326     {     0.00000024285,  1.01980822546,       41.75637236020},
1327     {     0.00000031322,  1.05975821421,      100.38446123290},
1328     {     0.00000022588,  4.72482137820,       81.37388070630},
1329     {     0.00000026405,  3.03479369857,      365.00115658670},
1330     {     0.00000021916,  3.48038797535,       69.15252427480},
1331     {     0.00000022498,  4.03487494425,       19.12245511120},
1332     {     0.00000021838,  3.92447477596,        5.10780943070},
1333     {     0.00000022885,  1.58977064672,      189.39315380180},
1334     {     0.00000025496,  2.43810677799,      351.81659230870},
1335     {     0.00000026083,  3.61207095239,      367.97010200330},
1336     {     0.00000019111,  2.59694457001,     2080.63082474060},
1337     {     0.00000019640,  6.15701741238,       35.21227433100},
1338     {     0.00000025688,  2.00512719767,      439.78275515400},
1339     {     0.00000021613,  3.32354204724,      119.50691634410},
1340     {     0.00000025389,  4.74025836522,     1474.67378837040},
1341     {     0.00000018107,  5.35129342595,      244.31858407500},
1342     {     0.00000022539,  4.79833880058,       84.34282612290},
1343     {     0.00000023295,  5.93767762095,      316.39186965660},
1344     {     0.00000016978,  3.05115560279,      220.41264243880},
1345     {     0.00000020022,  4.99276451168,      179.09821306330},
1346     {     0.00000020370,  1.86508317889,      171.23390653710},
1347     {     0.00000022628,  0.27205770382,      666.72398925700},
1348     {     0.00000018427,  3.39354245580,       69.36497259590},
1349     {     0.00000019046,  2.02999241631,        5.41662597140},
1350     {     0.00000015738,  3.40021239975,      274.06604832480},
1351     {     0.00000019072,  3.70882976684,      164.12035953630},
1352     {     0.00000018716,  0.90215956591,      285.37238101960},
1353     {     0.00000015889,  0.42011285882,      697.74347789400},
1354     {     0.00000014988,  3.08544843936,      704.85702489480},
1355     {     0.00000015972,  1.82864185268,      477.33083545520},
1356     {     0.00000016509,  5.04817895427,       36.90919536040},
1357     {     0.00000013892,  2.94161501165,       38.39366806870},
1358     {     0.00000014019,  2.86061049050,       37.87240320690},
1359     {     0.00000015302,  4.94041289914,      101.86893394120},
1360     {     0.00000017397,  5.81486997282,       35.68535508300},
1361     {     0.00000017379,  2.51842240176,       20.60692781950},
1362     {     0.00000016416,  3.63037693563,       45.24658263860},
1363     {     0.00000012943,  3.03051173423,      522.57741809380},
1364     {     0.00000015752,  5.00292909214,      247.23934538180},
1365     {     0.00000014362,  5.49004892867,       39.35687591520},
1366     {     0.00000012679,  0.20331109323,      460.53844081980},
1367     {     0.00000016260,  5.93480347217,      815.06334611420},
1368     {     0.00000012900,  3.51131840632,      446.31134681820},
1369     {     0.00000013891,  5.51064697666,       31.54075349880},
1370     {     0.00000015770,  3.77930539694,      404.61866493280},
1371     {     0.00000013399,  3.96033558345,      290.21955801940},
1372     {     0.00000015368,  2.45783892707,       26.82670294300},
1373     {     0.00000014246,  3.18588280921,      401.64971951620},
1374     {     0.00000012199,  4.94365391256,       14.01464568050},
1375     {     0.00000014368,  4.93297486962,      120.99138905240},
1376     {     0.00000013413,  3.79142222247,      151.04766984290},
1377     {     0.00000012073,  2.92823577017,        2.70831298570},
1378     {     0.00000014120,  4.69411530315,      738.79727483860},
1379     {     0.00000011566,  5.91003538993,      536.80451209540},
1380     {     0.00000015578,  2.91836788254,      875.83029900100},
1381     {     0.00000013125,  2.16051328657,      152.53214255120},
1382     {     0.00000012793,  1.97868575679,        1.37259812370},
1383     {     0.00000014101,  4.75302563115,        0.26063243090},
1384     {     0.00000012967,  0.00533471540,       97.41551581630},
1385     {     0.00000010788,  6.18639055862,      115.88357962170},
1386     {     0.00000013729,  2.32306473850,       38.24491022240},
1387     {     0.00000011606,  4.61702427262,      178.78939652260},
1388     {     0.00000011256,  0.79281130068,       42.32582133180},
1389     {     0.00000014500,  5.44688707180,       44.07092647100},
1390     {     0.00000011534,  5.26580538005,      160.93896579860},
1391     {     0.00000013411,  5.17996944056,       32.45577723550},
1392     {     0.00000013658,  2.15687632802,      476.43131808350},
1393     {     0.00000012788,  2.07356149992,       20.49505323490},
1394     {     0.00000013782,  3.47865209163,       38.02116105320},
1395     {     0.00000013257,  5.15138529480,      103.09277421860},
1396     {     0.00000009715,  0.74597883480,      918.15612033280},
1397     {     0.00000010378,  5.38520350123,      222.86032299360},
1398     {     0.00000013357,  5.89635739027,      748.09786996330},
1399     {     0.00000012632,  1.20306997433,       16.15350969460},
1400     {     0.00000011437,  1.58444114292,      495.49008271990},
1401     {     0.00000011424,  4.74142930795,      487.62577619370},
1402     {     0.00000009336,  0.97313630950,      662.53120356300},
1403     {     0.00000008911,  5.21180580479,      118.02244363580},
1404     {     0.00000009827,  4.48170250645,      505.78502345840},
1405     {     0.00000011615,  3.09644428293,       17.63798240290},
1406     {     0.00000009957,  4.03258124099,      169.53698550770},
1407     {     0.00000009818,  5.20376439002,        1.59634729290},
1408     {     0.00000010160,  3.74441320429,      457.61767951300},
1409     {     0.00000008661,  0.31247523804,     1440.73353842660},
1410     {     0.00000008496,  1.06445636872,       55.77101804070},
1411     {     0.00000011162,  1.92907822340,      564.85505531580},
1412     {     0.00000008434,  5.55699081873,       17.52610781830},
1413     {     0.00000008057,  0.31116345866,      377.41945497430},
1414     {     0.00000010070,  3.92554977184,      441.26722786230},
1415     {     0.00000007770,  0.14603509444,      944.98282327580},
1416     {     0.00000007938,  2.40417397694,      488.37653571910},
1417     {     0.00000009894,  0.63707319139,      183.76407950930},
1418     {     0.00000007633,  2.25662443193,       79.18683258240},
1419     {     0.00000007867,  3.87469522964,      494.73932319450},
1420     {     0.00000009203,  4.36605841970,       29.74746424980},
1421     {     0.00000009716,  3.06038536864,      166.56804009110},
1422     {     0.00000009377,  0.56416645296,      673.31627139600},
1423     {     0.00000008771,  5.24535317574,     1057.89745748090},
1424     {     0.00000008225,  5.42577676109,      104.00779795530},
1425     {     0.00000008367,  0.48337087236,       19.01058052660},
1426     {     0.00000009820,  5.88955818086,      358.40887444770},
1427     {     0.00000007009,  2.93493492342,        0.04818410980},
1428     {     0.00000008254,  3.47304582051,      156.15547927360},
1429     {     0.00000007684,  1.53844437652,       59.28248017850},
1430     {     0.00000009804,  6.06393995615,      784.74643289280},
1431     {     0.00000008516,  5.99059807952,      180.79513409270},
1432     {     0.00000008090,  1.38588221442,     1654.03263386460},
1433     {     0.00000009074,  4.03971490460,     1017.05610885740},
1434     {     0.00000006908,  1.41919832926,      178.34745353790},
1435     {     0.00000008713,  0.35913477738,      636.66770846650},
1436     {     0.00000008230,  2.53750470473,      518.38463239980},
1437     {     0.00000008594,  5.29103584901,      457.87831194390},
1438     {     0.00000006769,  5.43380191356,      171.98466606250},
1439     {     0.00000008995,  1.36992508507,     6209.77872413240},
1440     {     0.00000009278,  3.80308677009,    25558.21217647960},
1441     {     0.00000006562,  3.13520633691,      416.77633088950},
1442     {     0.00000006567,  4.01934954352,        0.11187458460},
1443     {     0.00000007032,  4.14454482953,      326.86812094890},
1444     {     0.00000008384,  5.49363770202,      532.61172640140},
1445     {     0.00000007471,  4.62144262894,      526.98265210890},
1446     {     0.00000007500,  0.61545750834,      485.92885516430},
1447     {     0.00000007716,  1.04880061527,      525.23754696970},
1448     {     0.00000008504,  2.79350586429,    10139.98842035200},
1449     {     0.00000008006,  5.70274817349,      209.10630974400},
1450     {     0.00000007580,  5.07865976334,      157.63995198190},
1451     {     0.00000007186,  6.22843514949,       77.22927912210},
1452     {     0.00000007754,  4.25725025641,      418.26080359780},
1453     {     0.00000007784,  1.89308086046,      984.60033162190},
1454     {     0.00000006060,  4.25541364939,       36.12729806770},
1455     {     0.00000006513,  0.07498932215,       79.88940799800},
1456     {     0.00000006050,  2.97979060439,       36.69674703930},
1457     {     0.00000007265,  4.94483532763,      131.40394986990},
1458     {     0.00000006984,  2.53239305821,      497.18700374930},
1459     {     0.00000007824,  2.31462643851,      513.07988101300},
1460     {     0.00000007175,  3.69203633127,      524.01370669230},
1461     {     0.00000006855,  0.14076801572,      283.62727588040},
1462     {     0.00000007476,  5.27896188334,      259.50888592310},
1463     {     0.00000006922,  3.36515011915,      438.29828244570},
1464     {     0.00000007349,  3.50406958122,      500.15594916590},
1465     {     0.00000006301,  0.14776691217,      608.87779767700},
1466     {     0.00000005892,  4.24403528888,        4.66586644600},
1467     {     0.00000005995,  4.84848023982,      215.43795945210},
1468     {     0.00000007128,  5.92696788834,      482.95990974770},
1469     {     0.00000006829,  1.01745137848,     1543.82631264520},
1470     {     0.00000006817,  6.12162829690,      395.05743737720},
1471     {     0.00000005369,  3.76855960849,    52099.54021187280},
1472     {     0.00000005776,  5.61434462641,      987.56927703850},
1473     {     0.00000007523,  5.60432148128,     2810.92146160520},
1474     {     0.00000007329,  3.76816058312,     1512.80682400820},
1475     {     0.00000005616,  2.13874186970,      145.63104387150},
1476     {     0.00000005260,  0.35171132812,       36.60037881970},
1477     {     0.00000005366,  2.33827486119,       65.22037101170},
1478     {     0.00000005688,  1.82274388581,     1227.43444298860},
1479     {     0.00000005658,  2.35049199704,        5.62907429250},
1480     {     0.00000006135,  4.23390394127,      496.01134758170},
1481     {     0.00000006472,  3.49494191669,      552.69738935910},
1482     {     0.00000004983,  3.91958511552,    10135.53500222710},
1483     {     0.00000005071,  2.99193131986,      313.68355667090},
1484     {     0.00000005964,  5.70758449643,      309.79958751760},
1485     {     0.00000004830,  1.15390722082,      134.06407874580},
1486     {     0.00000005091,  6.00974510144,     1409.71404978960},
1487     {     0.00000005205,  5.50271334510,      238.90195810360},
1488     {     0.00000005330,  0.31491843987,      319.31263096340},
1489     {     0.00000004943,  1.43051344597,      422.40540518200},
1490     {     0.00000005604,  2.05669305961,      207.36120460480},
1491     {     0.00000006310,  5.22966882627,      139.74133714810},
1492     {     0.00000004773,  3.06677020431,      464.73122651380},
1493     {     0.00000004867,  1.45874544328,       49.17873590170},
1494     {     0.00000004919,  3.57280542629,    52175.80628314840},
1495     {     0.00000006330,  5.80748895304,       57.25549074900},
1496     {     0.00000004762,  5.90654311203,      838.96928775040},
1497     {     0.00000004848,  0.77467099227,        1.69692102940},
1498     {     0.00000005694,  0.77313415569,      709.96483432550},
1499     {     0.00000005455,  0.90288890561,      208.84567731310},
1500     {     0.00000004901,  3.79986913631,       15.49911838880},
1501     {     0.00000004772,  0.15755140037,       39.50563376150},
1502     {     0.00000005673,  2.68359159067,     1127.26243007680},
1503     {     0.00000005477,  0.53123497431,      113.87784205160},
1504     {     0.00000005077,  1.59268428609,     1547.97091422940},
1505     {     0.00000004981,  1.44584050478,        1.27202438720},
1506     {     0.00000005938,  0.96886308551,     6280.10690457480},
1507     {     0.00000005206,  3.58003819370,      474.94684537520},
1508     {     0.00000005256,  0.61005270999,       95.97922721780},
1509     {     0.00000005531,  5.28764137194,       36.76043751410},
1510     {     0.00000005938,  0.65008179576,        6.90109867970},
1511     {     0.00000006158,  5.73176703797,      711.44930703380},
1512     {     0.00000005150,  5.58407480282,    26049.77010593640},
1513     {     0.00000005138,  4.55234158942,      670.91677495100},
1514     {     0.00000005609,  4.37272759780,       52.80207262410},
1515     {     0.00000005636,  2.39183054397,    10210.31660079440},
1516     {     0.00000005004,  4.99992587162,      421.22974901440},
1517     {     0.00000004512,  2.59978208967,     1234.54798998940},
1518     {     0.00000004314,  3.38846714337,      142.66209845490},
1519     {     0.00000004471,  3.94378336812,    12566.15169998280},
1520     {     0.00000005296,  1.12249063176,      134.11226285560},
1521     {     0.00000004188,  2.52490407427,     6205.32530600750},
1522     {     0.00000004645,  1.90644271528,    13324.31667116140},
1523     {     0.00000004501,  2.01956232903,      315.16802937920},
1524     {     0.00000004177,  2.09489065926,      803.75701341940},
1525     {     0.00000004675,  2.19237385948,      501.64042187420},
1526     {     0.00000005296,  3.88249567974,     2118.76386037840},
1527     {     0.00000005325,  4.28221258353,      477.91579079180},
1528     {     0.00000005519,  0.09960657331,      600.01914553700},
1529     {     0.00000004179,  0.14619703083,     6644.57629047010},
1530     {     0.00000004490,  1.07042724999,    52139.15772021889},
1531     {     0.00000003970,  6.13227798578,     1553.90880506260},
1532     {     0.00000005183,  3.52837189121,      110.20632121940},
1533     {     0.00000005259,  6.20809827528,      142.71028256470},
1534     {     0.00000004183,  5.17141470503,        3.62333672240},
1535     {     0.00000004196,  0.14530465304,       65.87476231750},
1536     {     0.00000003869,  5.25125030487,     1558.05340664680},
1537     {     0.00000004457,  2.10247889113,      487.10451133190},
1538     {     0.00000004893,  1.83678005941,       46.51860702580},
1539     {     0.00000003875,  5.60271074608,      385.49620982160},
1540     {     0.00000003826,  1.30946706974,     2176.61005195840},
1541     {     0.00000004591,  4.84657580441,     1337.64076420800},
1542     {     0.00000003928,  4.81049906938,       91.78644152380},
1543     {     0.00000005111,  1.18808726579,      981.63138620530},
1544     {     0.00000004709,  1.40878215308,    52213.93931878620},
1545     {     0.00000003891,  5.43661875415,      154.67100656530},
1546     {     0.00000004145,  4.32505910718,      363.51668387840},
1547     {     0.00000003926,  1.42639045134,       70.84944530420},
1548     {     0.00000004040,  5.26121759460,       80.71948940050},
1549     {     0.00000003885,  1.55337878207,      310.71461125430},
1550     {     0.00000004787,  3.65822147476,      589.34595228860},
1551     {     0.00000004020,  5.45643059988,     6641.60734505350},
1552     {     0.00000004288,  3.35265955957,      203.21660302060},
1553     {     0.00000004462,  2.86966056442,      353.04043258610},
1554     {     0.00000004657,  3.60514658478,      187.69623277240},
1555     {     0.00000003767,  0.05292047125,      320.27583880990},
1556     {     0.00000004632,  0.82011276589,     3265.83082813250},
1557     {     0.00000004555,  5.30391170376,    26013.12154300690},
1558     {     0.00000003555,  4.80240768951,      224.34479570190},
1559     {     0.00000003967,  1.01381988824,       75.74480641380},
1560     {     0.00000004302,  1.60914544159,    12529.50313705330},
1561     {     0.00000003493,  4.75315651083,    12489.88562870720},
1562     {     0.00000003722,  0.27433061822,      949.43624140070},
1563     {     0.00000003722,  4.61537211162,     1025.70231267630},
1564     {     0.00000004234,  5.25112033465,      194.28851491140},
1565     {     0.00000004796,  6.21059766333,      491.81856188770},
1566     {     0.00000003639,  1.25605018211,     2603.20824283440},
1567     {     0.00000004646,  5.71392664345,      321.76031151820},
1568     {     0.00000004523,  4.62812608060,      179.61947792510},
1569     {     0.00000003702,  2.08952561657,      491.03666459500},
1570     {     0.00000003433,  5.69102402866,      419.48464387520},
1571     {     0.00000003672,  2.87489628704,      497.49582029000},
1572     {     0.00000003428,  5.70553310685,      491.66980404140},
1573     {     0.00000004513,  4.38931096340,      425.11371816770},
1574     {     0.00000003404,  0.57791231752,      491.44605487220},
1575     {     0.00000003853,  0.61321572401,    12526.53419163670},
1576     {     0.00000003788,  3.32221995840,     3140.01275492980},
1577     {     0.00000003781,  5.58125317044,     1652.54816115630},
1578     {     0.00000003903,  5.31609723466,      408.17831118040},
1579     {     0.00000003945,  3.60558877186,     1589.07289528380},
1580     {     0.00000004299,  5.24473992747,      296.15744885260},
1581     {     0.00000004084,  0.83813879869,       52.36012963940},
1582     {     0.00000004084,  3.50290269471,       23.90594163620},
1583     {     0.00000004552,  1.80974055684,       73.55775828990},
1584     {     0.00000003336,  2.41413678320,       67.88049988760},
1585     {     0.00000003636,  5.31067380234,      141.48644228730},
1586     {     0.00000003345,  3.94392179077,    20389.92252949249},
1587     {     0.00000004639,  6.24618220184,      821.39499582230},
1588     {     0.00000003934,  0.26992234338,     1655.51710657290},
1589     {     0.00000004431,  2.48647437800,      549.72844394250},
1590     {     0.00000004168,  5.39993754642,      236.50246165860},
1591     {     0.00000003316,  0.82217489269,      305.08553696180},
1592     {     0.00000004524,  5.52532381522,      487.41332787260},
1593     {     0.00000004020,  0.07393243012,    52136.18877480229},
1594     {     0.00000003275,  0.98533127454,     1344.75431120880},
1595     {     0.00000003213,  2.97105590703,    20386.95358407589},
1596     {     0.00000004065,  5.41027187466,      332.80601178210},
1597     {     0.00000003183,  2.98783802386,      499.63468430410},
1598     {     0.00000004428,  0.06728869735,      491.29729702590},
1599     {     0.00000004063,  0.06192838570,     6168.67674307800},
1600     {     0.00000003530,  3.13717614844,      347.36317418380},
1601     {     0.00000003917,  1.33801660176,     1054.92851206430},
1602     {     0.00000003917,  5.67905809516,     1131.19458333990},
1603     {     0.00000003833,  0.87811168267,       52.69019803950},
1604     {     0.00000004020,  2.69209723289,     1439.46151403940},
1605     {     0.00000003424,  1.03296737020,      481.47543703940},
1606     {     0.00000003159,  1.04693380342,      703.37255218650},
1607     {     0.00000003364,  2.18084331708,       32.50396134530},
1608     {     0.00000003258,  4.65131076542,      696.25900518570},
1609     {     0.00000003427,  0.27003884843,     2389.90914739640},
1610     {     0.00000004349,  0.07531141761,    20426.57109242200},
1611     {     0.00000003383,  5.61838426864,      699.22795060230},
1612     {     0.00000003305,  1.41666877290,      562.14674233010},
1613     {     0.00000003297,  5.46677712589,     1442.21801113490},
1614     {     0.00000003277,  2.71815883511,      980.14691349700},
1615     {     0.00000003171,  4.49510885866,     1439.24906571830},
1616     {     0.00000004175,  4.24327636055,      381.61224066830},
1617     {     0.00000003155,  3.40776789576,       39.72938293070},
1618     {     0.00000004112,  0.90309319273,     1087.69310584050},
1619     {     0.00000003050,  5.01538526352,        8.90683624980},
1620     {     0.00000003725,  1.52448613082,     1058.10990580200},
1621     {     0.00000003650,  3.59798316565,      192.80404220310},
1622     {     0.00000003837,  1.48519528444,    10098.88643929760},
1623     {     0.00000002959,  1.23012121982,     2500.11546861580},
1624     {     0.00000003330,  6.12470287875,    10172.18356515660},
1625     {     0.00000003361,  4.31837298696,      492.07919431860},
1626     {     0.00000003294,  2.52694043155,     1692.16566950240},
1627     {     0.00000003013,  0.92957285991,     1515.77576942480},
1628     {     0.00000003403,  1.10932483984,      987.30864460760},
1629     {     0.00000003312,  0.67710158807,      977.48678462110},
1630     {     0.00000003030,  1.77996261146,   156489.28581380738},
1631     {     0.00000003605,  4.89955108152,     1043.88281180040},
1632     {     0.00000003276,  4.26765608367,     1189.30140735080},
1633     {     0.00000002966,  5.29808076929,       31.98269648350},
1634     {     0.00000002994,  2.58599359402,      178.08682110700},
1635     {     0.00000003905,  1.87748122254,     1158.28191871380},
1636     {     0.00000003110,  3.09203517638,      235.93301268700},
1637     {     0.00000003313,  2.70308129756,      604.47256366190},
1638     {     0.00000003276,  1.24440460327,      874.65464283340},
1639     {     0.00000003276,  5.58544609667,      950.92071410900},
1640     {     0.00000002863,  5.30797202030,      449.23210812500},
1641     {     0.00000003746,  0.33859914037,      913.96333463880},
1642     {     0.00000003552,  3.07180917863,      240.38643081190},
1643     {     0.00000002885,  6.01129889094,     1097.51496582700},
1644     {     0.00000003643,  5.11977873355,      452.20105354160},
1645     {     0.00000002761,  4.05534163585,     6283.07584999140},
1646     {     0.00000003226,  4.76711354367,     6241.97386893700},
1647     {     0.00000002988,  5.62906786113,      140.65636088480},
1648     {     0.00000003748,  4.84009347869,      341.73409989130},
1649     {     0.00000003847,  2.40982343643,    26086.41866886590},
1650     {     0.00000002702,  3.72061244391,      946.46729598410},
1651     {     0.00000002846,  4.90997675486,      488.84961647110},
1652     {     0.00000002723,  4.37517047024,       15.19030184810},
1653     {     0.00000002847,  5.22951186538,      661.04673085470},
1654     {     0.00000002680,  4.19379121323,       13.18456427800},
1655     {     0.00000003269,  0.43119778520,      496.97455542820},
1656     {     0.00000002878,  5.00361557843,      252.08652238160},
1657     {     0.00000003489,  3.82213189319,      625.99451521810},
1658     {     0.00000003742,  2.03372773652,        8.59801970910},
1659     {     0.00000003341,  2.91360557418,      304.23420369990},
1660     {     0.00000002915,  2.63627684599,     6681.22485339960},
1661     {     0.00000002915,  1.43773625890,     6604.95878212400},
1662     {     0.00000002629,  2.09824407450,     2713.41456405380},
1663     {     0.00000002901,  3.33924800230,      515.46387109300},
1664     {     0.00000002803,  1.23584865903,     6643.09181776180},
1665     {     0.00000002621,  3.27309087943,      483.48117460950},
1666     {     0.00000003045,  3.33515866438,      921.07688163960},
1667     {     0.00000002699,  5.42597794650,      925.26966733360},
1668     {     0.00000002808,  5.77870303237,     1024.21783996800},
1669     {     0.00000003028,  3.75501312393,      511.59540830470},
1670     {     0.00000003090,  2.49453093252,       14.66903698630},
1671     {     0.00000002630,  0.62190616803,      990.22940591440},
1672     {     0.00000002913,  4.83296711477,      515.93695184500},
1673     {     0.00000003139,  5.99134254710,      570.74476203920},
1674     {     0.00000002752,  3.08268180744,      853.19638175200},
1675     {     0.00000002643,  1.99093797444,      470.21728845440},
1676     {     0.00000002763,  4.01095972177,      448.97147569410},
1677     {     0.00000003426,  4.73955481174,     1050.99635880120},
1678     {     0.00000002613,  5.04769883328,      175.21424391000},
1679     {     0.00000003080,  1.08651068269,      260.99335863140},
1680     {     0.00000002605,  1.78290020063,      175.11787569040},
1681     {     0.00000002573,  2.01267457287,     1514.29129671650},
1682     {     0.00000002633,  1.63639954931,      170.71264167530},
1683     {     0.00000003025,  5.51446170055,      369.45457471160},
1684     {     0.00000002490,  0.15301603966,    78187.44335344699},
1685     {     0.00000002589,  0.79196093766,     1228.91891569690},
1686     {     0.00000003493,  3.88006738730,      495.70253104100},
1687     {     0.00000003143,  5.33170343283,     1542.34183993690},
1688     {     0.00000002816,  3.74486418363,        2.00573757010},
1689     {     0.00000003062,  4.88018345098,      227.96813242430},
1690     {     0.00000002971,  1.27359129352,      530.91480537200},
1691     {     0.00000003329,  2.71693827722,      171.02145821600},
1692     {     0.00000002648,  0.60304386920,       70.58881287330},
1693     {     0.00000003061,  5.05044834864,      378.64329525170},
1694     {     0.00000002738,  4.75405645015,      151.26011816400},
1695     {     0.00000002727,  5.89140709596,      213.95348674380},
1696     {     0.00000003411,  2.24137878065,      734.45573129830},
1697     {     0.00000002623,  0.54340876464,     1586.10394986720},
1698     {     0.00000003169,  5.84871429991,     1049.51188609290},
1699     {     0.00000002430,  2.34597429597,      450.45594840240},
1700     {     0.00000002907,  5.58085498481,      597.57146498220},
1701     {     0.00000003060,  5.27973140962,      523.75307426140},
1702     {     0.00000003300,  0.94221473935,       58.17051448570},
1703     {     0.00000002606,  4.76989264753,      391.43410065480},
1704     {     0.00000003175,  2.32600231924,      339.28641933650},
1705     {     0.00000003112,  4.24784219323,     1615.89959822680},
1706     {     0.00000003340,  1.36950315448,      384.27236954420},
1707     {     0.00000003301,  5.83023910521,       51.77517430280},
1708     {     0.00000002415,  0.69446923670,      489.55219188670},
1709     {     0.00000003310,  5.55595218696,      674.80074410430},
1710     {     0.00000002736,  5.74320864965,     1167.84314626940},
1711     {     0.00000002956,  5.22962139507,      199.85389872910},
1712     {     0.00000003262,  0.01501002027,     1545.31078535350},
1713     {     0.00000002506,  4.84043333582,      943.49835056750},
1714     {     0.00000003240,  2.46676155925,     1016.79547642650},
1715     {     0.00000003148,  4.62079057738,      233.53351624200},
1716     {     0.00000002327,  4.10421417326,       70.11573212130},
1717     {     0.00000002371,  4.79963943424,      271.14528701800},
1718     {     0.00000003006,  3.66877796077,     1476.15826107870},
1719     {     0.00000003033,  0.67157488690,      292.48592802040},
1720     {     0.00000002344,  1.83547256266,      492.30868898220},
1721     {     0.00000003117,  2.76268894894,     1473.18931566210},
1722     {     0.00000002323,  2.88799980853,      533.62311835770},
1723     {     0.00000002340,  4.44862573253,      490.80716993140},
1724     {     0.00000002919,  4.75889516601,     1511.32235129990},
1725     {     0.00000002493,  6.10541658597,     1225.94997028030},
1726     {     0.00000002691,  3.20679023131,      463.50738623640},
1727     {     0.00000002291,  5.81535163158,      246.97871295090},
1728     {     0.00000002319,  6.05514281470,      525.75881183150},
1729     {     0.00000003112,  0.89712836583,      314.90739694830},
1730     {     0.00000003085,  5.84605938859,     1192.22216865760},
1731     {     0.00000002897,  0.54747024257,    20350.30502114640},
1732     {     0.00000002469,  3.75373347656,      494.00561001160},
1733     {     0.00000003067,  2.22210324061,      248.46318565920},
1734     {     0.00000002252,  0.87483094907,       61.02758531770},
1735     {     0.00000002392,  3.62837597194,      439.19779981740},
1736     {     0.00000002817,  2.73562306571,       16.67477455640},
1737     {     0.00000002379,  6.17876088396,      467.65198782060},
1738     {     0.00000002607,  4.82656583469,      384.58118608490},
1739     {     0.00000002718,  1.01823841209,      215.95922431390},
1740     {     0.00000002998,  1.09755715300,     1964.74724511890},
1741     {     0.00000002883,  2.97813866507,      383.09671337660},
1742     {     0.00000002529,  5.81554218602,     1587.58842257550},
1743     {     0.00000002203,  2.23336308907,      481.26298871830},
1744     {     0.00000002260,  2.35404913660,      659.61044225620},
1745     {     0.00000002173,  4.95048919972,       76.78733613740},
1746     {     0.00000002491,  1.70236357070,      445.34813897170},
1747     {     0.00000002164,  4.91477263756,      249.94765836750},
1748     {     0.00000002289,  1.18497528002,     1552.42433235430},
1749     {     0.00000002975,  0.48272389481,     1052.48083150950},
1750     {     0.00000002339,  0.75318738767,      478.81530816350},
1751     {     0.00000003011,  0.16359500858,       54.28654533240},
1752     {     0.00000003011,  1.03494557852,       21.97952594320},
1753 };
1754 
1755 
1756 static const struct ln_vsop neptune_radius_r1[RADIUS_R1] = {
1757     {     0.00236338618,  0.70497954792,       38.13303563780},
1758     {     0.00013220034,  3.32014387930,        1.48447270830},
1759     {     0.00008621779,  6.21626927537,       35.16409022120},
1760     {     0.00002701587,  1.88124996531,       39.61750834610},
1761     {     0.00002153060,  5.16877044933,       76.26607127560},
1762     {     0.00002154170,  2.09430333390,        2.96894541660},
1763     {     0.00001463314,  1.18410155089,       33.67961751290},
1764     {     0.00001603164,  0.00000000000,        0.00000000000},
1765     {     0.00001135663,  3.91905853528,       36.64856292950},
1766     {     0.00000897650,  5.24122933533,      388.46515523820},
1767     {     0.00000789359,  0.53295000718,      168.05251279940},
1768     {     0.00000760030,  0.02051033644,      182.27960680100},
1769     {     0.00000607183,  1.07706500350,     1021.24889455140},
1770     {     0.00000571622,  3.40060785432,      484.44438245600},
1771     {     0.00000560790,  2.88685815667,      498.67147645760},
1772     {     0.00000489973,  3.46822250901,      137.03302416240},
1773     {     0.00000264197,  0.86149368602,        4.45341812490},
1774     {     0.00000270304,  3.27489604455,       71.81265315070},
1775     {     0.00000203512,  2.41823214253,       32.19514480460},
1776     {     0.00000155180,  0.36515053081,       41.10198105440},
1777     {     0.00000132766,  3.60157672619,        9.56122755560},
1778     {     0.00000093942,  0.66658493388,       46.20979048510},
1779     {     0.00000083697,  3.26305475932,       98.89998852460},
1780     {     0.00000072205,  4.47717435693,      601.76425067620},
1781     {     0.00000068777,  1.46946530374,       74.78159856730},
1782     {     0.00000086953,  5.77228651853,      381.35160823740},
1783     {     0.00000068138,  4.52508272214,       70.32818044240},
1784     {     0.00000065250,  3.85934463923,       73.29712585900},
1785     {     0.00000068370,  3.39513994400,      108.46121608020},
1786     {     0.00000053375,  5.43650770516,      395.57870223900},
1787     {     0.00000043910,  3.61564394950,        2.44768055480},
1788     {     0.00000041546,  4.74846317654,        8.07675484730},
1789     {     0.00000048724,  1.98932271543,      175.16605980020},
1790     {     0.00000041744,  4.94257598763,       31.01948863700},
1791     {     0.00000044102,  1.41744904844,     1550.93985964600},
1792     {     0.00000041170,  1.41999405024,      490.07345674850},
1793     {     0.00000041099,  4.86312668872,      493.04240216510},
1794     {     0.00000036267,  5.30764043577,      312.19908396260},
1795     {     0.00000036321,  0.38296932117,       77.75054398390},
1796     {     0.00000040928,  2.27526815371,      529.69096509460},
1797     {     0.00000032141,  5.91285874340,        5.93789083320},
1798     {     0.00000031197,  2.70549944134,     1014.13534755060},
1799     {     0.00000032730,  5.22147683115,       41.05379694460},
1800     {     0.00000036035,  4.88125211442,      491.55792945680},
1801     {     0.00000029991,  3.30769367603,     1028.36244155220},
1802     {     0.00000029424,  3.63261469286,       30.71067209630},
1803     {     0.00000027478,  1.76175718511,       44.72531777680},
1804     {     0.00000027676,  4.54801642564,        7.11354700080},
1805     {     0.00000027475,  0.97228280623,       33.94024994380},
1806     {     0.00000024944,  3.10083196356,      144.14657116320},
1807     {     0.00000025956,  2.99728316628,       60.76695288680},
1808     {     0.00000021401,  0.68033795793,      251.43213107580},
1809     {     0.00000021369,  4.71270048898,      278.25883401880},
1810     {     0.00000023818,  5.11019967861,      176.65053250850},
1811     {     0.00000024486,  3.56527493795,      145.10977900970},
1812     {     0.00000023379,  1.65568321349,      173.68158709190},
1813     {     0.00000027004,  4.13984627053,      453.42489381900},
1814     {     0.00000020725,  0.89222104366,        4.19278569400},
1815     {     0.00000019795,  5.61602288526,       24.11838995730},
1816     {     0.00000023863,  0.99001670827,      213.29909543800},
1817     {     0.00000018408,  1.98233778039,       72.07328558160},
1818     {     0.00000018266,  6.17260374467,      189.39315380180},
1819     {     0.00000018960,  4.66648698212,      106.97674337190},
1820     {     0.00000017705,  1.59531409128,       62.25142559510},
1821     {     0.00000015648,  3.64570115017,        0.52126486180},
1822     {     0.00000016368,  1.70913999198,      357.44566660120},
1823     {     0.00000020132,  3.29521961100,      114.39910691340},
1824     {     0.00000015425,  4.38812302799,       25.60286266560},
1825     {     0.00000018932,  2.21630439663,      343.21857259960},
1826     {     0.00000014031,  0.55320290294,      129.91947716160},
1827     {     0.00000014328,  5.84024214567,       68.84370773410},
1828     {     0.00000015466,  4.20417846946,      567.82400073240},
1829     {     0.00000012746,  3.52815836608,      477.33083545520},
1830     {     0.00000011724,  5.57647263460,       31.23193695810},
1831     {     0.00000011533,  0.89138506506,      594.65070367540},
1832     {     0.00000010508,  4.35552732772,       32.71640966640},
1833     {     0.00000010777,  5.30551078064,        2.92076130680},
1834     {     0.00000010826,  5.21826226871,       26.82670294300},
1835     {     0.00000010084,  1.98102236804,       40.58071619260},
1836     {     0.00000011686,  5.14865195162,       42.58645376270},
1837     {     0.00000009207,  0.50092534158,       64.95973858080},
1838     {     0.00000009084,  5.86031317808,        6.59228213900},
1839     {     0.00000009231,  0.68180977710,      160.93896579860},
1840     {     0.00000010114,  4.51164596686,       28.57180808220},
1841     {     0.00000008350,  2.82449631025,       43.24084506850},
1842     {     0.00000009592,  3.76289614986,      181.75834193920},
1843     {     0.00000009969,  1.45995045237,       47.69426319340},
1844     {     0.00000007946,  2.40126769187,       11.04570026390},
1845     {     0.00000007629,  1.57125741752,      135.54855145410},
1846     {     0.00000007645,  4.07503370297,      389.94962794650},
1847     {     0.00000008004,  2.78082277326,      505.78502345840},
1848     {     0.00000009450,  0.27241260289,      426.59819087600},
1849     {     0.00000007192,  0.82841201068,      911.04257333200},
1850     {     0.00000006981,  1.86764180939,      206.18554843720},
1851     {     0.00000007897,  1.86554246391,       38.65430049960},
1852     {     0.00000006766,  0.85749934506,       82.85835341460},
1853     {     0.00000006357,  0.90093123522,      487.36514376280},
1854     {     0.00000006720,  1.33936767947,      220.41264243880},
1855     {     0.00000006344,  4.04005545219,       12.53017297220},
1856     {     0.00000007695,  5.13312500855,       23.90594163620},
1857     {     0.00000007059,  5.99832463478,      639.89728631400},
1858     {     0.00000008302,  3.85960902325,       37.61177077600},
1859     {     0.00000006412,  2.41743840961,     1059.38193018920},
1860     {     0.00000006751,  1.96860894470,       45.24658263860},
1861     {     0.00000006301,  4.04821192714,       35.68535508300},
1862     {     0.00000005517,  3.81325790890,      815.06334611420},
1863     {     0.00000005562,  0.41619602113,      563.63121503840},
1864     {     0.00000006115,  2.10934525342,      697.74347789400},
1865     {     0.00000006216,  4.79301628209,      143.62530630140},
1866     {     0.00000005346,  3.13071964722,      386.98068252990},
1867     {     0.00000006866,  0.62766858525,      350.33211960040},
1868     {     0.00000005245,  6.06245070403,      171.23390653710},
1869     {     0.00000005129,  0.79394555531,      179.09821306330},
1870     {     0.00000005099,  2.96677243218,       27.08733537390},
1871     {     0.00000005169,  6.18160132142,       63.73589830340},
1872     {     0.00000005168,  4.73765536370,      522.57741809380},
1873     {     0.00000005006,  2.37645082899,       77.22927912210},
1874     {     0.00000005005,  4.70632786719,      460.53844081980},
1875     {     0.00000005167,  5.20246890403,      446.31134681820},
1876     {     0.00000005119,  2.17338058771,      494.73932319450},
1877     {     0.00000005025,  4.21265519443,      536.80451209540},
1878     {     0.00000005125,  5.38138329172,      179.31066138440},
1879     {     0.00000004918,  4.09031782903,      488.37653571910},
1880     {     0.00000004711,  5.56542374115,       42.32582133180},
1881     {     0.00000004459,  1.30784829830,       69.36497259590},
1882     {     0.00000005485,  3.88088464259,      218.40690486870},
1883     {     0.00000004419,  4.22946309121,        5.41662597140},
1884     {     0.00000004559,  4.92224120952,      285.37238101960},
1885     {     0.00000004687,  2.21401153210,     1029.84691426050},
1886     {     0.00000004644,  1.87902594973,     1433.61999142580},
1887     {     0.00000005639,  3.05597013393,      983.11585891360},
1888     {     0.00000004317,  1.37172516583,        0.96320784650},
1889     {     0.00000004385,  2.35709104539,       84.34282612290},
1890     {     0.00000004430,  3.37768805833,      377.41945497430},
1891     {     0.00000004681,  2.14249250241,       97.41551581630},
1892     {     0.00000005845,  4.62301099402,     1024.21783996800},
1893     {     0.00000005769,  5.71579471638,      351.81659230870},
1894     {     0.00000004454,  5.20355311714,      274.06604832480},
1895     {     0.00000004398,  5.65312496227,        3.93215326310},
1896     {     0.00000004287,  0.66340266603,     1012.65087484230},
1897     {     0.00000004086,  0.14551174994,      385.28376150050},
1898     {     0.00000004029,  5.98399329775,      178.34745353790},
1899     {     0.00000004276,  3.68205082970,      348.84764689210},
1900     {     0.00000004012,  0.42559540783,   104313.47953065898},
1901     {     0.00000004309,  3.04099090488,      100.38446123290},
1902     {     0.00000003957,  0.86846121055,      171.98466606250},
1903     {     0.00000003961,  3.04953080906,     1017.31674128830},
1904     {     0.00000005559,  0.77714806229,     1447.84708542740},
1905     {     0.00000005071,  2.61075526868,     1536.71276564440},
1906     {     0.00000004225,  2.45845211305,      496.01134758170},
1907     {     0.00000004052,  5.00014006312,      391.64654897590},
1908     {     0.00000003763,  4.29449373755,      313.68355667090},
1909     {     0.00000004038,  2.82857942788,     1661.14618086540},
1910     {     0.00000004067,  5.73169928960,      169.53698550770},
1911     {     0.00000004826,  3.75589264710,      379.86713552910},
1912     {     0.00000004296,  5.90228488768,      142.14083359310},
1913     {     0.00000003721,  1.20062375429,     1026.87796884390},
1914     {     0.00000003929,  3.94354033755,       39.09624348430},
1915     {     0.00000004728,  4.73892221737,      382.83608094570},
1916     {     0.00000003489,  4.28865448963,     1025.18104781450},
1917     {     0.00000003714,  5.05021268365,      292.48592802040},
1918     {     0.00000003988,  2.82832650224,      134.11226285560},
1919     {     0.00000003471,  4.98900354066,       69.15252427480},
1920     {     0.00000003528,  2.80271543681,       14.01464568050},
1921     {     0.00000003745,  4.24728135115,      180.79513409270},
1922     {     0.00000003836,  1.02685786071,     1018.27994913480},
1923     {     0.00000003941,  5.21895739331,      183.76407950930},
1924     {     0.00000003780,  6.03723468132,     1022.73336725970},
1925     {     0.00000003647,  3.98130320367,      608.87779767700},
1926     {     0.00000003456,  5.54052355058,      846.08283475120},
1927     {     0.00000004047,  3.71041480907,     1018.06750081370},
1928     {     0.00000003865,  4.76002199091,      166.56804009110},
1929     {     0.00000003629,  3.29053233846,      447.79581952650},
1930     {     0.00000003337,  0.47308019225,       79.18683258240},
1931     {     0.00000003304,  1.49289552229,     1505.69327700740},
1932     {     0.00000003615,  3.68096122231,      494.52687487340},
1933     {     0.00000003209,  0.29676849415,       22.63391724900},
1934     {     0.00000003280,  3.62226152032,      531.17543780290},
1935     {     0.00000003337,  2.72502876320,      481.47543703940},
1936     {     0.00000003187,  0.08677634706,      399.51085550210},
1937     {     0.00000003389,  1.79454271219,     1519.92037100900},
1938     {     0.00000003154,  3.69356460843,      470.21728845440},
1939     {     0.00000003706,  2.79048710497,      462.02291352810},
1940     {     0.00000003682,  2.45952306167,      106.01353552540},
1941     {     0.00000003136,  4.38015969606,      385.49620982160},
1942     {     0.00000004279,  4.35633788890,     1066.49547719000},
1943     {     0.00000003392,  0.48037804731,      521.09294538550},
1944     {     0.00000003465,  0.93152295589,     2183.72359895920},
1945     {     0.00000003735,  0.98809808606,      487.41332787260},
1946     {     0.00000003285,  4.36830516894,      397.06317494730},
1947     {     0.00000003998,  3.38773325131,     6283.07584999140},
1948     {     0.00000002998,  2.61728063127,      487.62577619370},
1949     {     0.00000003295,  2.53821501556,        4.66586644600},
1950     {     0.00000002964,  3.66274645375,      495.49008271990},
1951     {     0.00000003901,  1.65463736406,      210.33015002140},
1952     {     0.00000002950,  1.99904237956,      872.90953769420},
1953     {     0.00000002936,  3.39722203959,      423.62924545940},
1954     {     0.00000003121,  5.89456985534,      105.49227066360},
1955     {     0.00000003904,  3.01022809543,      556.51766803760},
1956     {     0.00000003801,  4.23636257679,     1052.26838318840},
1957     {     0.00000002930,  6.15005257333,      164.12035953630},
1958     {     0.00000003267,  4.19718045293,      518.38463239980},
1959     {     0.00000003946,  2.88842759670,      151.26011816400},
1960     {     0.00000002823,  0.60712626756,      214.78356814630},
1961     {     0.00000002826,  2.91070227143,      391.43410065480},
1962     {     0.00000003347,  6.09373507569,     6246.42728706190},
1963     {     0.00000002792,  0.55248135990,        5.10780943070},
1964     {     0.00000003470,  5.06081504795,       79.23501669220},
1965     {     0.00000003010,  0.24656411754,       91.78644152380},
1966     {     0.00000002861,  6.17465663902,      422.40540518200},
1967     {     0.00000002989,  2.31620917965,      485.92885516430},
1968     {     0.00000003088,  2.29186342974,      110.20632121940},
1969     {     0.00000003030,  3.69866149100,      532.61172640140},
1970     {     0.00000003148,  6.25285869266,      535.32003938710},
1971     {     0.00000003020,  2.36422658177,      290.21955801940},
1972     {     0.00000002730,  3.34082732623,      394.09422953070},
1973     {     0.00000003170,  1.23078934548,    10176.63698328150},
1974     {     0.00000002673,  6.03366372927,      196.50670080260},
1975     {     0.00000002635,  3.39631667641,      148.07872442630},
1976     {     0.00000002838,  2.85241236576,      138.51749687070},
1977     {     0.00000002630,  0.46957619348,     1970.42450352120},
1978     {     0.00000002599,  4.86022081674,      439.19779981740},
1979     {     0.00000002878,  2.61946597178,      488.58898404020},
1980     {     0.00000002720,  1.71836225398,      364.55921360200},
1981     {     0.00000003053,  2.49346960035,     6243.45834164530},
1982     {     0.00000003332,  3.25113612987,       30.05628079050},
1983     {     0.00000003062,  6.23776299874,      419.48464387520},
1984     {     0.00000002786,  0.83078219939,      497.18700374930},
1985     {     0.00000002834,  3.52926079424,      457.87831194390},
1986     {     0.00000002932,  1.80245810977,      500.15594916590},
1987     {     0.00000002613,  0.97430899059,      244.31858407500},
1988     {     0.00000003030,  5.10152500393,      367.97010200330},
1989     {     0.00000002956,  5.76230870725,      986.08480433020},
1990     {     0.00000002658,  0.88044044504,      109.94568878850},
1991     {     0.00000003116,  2.20042242739,      495.70253104100},
1992     {     0.00000002554,  0.65945973992,       67.35923502580},
1993     {     0.00000002901,  3.91891656185,    10173.66803786490},
1994     {     0.00000002840,  1.34453183591,      482.95990974770},
1995     {     0.00000002458,  1.20012815574,      489.11024890200},
1996     {     0.00000002556,  3.86921927085,      487.10451133190},
1997     {     0.00000002614,  1.51881085312,      463.50738623640},
1998     {     0.00000002386,  4.58400538443,      615.99134467780},
1999     {     0.00000002438,  5.19827220476,      501.11915701240},
2000     {     0.00000002537,  1.64802783144,      519.60847267720},
2001     {     0.00000002444,  3.87859489652,      185.24855221760},
2002     {     0.00000002262,  5.79112288939,      605.95703637020},
2003     {     0.00000002795,  4.04265752580,      255.05546779820},
2004     {     0.00000002895,  3.26202698812,     1646.91908686380},
2005     {     0.00000002324,  3.99503920129,      481.26298871830},
2006     {     0.00000002962,  1.74151265966,     2080.63082474060},
2007     {     0.00000002621,  1.74442251671,       35.21227433100},
2008 };
2009 
2010 
2011 static const struct ln_vsop neptune_radius_r2[RADIUS_R2] = {
2012     {     0.00004247776,  5.89911844921,       38.13303563780},
2013     {     0.00000217404,  0.34589546713,        1.48447270830},
2014     {     0.00000163025,  2.23872947130,      168.05251279940},
2015     {     0.00000156285,  4.59414467342,      182.27960680100},
2016     {     0.00000117940,  5.10295026024,      484.44438245600},
2017     {     0.00000112429,  1.19000583596,      498.67147645760},
2018     {     0.00000127836,  2.84821806298,       35.16409022120},
2019     {     0.00000099311,  3.41592669789,      175.16605980020},
2020     {     0.00000064814,  3.46214064840,      388.46515523820},
2021     {     0.00000076780,  0.01680343065,      491.55792945680},
2022     {     0.00000049511,  4.06995993334,       76.26607127560},
2023     {     0.00000039330,  6.09521855958,     1021.24889455140},
2024     {     0.00000036451,  5.17129778081,      137.03302416240},
2025     {     0.00000036709,  5.97476878862,        2.96894541660},
2026     {     0.00000029037,  3.58135470306,       33.67961751290},
2027     {     0.00000020862,  0.77341568423,       36.64856292950},
2028     {     0.00000013886,  3.59248623971,      395.57870223900},
2029     {     0.00000013001,  5.12870831936,       98.89998852460},
2030     {     0.00000011379,  1.18060018898,      381.35160823740},
2031     {     0.00000009132,  2.34787658568,      601.76425067620},
2032     {     0.00000008527,  5.25134685897,        2.44768055480},
2033     {     0.00000007608,  4.99805971093,        4.45341812490},
2034     {     0.00000007417,  4.46775409796,      189.39315380180},
2035     {     0.00000007225,  1.92287508629,        9.56122755560},
2036     {     0.00000007289,  1.65519525780,     1028.36244155220},
2037     {     0.00000008076,  5.84268048268,      220.41264243880},
2038     {     0.00000009415,  0.00000000000,        0.00000000000},
2039     {     0.00000006554,  0.69397520662,      144.14657116320},
2040     {     0.00000005628,  5.23383764266,       46.20979048510},
2041     {     0.00000005523,  4.59041448911,     1014.13534755060},
2042     {     0.00000007254,  1.14445074833,     1059.38193018920},
2043     {     0.00000005226,  0.02783946816,       74.78159856730},
2044     {     0.00000005177,  5.23116646157,      477.33083545520},
2045     {     0.00000005098,  3.50187769013,       39.61750834610},
2046     {     0.00000005503,  3.49522319102,      183.76407950930},
2047     {     0.00000005055,  0.19949888617,      166.56804009110},
2048     {     0.00000004751,  1.18054948270,      169.53698550770},
2049     {     0.00000004587,  2.13374192347,       41.10198105440},
2050     {     0.00000006170,  6.15456871599,       71.81265315070},
2051     {     0.00000004606,  3.91970908886,      587.53715667460},
2052     {     0.00000004536,  2.84337336954,        7.11354700080},
2053     {     0.00000004338,  0.51553847342,      446.31134681820},
2054     {     0.00000003891,  0.26338839265,     1550.93985964600},
2055     {     0.00000004465,  3.01487041336,      129.91947716160},
2056     {     0.00000004162,  1.58187532018,       73.29712585900},
2057     {     0.00000003727,  2.37977930658,      160.93896579860},
2058     {     0.00000004830,  2.23553496822,      176.65053250850},
2059     {     0.00000003842,  3.79387204230,      111.43016149680},
2060     {     0.00000003296,  1.07748822909,      505.78502345840},
2061     {     0.00000003966,  1.70648052846,      983.11585891360},
2062     {     0.00000004008,  0.30663868827,      494.73932319450},
2063     {     0.00000003974,  5.97351783840,      488.37653571910},
2064     {     0.00000003925,  4.85736421123,       60.76695288680},
2065     {     0.00000002966,  2.01608546009,      822.17689311500},
2066     {     0.00000003972,  1.07780371834,      374.23806123660},
2067     {     0.00000002848,  6.17799253802,      704.85702489480},
2068     {     0.00000003527,  0.79317138165,      274.06604832480},
2069     {     0.00000002773,  5.37132330836,      251.43213107580},
2070     {     0.00000003113,  5.12622288666,      426.59819087600},
2071     {     0.00000003344,  5.61433537548,     1124.34166877000},
2072     {     0.00000003552,  5.22645982165,      350.33211960040},
2073     {     0.00000002597,  0.67759426519,      312.19908396260},
2074     {     0.00000002580,  3.56031931199,      567.82400073240},
2075     {     0.00000002578,  1.45603792456,     1035.47598855300},
2076     {     0.00000002541,  5.19427579702,     1227.43444298860},
2077     {     0.00000002507,  1.31206832468,      386.98068252990},
2078     {     0.00000002510,  4.12148891512,      171.23390653710},
2079     {     0.00000002511,  2.71606957319,      179.09821306330},
2080     {     0.00000002342,  0.96469916587,     1019.76442184310},
2081     {     0.00000002500,  0.70282276030,      707.77778620160},
2082     {     0.00000002480,  4.59623030219,      693.55069220000},
2083 };
2084 
2085 
2086 static const struct ln_vsop neptune_radius_r3[RADIUS_R3] = {
2087     {     0.00000166556,  4.55393495836,       38.13303563780},
2088     {     0.00000022380,  3.94830879358,      168.05251279940},
2089     {     0.00000021348,  2.86296778794,      182.27960680100},
2090     {     0.00000016233,  0.54226725872,      484.44438245600},
2091     {     0.00000015623,  5.75702251906,      498.67147645760},
2092     {     0.00000011412,  4.38291384655,        1.48447270830},
2093     {     0.00000006448,  5.19003066847,       31.01948863700},
2094     {     0.00000003655,  5.91335292846,     1007.02180054980},
2095     {     0.00000003681,  1.62865545676,      388.46515523820},
2096     {     0.00000003198,  0.70197118575,     1558.05340664680},
2097     {     0.00000003243,  1.88035665980,      522.57741809380},
2098     {     0.00000002688,  1.87062743473,      402.69224923980},
2099     {     0.00000003246,  0.79381356193,      536.80451209540},
2100     {     0.00000002650,  5.76858449026,      343.21857259960},
2101     {     0.00000002644,  4.64542905401,      500.15594916590},
2102     {     0.00000002541,  4.79217120822,      482.95990974770},
2103     {     0.00000002523,  1.72869889780,      395.57870223900},
2104     {     0.00000003040,  2.90934098363,       76.26607127560},
2105     {     0.00000002690,  2.21096415618,      446.31134681820},
2106     {     0.00000002355,  5.77381398401,      485.92885516430},
2107     {     0.00000002874,  6.19643340540,      815.06334611420},
2108     {     0.00000002450,  2.14451121185,       39.61750834610},
2109     {     0.00000002278,  3.66579603119,      497.18700374930},
2110 };
2111 
2112 
2113 static const struct ln_vsop neptune_radius_r4[RADIUS_R4] = {
2114     {     0.00000004227,  2.40375758563,      477.33083545520},
2115     {     0.00000004333,  0.10459484545,      395.57870223900},
2116     {     0.00000003545,  4.78431259422,     1028.36244155220},
2117     {     0.00000003154,  3.88192942366,      505.78502345840},
2118     {     0.00000003016,  1.03609346831,      189.39315380180},
2119     {     0.00000002294,  1.10879658603,      182.27960680100},
2120     {     0.00000002295,  5.67776133184,      168.05251279940},
2121 };
2122 
2123 
2124 /*! \fn void ln_get_neptune_equ_coords (double JD, struct ln_equ_posn * position);
2125 * \param JD julian Day
2126 * \param position Pointer to store position
2127 *
2128 * Calculates Neptune's equatorial position for given julian day.
2129 * This function includes calculations for planetary aberration and refers
2130 * to the FK5 reference frame.
2131 *
2132 * To get the complete equatorial coordinates, corrections for nutation
2133 * have to be applied.
2134 *
2135 * The position returned is accurate to within 0.1 arcsecs.
2136 */
ln_get_neptune_equ_coords(double JD,struct ln_equ_posn * position)2137 void ln_get_neptune_equ_coords (double JD, struct ln_equ_posn * position)
2138 {
2139 	struct ln_helio_posn h_sol, h_neptune;
2140 	struct ln_rect_posn g_sol, g_neptune;
2141 	double a,b,c;
2142 	double ra, dec, delta, diff, last, t = 0;
2143 
2144 	/* need typdef for solar heliocentric coords */
2145 	ln_get_solar_geom_coords (JD, &h_sol);
2146 	ln_get_rect_from_helio (&h_sol,  &g_sol);
2147 
2148 	do {
2149 		last = t;
2150 		ln_get_neptune_helio_coords (JD - t, &h_neptune);
2151 		ln_get_rect_from_helio (&h_neptune, &g_neptune);
2152 
2153 		/* equ 33.10 pg 229 */
2154 		a = g_sol.X + g_neptune.X;
2155 		b = g_sol.Y + g_neptune.Y;
2156 		c = g_sol.Z + g_neptune.Z;
2157 
2158 		delta = a*a + b*b + c*c;
2159 		delta = sqrt (delta);
2160 		t = delta * 0.0057755183;
2161 		diff = t - last;
2162 	} while (diff > 0.0001 || diff < -0.0001);
2163 
2164 	ra = atan2 (b,a);
2165 	dec = c / delta;
2166 	dec = asin (dec);
2167 
2168 	/* back to hours, degrees */
2169 	position->ra = ln_range_degrees(ln_rad_to_deg (ra));
2170 	position->dec = ln_rad_to_deg (dec);
2171 }
2172 
2173 
2174 /*! \fn void ln_get_neptune_helio_coords (double JD, struct ln_helio_posn * position)
2175 * \param JD Julian Day
2176 * \param position Pointer to store heliocentric position
2177 *
2178 * Calculate Neptunes heliocentric (refered to the centre of the Sun) coordinates
2179 * in the FK5 reference frame for the given julian day.
2180 * Longitude and Latitude are in degrees, whilst radius vector is in AU.
2181 */
2182 /* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87
2183 */
ln_get_neptune_helio_coords(double JD,struct ln_helio_posn * position)2184 void ln_get_neptune_helio_coords (double JD, struct ln_helio_posn * position)
2185 {
2186 	double t, t2, t3, t4, t5;
2187 	double L0, L1, L2, L3;
2188 	double B0, B1, B2, B3;
2189 	double R0, R1, R2, R3, R4;
2190 
2191 	/* check cache first */
2192 	if (JD == cJD) {
2193 		/* cache hit */
2194 		position->L = cL;
2195 		position->B = cB;
2196 		position->R = cR;
2197 		return;
2198 	}
2199 
2200 	/* get julian ephemeris day */
2201 	t = (JD - 2451545.0) / 365250;
2202 	t2 = t * t;
2203 	t3 = t2 * t;
2204 	t4 = t3 * t;
2205 	t5 = t4 * t;
2206 
2207 	/* calc L series */
2208 	L0 = ln_calc_series (neptune_longitude_l0, LONG_L0, t);
2209 	L1 = ln_calc_series (neptune_longitude_l1, LONG_L1, t);
2210 	L2 = ln_calc_series (neptune_longitude_l2, LONG_L2, t);
2211 	L3 = ln_calc_series (neptune_longitude_l3, LONG_L3, t);
2212 	position->L = (L0 + L1 * t + L2 * t2 + L3 * t3);
2213 
2214 	/* calc B series */
2215 	B0 = ln_calc_series (neptune_latitude_b0, LAT_B0, t);
2216 	B1 = ln_calc_series (neptune_latitude_b1, LAT_B1, t);
2217 	B2 = ln_calc_series (neptune_latitude_b2, LAT_B2, t);
2218 	B3 = ln_calc_series (neptune_latitude_b3, LAT_B3, t);
2219 	position->B = (B0 + B1 * t + B2 * t2 + B3 * t3);
2220 
2221 
2222 	/* calc R series */
2223 	R0 = ln_calc_series (neptune_radius_r0, RADIUS_R0, t);
2224 	R1 = ln_calc_series (neptune_radius_r1, RADIUS_R1, t);
2225 	R2 = ln_calc_series (neptune_radius_r2, RADIUS_R2, t);
2226 	R3 = ln_calc_series (neptune_radius_r3, RADIUS_R3, t);
2227 	R4 = ln_calc_series (neptune_radius_r4, RADIUS_R4, t);
2228 	position->R = (R0 + R1 * t + R2 * t2 + R3 * t3 + R4 * t4);
2229 
2230 	/* change to degrees in correct quadrant */
2231 	position->L = ln_rad_to_deg(position->L);
2232 	position->B = ln_rad_to_deg(position->B);
2233 	position->L = ln_range_degrees(position->L);
2234 
2235 	/* change to fk5 reference frame */
2236 	ln_vsop87_to_fk5 (position, JD);
2237 
2238 	/* save cache */
2239 	cJD = JD;
2240 	cL = position->L;
2241 	cB = position->B;
2242 	cR = position->R;
2243 }
2244 
2245 
2246 
2247 /*! \fn double ln_get_neptune_earth_dist (double JD);
2248 * \brief Calculate the distance between Neptune and the Earth in AU
2249 * \param JD Julian day
2250 * \return Distance in AU
2251 *
2252 * Calculates the distance in AU between the Earth and Neptune for
2253 * the given julian day.
2254 */
ln_get_neptune_earth_dist(double JD)2255 double ln_get_neptune_earth_dist (double JD)
2256 {
2257 	struct ln_helio_posn h_neptune, h_earth;
2258 	struct ln_rect_posn g_neptune, g_earth;
2259 	double x, y, z;
2260 
2261 	/* get heliocentric positions */
2262 	ln_get_neptune_helio_coords (JD, &h_neptune);
2263 	ln_get_earth_helio_coords (JD, &h_earth);
2264 
2265 	/* get geocentric coords */
2266 	ln_get_rect_from_helio (&h_neptune, &g_neptune);
2267 	ln_get_rect_from_helio (&h_earth, &g_earth);
2268 
2269 	/* use pythag */
2270 	x = g_neptune.X - g_earth.X;
2271 	y = g_neptune.Y - g_earth.Y;
2272 	z = g_neptune.Z - g_earth.Z;;
2273 	x = x * x;
2274 	y = y * y;
2275 	z = z * z;
2276 
2277 	return sqrt (x + y + z);
2278 }
2279 
2280 /*! \fn double ln_get_neptune_solar_dist (double JD);
2281 * \brief Calculate the distance between Neptune and the Sun in AU
2282 * \param JD Julian day
2283 * \return distance in AU
2284 *
2285 * Calculates the distance in AU between the Sun and Neptune
2286 * for the given julian day.
2287 */
ln_get_neptune_solar_dist(double JD)2288 double ln_get_neptune_solar_dist (double JD)
2289 {
2290 	struct ln_helio_posn  h_neptune;
2291 
2292 	/* get heliocentric position */
2293 	ln_get_neptune_helio_coords (JD, &h_neptune);
2294 	return h_neptune.R;
2295 }
2296 
2297 /*! \fn double ln_get_neptune_magnitude (double JD);
2298 * \brief Calculate the visible magnitude of Neptune
2299 * \param JD Julian day
2300 * \return Visible magnitude of neptune
2301 *
2302 * Calculate the visible magnitude of Neptune for the given julian day.
2303 */
ln_get_neptune_magnitude(double JD)2304 double ln_get_neptune_magnitude (double JD)
2305 {
2306 	double delta, r;
2307 
2308 	/* get distances */
2309 	r = ln_get_neptune_solar_dist (JD);
2310 	delta = ln_get_neptune_earth_dist (JD);
2311 
2312 	return -6.87 + 5 * log10 (r * delta);
2313 }
2314 
2315 /*! \fn double ln_get_neptune_disk (double JD);
2316 * \brief Calculate the illuminated fraction of Neptune's disk
2317 * \param JD Julian day
2318 * \return Illuminated fraction of Neptune's disk
2319 *
2320 * Calculate the illuminated fraction of Neptune's disk for the given Julian
2321 * day.
2322 */
2323 /* Chapter 41 */
ln_get_neptune_disk(double JD)2324 double ln_get_neptune_disk (double JD)
2325 {
2326 	double r,delta,R;
2327 
2328 	/* get distances */
2329 	R = ln_get_earth_solar_dist (JD);
2330 	r = ln_get_neptune_solar_dist (JD);
2331 	delta = ln_get_neptune_earth_dist (JD);
2332 
2333 	/* calc fraction angle */
2334 	return (((r + delta) * (r + delta)) - R * R) / (4 * r * delta);
2335 }
2336 
2337 /*! \fn double ln_get_neptune_phase (double JD);
2338 * \param JD Julian day
2339 * \return Phase angle of Neptune (degrees)
2340 *
2341 * Calculates the phase angle of Neptune, that is, the angle Sun -
2342 * Neptune - Earth for the given Julian day.
2343 */
2344 /* Chapter 41 */
ln_get_neptune_phase(double JD)2345 double ln_get_neptune_phase (double JD)
2346 {
2347 	double i,r,delta,R;
2348 
2349 	/* get distances */
2350 	R = ln_get_earth_solar_dist (JD);
2351 	r = ln_get_neptune_solar_dist (JD);
2352 	delta = ln_get_neptune_earth_dist (JD);
2353 
2354 	/* calc phase */
2355 	i = (r * r + delta * delta - R * R) / (2 * r * delta);
2356 	i = acos (i);
2357 	return ln_rad_to_deg (i);
2358 }
2359 
2360 
2361 /*! \fn double ln_get_neptune_rst (double JD, struct ln_lnlat_posn * observer, struct ln_rst_time * rst);
2362 * \param JD Julian day
2363 * \param observer Observers position
2364 * \param rst Pointer to store Rise, Set and Transit time in JD
2365 * \return 0 for success, else 1 for circumpolar.
2366 *
2367 * Calculate the time the rise, set and transit (crosses the local meridian at upper culmination)
2368 * time of Neptune for the given Julian day.
2369 *
2370 * Note: this functions returns 1 if Neptune is circumpolar, that is it remains the whole
2371 * day either above or below the horizon.
2372 */
ln_get_neptune_rst(double JD,struct ln_lnlat_posn * observer,struct ln_rst_time * rst)2373 int ln_get_neptune_rst (double JD, struct ln_lnlat_posn * observer, struct ln_rst_time * rst)
2374 {
2375 	return ln_get_body_rst_horizon (JD, observer, ln_get_neptune_equ_coords, LN_STAR_STANDART_HORIZON, rst);
2376 }
2377 
2378 /*! \fn double ln_get_neptune_sdiam (double JD)
2379 * \param JD Julian day
2380 * \return Semidiameter in arc seconds
2381 *
2382 * Calculate the semidiameter of Neptune in arc seconds for the
2383 * given julian day.
2384 */
ln_get_neptune_sdiam(double JD)2385 double ln_get_neptune_sdiam (double JD)
2386 {
2387 	double So = 33.50; /* at 1 AU */
2388 	double dist;
2389 
2390 	dist = ln_get_neptune_earth_dist (JD);
2391 	return So / dist;
2392 }
2393 
2394 /*! \fn void ln_get_neptune_rect_helio (double JD, struct ln_rect_posn * position)
2395 * \param JD Julian day.
2396 * \param position pointer to return position
2397 *
2398 * Calculate Neptunes rectangular heliocentric coordinates for the
2399 * given Julian day. Coordinates are in AU.
2400 */
ln_get_neptune_rect_helio(double JD,struct ln_rect_posn * position)2401 void ln_get_neptune_rect_helio (double JD, struct ln_rect_posn * position)
2402 {
2403 	struct ln_helio_posn neptune;
2404 
2405 	ln_get_neptune_helio_coords (JD, &neptune);
2406 	ln_get_rect_from_helio (&neptune, position);
2407 }
2408