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/venus.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 416
32 #define LONG_L1 235
33 #define LONG_L2 72
34 #define LONG_L3 7
35 #define LONG_L4 4
36 #define LONG_L5 2
37 #define LAT_B0 210
38 #define LAT_B1 121
39 #define LAT_B2 51
40 #define LAT_B3 12
41 #define LAT_B4 4
42 #define LAT_B5 4
43 #define RADIUS_R0 323
44 #define RADIUS_R1 174
45 #define RADIUS_R2 62
46 #define RADIUS_R3 8
47 #define RADIUS_R4 3
48 #define RADIUS_R5 2
49 
50 /* cache variables */
51 static double cJD = 0, cL = 0, cB = 0, cR = 0;
52 
53 static const struct ln_vsop venus_longitude_l0[LONG_L0] = {
54     {     3.17614666774,  0.00000000000,        0.00000000000},
55     {     0.01353968419,  5.59313319619,    10213.28554621100},
56     {     0.00089891645,  5.30650047764,    20426.57109242200},
57     {     0.00005477194,  4.41630661466,     7860.41939243920},
58     {     0.00003455741,  2.69964447820,    11790.62908865880},
59     {     0.00002372061,  2.99377542079,     3930.20969621960},
60     {     0.00001317168,  5.18668228402,       26.29831979980},
61     {     0.00001664146,  4.25018630147,     1577.34354244780},
62     {     0.00001438387,  4.15745084182,     9683.59458111640},
63     {     0.00001200521,  6.15357116043,    30639.85663863300},
64     {     0.00000761380,  1.95014701047,      529.69096509460},
65     {     0.00000707676,  1.06466702668,      775.52261132400},
66     {     0.00000584836,  3.99839888230,      191.44826611160},
67     {     0.00000769314,  0.81629615196,     9437.76293488700},
68     {     0.00000499915,  4.12340212820,    15720.83878487840},
69     {     0.00000326221,  4.59056477038,    10404.73381232260},
70     {     0.00000429498,  3.58642858577,    19367.18916223280},
71     {     0.00000326967,  5.67736584311,     5507.55323866740},
72     {     0.00000231937,  3.16251059356,     9153.90361602180},
73     {     0.00000179695,  4.65337908917,     1109.37855209340},
74     {     0.00000128263,  4.22604490814,       20.77539549240},
75     {     0.00000155464,  5.57043891690,    19651.04848109800},
76     {     0.00000127907,  0.96209781904,     5661.33204915220},
77     {     0.00000105547,  1.53721203088,      801.82093112380},
78     {     0.00000085722,  0.35589247720,     3154.68708489560},
79     {     0.00000099121,  0.83288208931,      213.29909543800},
80     {     0.00000098804,  5.39389623302,    13367.97263110660},
81     {     0.00000082094,  3.21597037872,    18837.49819713819},
82     {     0.00000088031,  3.88868864136,     9999.98645077300},
83     {     0.00000071577,  0.11145736657,    11015.10647733480},
84     {     0.00000056122,  4.24039842051,        7.11354700080},
85     {     0.00000070239,  0.67458825333,    23581.25817731760},
86     {     0.00000050796,  0.24531639097,    11322.66409830440},
87     {     0.00000046111,  5.31576442737,    18073.70493865020},
88     {     0.00000044576,  6.06281108312,    40853.14218484400},
89     {     0.00000042594,  5.32873395426,     2352.86615377180},
90     {     0.00000042635,  1.79955442721,     7084.89678111520},
91     {     0.00000041177,  0.36241012200,      382.89653222320},
92     {     0.00000035749,  2.70448479527,    10206.17199921020},
93     {     0.00000033893,  2.02347385644,     6283.07584999140},
94     {     0.00000029170,  3.59117396909,    22003.91463486980},
95     {     0.00000028479,  2.22375430133,     1059.38193018920},
96     {     0.00000029850,  4.02177029338,    10239.58386601080},
97     {     0.00000033252,  2.10025580495,    27511.46787353720},
98     {     0.00000030172,  4.94191918273,    13745.34623902240},
99     {     0.00000029252,  3.51392387787,      283.85931886520},
100     {     0.00000024424,  2.70177487840,     8624.21265092720},
101     {     0.00000020274,  3.79493777545,    14143.49524243060},
102     {     0.00000024322,  4.27814493315,        5.52292430740},
103     {     0.00000026260,  0.54067510171,    17298.18232732620},
104     {     0.00000020492,  0.58547075036,       38.02767263580},
105     {     0.00000018988,  4.13811517967,     4551.95349705880},
106     {     0.00000023739,  4.82870820701,     6872.67311951120},
107     {     0.00000015953,  1.50376176156,     8635.94200376320},
108     {     0.00000019069,  6.12025555817,    29050.78374334920},
109     {     0.00000018269,  3.04740409161,    19999.97290154599},
110     {     0.00000013656,  4.41336264990,     3532.06069281140},
111     {     0.00000017118,  3.51922693724,    31441.67756975680},
112     {     0.00000010955,  2.84562940868,    18307.80723204360},
113     {     0.00000011048,  2.58361219121,     9786.68735533500},
114     {     0.00000009904,  1.08737985358,     7064.12138562280},
115     {     0.00000010576,  0.85419798194,    10596.18207843420},
116     {     0.00000009235,  5.52461085424,    12566.15169998280},
117     {     0.00000011599,  5.81007484555,    19896.88012732740},
118     {     0.00000011807,  1.91250004145,    21228.39202354580},
119     {     0.00000010105,  2.34270729521,    10742.97651130560},
120     {     0.00000008154,  1.92331359797,       15.25247118500},
121     {     0.00000008893,  1.97291419659,    10186.98722641120},
122     {     0.00000009352,  4.94508838657,    35371.88726597640},
123     {     0.00000006821,  4.39733528050,     8662.24032356300},
124     {     0.00000006688,  1.55309955053,    14945.31617355440},
125     {     0.00000006413,  2.17677578364,    10988.80815753500},
126     {     0.00000005802,  1.93461898145,     3340.61242669980},
127     {     0.00000005950,  2.96578177047,     4732.03062734340},
128     {     0.00000005275,  5.01875399411,    28286.99048486120},
129     {     0.00000007047,  1.00111452053,      632.78373931320},
130     {     0.00000005048,  4.27886655804,    29580.47470844380},
131     {     0.00000006305,  0.35506330531,      103.09277421860},
132     {     0.00000005959,  5.04792949123,      245.83164622940},
133     {     0.00000004651,  0.85216995524,     6770.71060124560},
134     {     0.00000005580,  0.48723420248,      522.57741809380},
135     {     0.00000005327,  3.03115799765,    10021.83728009940},
136     {     0.00000005010,  5.77374296245,    28521.09277825460},
137     {     0.00000004608,  1.93302031704,     4705.73230754360},
138     {     0.00000005526,  3.36797150122,    25158.60171976540},
139     {     0.00000003863,  4.89351765621,    25934.12433108940},
140     {     0.00000005303,  0.08161035601,    39302.09696219600},
141     {     0.00000004254,  5.36046525146,    21535.94964451540},
142     {     0.00000003763,  1.05304597315,       19.66976089979},
143     {     0.00000004407,  4.02575372996,       74.78159856730},
144     {     0.00000004145,  1.14356412295,     9676.48103411560},
145     {     0.00000004318,  4.38289970585,      316.39186965660},
146     {     0.00000003642,  6.11733531450,     3128.38876509580},
147     {     0.00000003238,  5.39551036769,      419.48464387520},
148     {     0.00000003909,  4.05263635330,     9690.70812811720},
149     {     0.00000003173,  0.74132026653,    16496.36139620240},
150     {     0.00000003496,  0.72415151509,     3723.50895892300},
151     {     0.00000003755,  3.80208523566,    19786.67380610799},
152     {     0.00000003016,  1.57249073681,    17277.40693183380},
153     {     0.00000002858,  3.31246198673,    32217.20018108080},
154     {     0.00000003825,  0.19612307327,      426.59819087600},
155     {     0.00000003798,  0.45524571743,    10316.37832042960},
156     {     0.00000002570,  1.20813798183,    13936.79450513400},
157     {     0.00000002796,  3.65128969074,      206.18554843720},
158     {     0.00000002466,  3.61988425580,     1551.04522264800},
159     {     0.00000003108,  1.50324979041,    43232.30665841560},
160     {     0.00000002976,  4.79414174980,    29088.81141598500},
161     {     0.00000002196,  3.57357339264,    24356.78078864160},
162     {     0.00000002227,  4.96059090976,      536.80451209540},
163     {     0.00000002397,  3.45249688427,    19374.30270923360},
164     {     0.00000002462,  0.53295346740,    19360.07561523199},
165     {     0.00000002205,  2.70398708223,    12592.45001978260},
166     {     0.00000002230,  3.01413989795,    18875.52586977400},
167     {     0.00000001858,  4.06129093893,     2379.16447357160},
168     {     0.00000001807,  3.15086244011,     9573.38825989700},
169     {     0.00000002238,  5.52216925076,    10138.50394764370},
170     {     0.00000002195,  2.32046407873,     8094.52168583260},
171     {     0.00000002101,  2.90421302974,     9967.45389998160},
172     {     0.00000001916,  4.56513913980,     2218.75710418680},
173     {     0.00000001467,  2.42640162464,    10234.06094170340},
174     {     0.00000001726,  5.59790615295,    20452.86941222180},
175     {     0.00000001455,  2.44757225671,     1589.07289528380},
176     {     0.00000001991,  4.04623282256,    31749.23519072640},
177     {     0.00000001406,  2.71737807375,    16983.99614745660},
178     {     0.00000001658,  0.11252373292,      153.77881048480},
179     {     0.00000001851,  2.92897863746,    47162.51635463520},
180     {     0.00000001492,  1.07515446511,     9103.90699411760},
181     {     0.00000001247,  2.48433636140,    17778.11626694899},
182     {     0.00000001549,  4.20555105766,     3442.57494496540},
183     {     0.00000001243,  3.95452438599,      170.67287061920},
184     {     0.00000001694,  6.20691533902,    33019.02111220460},
185     {     0.00000001221,  4.77932060567,    30110.16567353840},
186     {     0.00000001206,  0.30531254531,    29864.33402730900},
187     {     0.00000001238,  5.05581030425,    20213.27199698400},
188     {     0.00000001152,  3.26229919481,       11.72935283600},
189     {     0.00000001179,  1.69491078238,    20400.27277262220},
190     {     0.00000001165,  2.88995128147,      574.34479833480},
191     {     0.00000001306,  0.14519568603,     9146.79006902100},
192     {     0.00000001113,  1.52599723495,    10426.58464164900},
193     {     0.00000001045,  0.57538516899,    15874.61759536320},
194     {     0.00000001105,  2.54593760294,    18849.22754997420},
195     {     0.00000001360,  2.41974967161,    38734.37832446560},
196     {     0.00000000981,  4.37930757970,      110.20632121940},
197     {     0.00000001146,  4.54241415687,    10220.39909321180},
198     {     0.00000001091,  0.48630333703,    51066.42773105500},
199     {     0.00000000981,  1.65915064734,    10103.07922499160},
200     {     0.00000001270,  4.69374306132,     9050.81084180320},
201     {     0.00000001065,  4.41646204804,    22805.73556599360},
202     {     0.00000000854,  2.34437927295,     6681.22485339960},
203     {     0.00000001104,  0.49781459714,        1.48447270830},
204     {     0.00000001075,  1.09857593161,      377.37360791580},
205     {     0.00000001114,  4.35024212108,    51092.72605085480},
206     {     0.00000000829,  5.41196376472,    27991.40181316000},
207     {     0.00000000900,  2.74195213638,    41962.52073693740},
208     {     0.00000001010,  2.96092073452,      135.62532501000},
209     {     0.00000000768,  3.98260860494,    18844.61174413899},
210     {     0.00000001018,  1.36889990282,    36949.23080842420},
211     {     0.00000000725,  1.67729445754,    21202.09370374600},
212     {     0.00000000727,  0.89048212541,      467.96499035440},
213     {     0.00000000869,  2.93235455158,    10192.51015071860},
214     {     0.00000000696,  5.35698039414,    10063.72234907640},
215     {     0.00000000920,  4.17128923588,    18734.40542291960},
216     {     0.00000000691,  1.50594847085,    27197.28169366760},
217     {     0.00000000835,  0.48049677664,    20618.01935853360},
218     {     0.00000000711,  0.19750098222,    18830.38465013739},
219     {     0.00000000811,  0.16685071959,    12432.04265039780},
220     {     0.00000000756,  3.79022449760,     9161.01716302260},
221     {     0.00000000622,  5.33660452826,     9411.46461508720},
222     {     0.00000000862,  5.72705356405,    10175.15251057320},
223     {     0.00000000853,  0.10404194066,     2107.03450754240},
224     {     0.00000000742,  3.96365892051,      813.55028395980},
225     {     0.00000000705,  0.71229660616,      220.41264243880},
226     {     0.00000000584,  1.71900692700,       36.02786667740},
227     {     0.00000000612,  0.36418385449,      949.17560896980},
228     {     0.00000000587,  1.58648949290,        6.62855890001},
229     {     0.00000000581,  5.49288908804,     6309.37416979120},
230     {     0.00000000581,  4.80362317972,    24150.08005134500},
231     {     0.00000000516,  6.07328802561,       38.13303563780},
232     {     0.00000000627,  5.47281424955,     9580.50180689780},
233     {     0.00000000601,  1.40500080384,     1162.47470440780},
234     {     0.00000000620,  4.00681042667,     9992.87290377220},
235     {     0.00000000611,  3.62010998629,     7255.56965173440},
236     {     0.00000000697,  2.22359630727,      348.92442044800},
237     {     0.00000000569,  0.23482601786,    37410.56723987860},
238     {     0.00000000693,  5.77432072851,    55022.93574707440},
239     {     0.00000000494,  0.29762226375,     7058.59846131540},
240     {     0.00000000487,  5.86917216517,    10137.01947493540},
241     {     0.00000000493,  2.04534833854,      735.87651353180},
242     {     0.00000000636,  2.79707415908,    40879.44050464380},
243     {     0.00000000519,  4.13931655130,    16522.65971600220},
244     {     0.00000000535,  4.60569597820,    19573.37471066999},
245     {     0.00000000555,  5.88120469821,    26735.94526221320},
246     {     0.00000000440,  5.61490952812,    23958.63178523340},
247     {     0.00000000541,  0.62494922735,    10007.09999777380},
248     {     0.00000000427,  4.02335620501,       14.22709400160},
249     {     0.00000000434,  0.29028429049,     9264.10993724120},
250     {     0.00000000451,  1.66321968415,    26087.90314157420},
251     {     0.00000000422,  3.38413582674,    10787.63034454580},
252     {     0.00000000568,  5.14001584538,    27490.69247804480},
253     {     0.00000000421,  4.23407420790,    39793.76025465480},
254     {     0.00000000458,  5.28786368820,       49.75702547180},
255     {     0.00000000418,  5.69090817000,    14765.23904326980},
256     {     0.00000000475,  0.97544690438,     1052.26838318840},
257     {     0.00000000387,  4.41665162999,       21.85082932640},
258     {     0.00000000523,  2.90512729055,    20235.12282631040},
259     {     0.00000000506,  5.26999240626,    29999.95935231900},
260     {     0.00000000530,  0.71374608018,    33794.54372352860},
261     {     0.00000000434,  2.49892103222,    20956.26205751660},
262     {     0.00000000382,  1.92119365480,        3.93215326310},
263     {     0.00000000365,  3.81713155389,    20419.45754542119},
264     {     0.00000000426,  2.06384189772,    38204.68735937100},
265     {     0.00000000496,  0.44077356179,     9835.91193829520},
266     {     0.00000000410,  4.93346330078,    19264.09638801420},
267     {     0.00000000380,  3.79573339943,     8521.11987670860},
268     {     0.00000000334,  5.51158557800,    10251.31321884680},
269     {     0.00000000412,  2.56129670728,       77.67377042800},
270     {     0.00000000418,  2.37865963521,       32.53255079140},
271     {     0.00000000325,  6.03020523465,    18947.70451835760},
272     {     0.00000000400,  0.91999360201,      227.47613278900},
273     {     0.00000000437,  0.91420135162,    58953.14544329400},
274     {     0.00000000360,  0.82477639126,       22.77520145080},
275     {     0.00000000413,  4.22381925464,    44809.65020086340},
276     {     0.00000000375,  3.15657291896,    19992.85935454519},
277     {     0.00000000371,  6.05370874275,    20007.08644854680},
278     {     0.00000000361,  5.44371227904,    19470.28193645139},
279     {     0.00000000386,  5.28104804025,    47623.85278608960},
280     {     0.00000000389,  0.73216672240,    19050.79729257620},
281     {     0.00000000320,  2.84811591194,    10199.05845220940},
282     {     0.00000000386,  3.88754165531,     1975.49254585600},
283     {     0.00000000279,  0.50274101065,     9830.38901398780},
284     {     0.00000000276,  4.33978638152,    20809.46762464520},
285     {     0.00000000309,  3.79299100668,    18204.71445782499},
286     {     0.00000000377,  0.73768790585,    11506.76976979360},
287     {     0.00000000322,  0.96113438814,    30666.15495843280},
288     {     0.00000000363,  1.30472406690,     9367.20271145980},
289     {     0.00000000366,  2.79974205585,    11272.66747640020},
290     {     0.00000000271,  4.66141338193,      846.08283475120},
291     {     0.00000000259,  0.42024142711,    39264.06928956020},
292     {     0.00000000285,  0.40546033634,       30.91412563500},
293     {     0.00000000247,  4.80676152850,    36147.40987730040},
294     {     0.00000000264,  2.71608177583,       11.04570026390},
295     {     0.00000000233,  2.76423842887,      187.92514776260},
296     {     0.00000000248,  1.60765612335,    10497.14486507620},
297     {     0.00000000271,  0.82348919630,    19793.78735310880},
298     {     0.00000000225,  3.80080911298,     8631.32619792800},
299     {     0.00000000263,  1.92319161528,    37724.75341974820},
300     {     0.00000000214,  5.01663561403,      639.89728631400},
301     {     0.00000000289,  0.12342601246,    20277.00789528740},
302     {     0.00000000210,  0.12771800254,       29.82143814880},
303     {     0.00000000227,  4.18036609801,    17468.85519794540},
304     {     0.00000000200,  3.67516531895,    30213.25844775700},
305     {     0.00000000274,  2.34929343000,    62883.35513951360},
306     {     0.00000000260,  5.65254501655,    48739.85989708300},
307     {     0.00000000271,  4.95325404028,     4214.06901508480},
308     {     0.00000000219,  2.08775228014,      194.97138446060},
309     {     0.00000000191,  2.49267248333,      568.82187402740},
310     {     0.00000000231,  0.85116556400,    52670.06959330260},
311     {     0.00000000250,  1.52909737354,     6037.24420376200},
312     {     0.00000000231,  5.23674429498,      491.66329245880},
313     {     0.00000000182,  4.98046042571,    18418.01355326299},
314     {     0.00000000188,  2.82273639603,     1385.89527633620},
315     {     0.00000000204,  4.09938646222,    14919.01785375460},
316     {     0.00000000176,  3.82400982460,     9360.08916445900},
317     {     0.00000000198,  2.76491873243,    10217.21769947410},
318     {     0.00000000168,  5.19268690225,     1066.49547719000},
319     {     0.00000000199,  1.95274291865,     7564.83072073800},
320     {     0.00000000172,  5.29332134227,    11764.33076885900},
321     {     0.00000000164,  3.25435371801,     3914.95722503460},
322     {     0.00000000200,  3.82443218090,    18314.92077904440},
323     {     0.00000000203,  5.93253927885,     8617.09910392640},
324     {     0.00000000169,  1.78341902846,    31022.75317085620},
325     {     0.00000000160,  2.84901702400,    10207.76262190360},
326     {     0.00000000159,  2.09236390117,    17248.42530185440},
327     {     0.00000000179,  0.90840065587,     7880.08915333899},
328     {     0.00000000163,  2.79665037814,       41.55079098480},
329     {     0.00000000153,  0.07463240782,    28528.20632525540},
330     {     0.00000000199,  2.48348609726,    34596.36465465240},
331     {     0.00000000149,  2.59213969874,    43071.89928903080},
332     {     0.00000000149,  2.17259986337,     9929.42622734580},
333     {     0.00000000156,  5.20953676299,    22645.32819660879},
334     {     0.00000000148,  2.94331271107,    41654.96311596780},
335     {     0.00000000149,  4.49800344900,    30831.30490474460},
336     {     0.00000000159,  2.11138069179,    19317.19254032860},
337     {     0.00000000154,  2.76536164654,    28513.97923125379},
338     {     0.00000000140,  4.94595038686,     9256.99639024040},
339     {     0.00000000141,  2.57248608474,    13553.89797291080},
340     {     0.00000000137,  1.66482327575,     2636.72547263700},
341     {     0.00000000136,  4.14497573316,     2333.19639287200},
342     {     0.00000000133,  3.91457156721,    32858.61374281979},
343     {     0.00000000140,  2.90644630691,    48947.66387067660},
344     {     0.00000000156,  6.01143377008,    29057.89729034999},
345     {     0.00000000134,  5.75241675118,    68050.42387851159},
346     {     0.00000000154,  3.66827363753,      276.74577186440},
347     {     0.00000000176,  3.77298381177,    66813.56483573320},
348     {     0.00000000126,  5.00217740223,    27461.71084806540},
349     {     0.00000000135,  1.34807013920,    53285.18483524180},
350     {     0.00000000150,  0.25029475344,      290.97286586600},
351     {     0.00000000152,  3.13035647340,    29043.67019634839},
352     {     0.00000000169,  5.04348109430,       73.29712585900},
353     {     0.00000000166,  5.39219948035,    41236.03871706720},
354     {     0.00000000115,  2.02657557658,    37674.99639427640},
355     {     0.00000000163,  5.59796070948,     7576.56007357400},
356     {     0.00000000126,  0.77391784606,       49.99662190420},
357     {     0.00000000163,  0.44241846674,    20350.30502114640},
358     {     0.00000000136,  3.09066368912,      418.92439890060},
359     {     0.00000000154,  0.47086190960,    28418.00000403600},
360     {     0.00000000125,  5.46344374133,    22779.43724619380},
361     {     0.00000000136,  4.17495174196,    42430.48572729180},
362     {     0.00000000120,  0.88537349448,    29573.36116144300},
363     {     0.00000000132,  1.48003093721,    17085.95866572220},
364     {     0.00000000126,  1.39497760964,      966.97087743560},
365     {     0.00000000126,  0.16302255819,    67589.08744705719},
366     {     0.00000000111,  2.50223464050,    20405.79569692960},
367     {     0.00000000143,  3.84026797958,    14128.24277124560},
368     {     0.00000000108,  4.57687521213,    30426.55754319500},
369     {     0.00000000147,  2.11609860260,    34363.36559755600},
370     {     0.00000000133,  1.07792835035,    20639.87018786000},
371     {     0.00000000106,  1.43873202489,    27682.14074415640},
372     {     0.00000000149,  0.09286508794,     8144.27871130440},
373     {     0.00000000103,  0.01992041470,    18300.69368504279},
374     {     0.00000000116,  5.27605692179,     8734.41897214660},
375     {     0.00000000121,  3.57602835443,       45.14121963660},
376     {     0.00000000125,  0.11630302078,      149.56319713460},
377     {     0.00000000108,  5.23732413902,    14169.79356223040},
378     {     0.00000000113,  4.57267032764,    20447.34648791440},
379     {     0.00000000099,  1.51324741656,    10419.47109464820},
380     {     0.00000000105,  1.70350302928,    19580.48825767080},
381     {     0.00000000133,  3.02183293676,    76251.32777062019},
382     {     0.00000000136,  4.17517197268,     3646.35037735440},
383     {     0.00000000097,  6.25332492425,    10198.03307502600},
384     {     0.00000000123,  0.44045588682,      515.46387109300},
385     {     0.00000000129,  3.95296865191,    38526.57435087200},
386     {     0.00000000113,  5.69261397722,    10110.19277199240},
387     {     0.00000000098,  6.23797900467,      202.25339517410},
388     {     0.00000000099,  3.75627530197,    59728.66805461800},
389     {     0.00000000101,  4.62832512136,    65236.22129328540},
390     {     0.00000000111,  1.25947267592,    10846.06928552420},
391     {     0.00000000126,  4.45075374981,    80181.53746683979},
392     {     0.00000000110,  5.87454529350,    38500.27603107220},
393     {     0.00000000093,  0.03768705119,    90695.75207512038},
394     {     0.00000000128,  6.01024562160,    90394.82301305079},
395     {     0.00000000091,  1.77665981007,     1539.31586981200},
396     {     0.00000000092,  0.99804571578,       95.97922721780},
397     {     0.00000000117,  2.24143299549,    56600.27928952220},
398     {     0.00000000118,  6.09121325940,    29786.66025688100},
399     {     0.00000000098,  4.60938156207,    11787.10597030980},
400     {     0.00000000097,  3.92727733144,    11794.15220700780},
401     {     0.00000000085,  5.30575031807,    19624.75016129820},
402     {     0.00000000106,  0.82812501368,    24383.07910844140},
403     {     0.00000000085,  5.69642646462,    37703.97802425580},
404     {     0.00000000114,  5.19676285428,    70743.77453195279},
405     {     0.00000000081,  5.51324815184,      412.37109687440},
406     {     0.00000000080,  5.77520799089,    10632.77019008620},
407     {     0.00000000089,  2.13409771828,    44768.09940987860},
408     {     0.00000000094,  2.18120919704,    28313.28880466100},
409     {     0.00000000088,  0.57046254096,     3956.50801601940},
410     {     0.00000000078,  4.47358603432,      114.43928868521},
411     {     0.00000000104,  4.94045302010,    45585.17281218740},
412     {     0.00000000097,  4.02223363553,    10218.80847051840},
413     {     0.00000000094,  5.81137122373,    69166.43098950500},
414     {     0.00000000076,  0.78247116213,     9793.80090233580},
415     {     0.00000000079,  4.73339536112,    24978.52458948080},
416     {     0.00000000101,  4.81437377872,    58177.62283197000},
417     {     0.00000000097,  3.61746670975,    60530.48898574180},
418     {     0.00000000088,  4.87010387338,    63658.87775083760},
419     {     0.00000000088,  5.17408120336,    48417.97290558199},
420     {     0.00000000078,  5.81927313665,      567.71863773040},
421     {     0.00000000077,  6.16012067704,     1573.82042409880},
422     {     0.00000000084,  0.62512782571,    18100.00325845000},
423     {     0.00000000076,  5.12867208321,    49515.38250840700},
424     {     0.00000000067,  0.24541021814,    17271.88400752640},
425     {     0.00000000069,  0.29569499496,    10175.25787357520},
426     {     0.00000000088,  5.43871184563,    42456.78404709160},
427     {     0.00000000079,  0.30211728530,    63498.47038145279},
428     {     0.00000000080,  2.69571879625,     3149.16416058820},
429     {     0.00000000061,  4.80385228047,    19889.76658032659},
430     {     0.00000000084,  0.22956807093,    88817.47947060299},
431     {     0.00000000060,  0.46406912136,    36301.18868778519},
432     {     0.00000000071,  0.76007659495,    57837.13833230060},
433     {     0.00000000081,  5.24314123043,    36173.70819710020},
434     {     0.00000000057,  3.07470109636,     2118.76386037840},
435     {     0.00000000075,  0.66947402578,    10735.86296430480},
436     {     0.00000000058,  4.94877232192,    47888.28194048740},
437     {     0.00000000068,  0.96147256965,    24341.52831745660},
438     {     0.00000000076,  0.15485592669,    68390.90837818099},
439     {     0.00000000064,  3.61826420613,    32243.49850088060},
440     {     0.00000000062,  1.59487827272,    39999.94580309200},
441     {     0.00000000063,  0.16823121009,    53445.59220462660},
442     {     0.00000000052,  2.85553976522,    10323.49186743040},
443     {     0.00000000058,  1.07613515145,    11692.15212027540},
444     {     0.00000000052,  2.34807495268,    26709.64694241340},
445     {     0.00000000062,  4.09802218900,    34554.81386366760},
446     {     0.00000000048,  0.76057327599,    44783.35188106360},
447     {     0.00000000067,  0.07870600216,    47964.33728575900},
448     {     0.00000000048,  5.30855519348,    48733.23133818299},
449     {     0.00000000047,  3.09314000663,    70269.18098269838},
450     {     0.00000000053,  5.53372176617,    19903.99367432819},
451     {     0.00000000057,  2.43412854215,    10228.53801739600},
452     {     0.00000000043,  6.00071261364,    47938.03896595920},
453     {     0.00000000058,  1.23233304711,    59754.96637441780},
454     {     0.00000000055,  0.99068063794,    21000.91589075680},
455     {     0.00000000060,  5.94539126752,    69968.25192062880},
456     {     0.00000000049,  3.83996757537,    38631.28555024700},
457     {     0.00000000042,  4.73460925987,    37895.42629036740},
458     {     0.00000000044,  1.75905995399,    71519.29714327680},
459     {     0.00000000043,  6.08746206685,     2957.71589447660},
460     {     0.00000000040,  1.31794872194,    20529.66386664059},
461     {     0.00000000046,  4.41749158726,    34570.06633485260},
462     {     0.00000000045,  2.60413561993,    58101.56748669840},
463     {     0.00000000037,  4.69673401538,    44007.82926973960},
464     {     0.00000000039,  2.32823034676,    55798.45835839840},
465     {     0.00000000051,  1.76846419002,    78604.19392439199},
466     {     0.00000000038,  1.28879356308,    73096.64068572459},
467     {     0.00000000048,  1.18664500846,    28306.66024576099},
468     {     0.00000000036,  0.64770877031,     1478.86657406440},
469     {     0.00000000048,  0.40666475573,    40103.91789331980},
470 };
471 
472 
473 static const struct ln_vsop venus_longitude_l1[LONG_L1] = {
474     { 10213.28554621638,  0.00000000000,        0.00000000000},
475     {     0.00095617813,  2.46406511110,    10213.28554621100},
476     {     0.00007787201,  0.62478482220,    20426.57109242200},
477     {     0.00000151666,  6.10638559291,     1577.34354244780},
478     {     0.00000141694,  2.12362986036,    30639.85663863300},
479     {     0.00000173908,  2.65539499463,       26.29831979980},
480     {     0.00000082235,  5.70231469551,      191.44826611160},
481     {     0.00000069732,  2.68128549229,     9437.76293488700},
482     {     0.00000052292,  3.60270736876,      775.52261132400},
483     {     0.00000038313,  1.03371309443,      529.69096509460},
484     {     0.00000029630,  1.25050823203,     5507.55323866740},
485     {     0.00000025056,  6.10650638660,    10404.73381232260},
486     {     0.00000017772,  6.19369679929,     1109.37855209340},
487     {     0.00000016510,  2.64360813203,        7.11354700080},
488     {     0.00000014231,  5.45125927817,     9153.90361602180},
489     {     0.00000011627,  4.97604433638,      213.29909543800},
490     {     0.00000012563,  1.88122194951,      382.89653222320},
491     {     0.00000008877,  0.95245393457,    13367.97263110660},
492     {     0.00000007374,  4.39476352550,    10206.17199921020},
493     {     0.00000006550,  2.28168331756,     2352.86615377180},
494     {     0.00000006444,  1.41156299643,    40853.14218484400},
495     {     0.00000006269,  4.08365791523,     3154.68708489560},
496     {     0.00000006702,  5.05916048534,      801.82093112380},
497     {     0.00000004099,  4.12235848112,    18837.49819713819},
498     {     0.00000004883,  3.44513438224,    11015.10647733480},
499     {     0.00000003549,  6.19934345402,        5.52292430740},
500     {     0.00000003448,  1.77404222413,    11322.66409830440},
501     {     0.00000004290,  0.08136342862,     6283.07584999140},
502     {     0.00000003699,  2.48455675849,     5661.33204915220},
503     {     0.00000003671,  1.48751015918,     1059.38193018920},
504     {     0.00000003018,  2.23849523296,    18073.70493865020},
505     {     0.00000003000,  0.39169917698,       15.25247118500},
506     {     0.00000002776,  1.45644767378,    10239.58386601080},
507     {     0.00000002463,  0.36768007007,    22003.91463486980},
508     {     0.00000002954,  5.34806371393,     7084.89678111520},
509     {     0.00000002350,  2.36543900882,    17298.18232732620},
510     {     0.00000002405,  2.36085521516,    10596.18207843420},
511     {     0.00000002471,  2.11327686375,     8635.94200376320},
512     {     0.00000001717,  4.72125604095,    10186.98722641120},
513     {     0.00000002135,  4.46350370275,     8624.21265092720},
514     {     0.00000001626,  0.86147271429,    12566.15169998280},
515     {     0.00000001523,  0.67189933187,    14143.49524243060},
516     {     0.00000001473,  2.59350470099,     7064.12138562280},
517     {     0.00000001474,  5.92233777117,     9786.68735533500},
518     {     0.00000001237,  2.59741927942,     4551.95349705880},
519     {     0.00000001219,  2.83617320089,     9676.48103411560},
520     {     0.00000001242,  0.82080840456,    10742.97651130560},
521     {     0.00000001007,  4.25205211647,      426.59819087600},
522     {     0.00000001097,  3.84455455465,    21228.39202354580},
523     {     0.00000001150,  2.35531987378,     9690.70812811720},
524     {     0.00000001219,  2.27326005102,      522.57741809380},
525     {     0.00000001101,  3.74248862749,    18307.80723204360},
526     {     0.00000001031,  2.03889374176,       38.02767263580},
527     {     0.00000000971,  6.10589743884,     3532.06069281140},
528     {     0.00000000887,  4.72636674421,    10988.80815753500},
529     {     0.00000000927,  1.05402087347,    10021.83728009940},
530     {     0.00000000821,  2.60456032773,       19.66976089979},
531     {     0.00000000780,  0.18364413336,     4705.73230754360},
532     {     0.00000000810,  1.32033186808,    19896.88012732740},
533     {     0.00000000744,  3.33129743110,      536.80451209540},
534     {     0.00000000797,  2.23891817601,     3723.50895892300},
535     {     0.00000000709,  5.95126881058,       20.77539549240},
536     {     0.00000000894,  1.08522968560,    11790.62908865880},
537     {     0.00000000660,  0.29717009501,     7860.41939243920},
538     {     0.00000000733,  2.22147883292,    19360.07561523199},
539     {     0.00000000702,  1.76206343944,    19374.30270923360},
540     {     0.00000000633,  2.15202166788,    16496.36139620240},
541     {     0.00000000575,  2.38792087791,     6770.71060124560},
542     {     0.00000000532,  4.41576130890,      574.34479833480},
543     {     0.00000000518,  1.52546538858,    25934.12433108940},
544     {     0.00000000479,  0.30473233584,    28286.99048486120},
545     {     0.00000000576,  5.41170044566,      206.18554843720},
546     {     0.00000000482,  0.40816741074,     3340.61242669980},
547     {     0.00000000537,  0.22055767322,    19367.18916223280},
548     {     0.00000000574,  4.07672246337,    19651.04848109800},
549     {     0.00000000501,  3.08578363577,      245.83164622940},
550     {     0.00000000488,  5.22318430105,    25158.60171976540},
551     {     0.00000000450,  0.21279844600,       11.72935283600},
552     {     0.00000000432,  1.32004964493,      103.09277421860},
553     {     0.00000000434,  5.91094755233,    19786.67380610799},
554     {     0.00000000421,  2.71057839701,    13936.79450513400},
555     {     0.00000000564,  6.13266504618,     3930.20969621960},
556     {     0.00000000478,  4.70225377704,    14945.31617355440},
557     {     0.00000000408,  2.93857115699,    10220.39909321180},
558     {     0.00000000359,  0.72354778897,      419.48464387520},
559     {     0.00000000449,  1.44520508753,     8662.24032356300},
560     {     0.00000000353,  2.85616596224,    29864.33402730900},
561     {     0.00000000333,  1.41991315364,    29580.47470844380},
562     {     0.00000000443,  1.93864343247,     9146.79006902100},
563     {     0.00000000310,  1.08363376581,    20618.01935853360},
564     {     0.00000000324,  1.80146948625,    18830.38465013739},
565     {     0.00000000370,  6.16895004656,     2218.75710418680},
566     {     0.00000000278,  2.20429108375,    18844.61174413899},
567     {     0.00000000286,  3.08458231517,    17277.40693183380},
568     {     0.00000000383,  0.13900678695,     4732.03062734340},
569     {     0.00000000292,  0.43530118043,    29088.81141598500},
570     {     0.00000000273,  5.84415383782,     9573.38825989700},
571     {     0.00000000324,  2.14135439540,     9999.98645077300},
572     {     0.00000000264,  5.20407029554,      220.41264243880},
573     {     0.00000000254,  0.34417665274,    28521.09277825460},
574     {     0.00000000300,  3.76015126903,     8094.52168583260},
575     {     0.00000000303,  1.85088655195,     1589.07289528380},
576     {     0.00000000206,  2.49682541324,    51066.42773105500},
577     {     0.00000000206,  0.97144383633,    10234.06094170340},
578     {     0.00000000212,  0.24173677600,       36.02786667740},
579     {     0.00000000208,  5.19345603406,    24356.78078864160},
580     {     0.00000000216,  5.88607943223,    18875.52586977400},
581     {     0.00000000258,  6.27611237676,     1551.04522264800},
582     {     0.00000000200,  2.09314510849,     9683.59458111640},
583     {     0.00000000217,  5.79530885159,     9103.90699411760},
584     {     0.00000000188,  0.39123199129,    19573.37471066999},
585     {     0.00000000187,  5.49670351645,      170.67287061920},
586     {     0.00000000233,  3.85755192539,    20400.27277262220},
587     {     0.00000000178,  4.90042854659,    10787.63034454580},
588     {     0.00000000188,  1.62614657498,     9161.01716302260},
589     {     0.00000000177,  1.88170417337,    33019.02111220460},
590     {     0.00000000209,  2.66033526608,     3442.57494496540},
591     {     0.00000000164,  5.04773317971,    32217.20018108080},
592     {     0.00000000162,  4.92736966968,    10426.58464164900},
593     {     0.00000000186,  5.13678812068,     7255.56965173440},
594     {     0.00000000177,  5.70206821967,     9992.87290377220},
595     {     0.00000000177,  2.40042123486,    20452.86941222180},
596     {     0.00000000212,  2.73881400176,     3128.38876509580},
597     {     0.00000000208,  3.38876526854,    17778.11626694899},
598     {     0.00000000173,  4.09215943674,    33794.54372352860},
599     {     0.00000000147,  4.25008910034,    16983.99614745660},
600     {     0.00000000189,  1.43553862242,     2379.16447357160},
601     {     0.00000000139,  2.99154379541,      110.20632121940},
602     {     0.00000000159,  5.23851679605,    10007.09999777380},
603     {     0.00000000169,  2.67970563071,    15720.83878487840},
604     {     0.00000000136,  0.88942869764,    22805.73556599360},
605     {     0.00000000155,  5.90500835975,    12592.45001978260},
606     {     0.00000000151,  0.03422618975,    27991.40181316000},
607     {     0.00000000111,  0.77661072477,     6681.22485339960},
608     {     0.00000000109,  2.25388616761,    26735.94526221320},
609     {     0.00000000122,  4.84805105466,    19992.85935454519},
610     {     0.00000000112,  3.31796669604,    36949.23080842420},
611     {     0.00000000106,  3.34507236765,    10103.07922499160},
612     {     0.00000000114,  4.36384000196,    20007.08644854680},
613     {     0.00000000121,  5.42385293514,    37724.75341974820},
614     {     0.00000000100,  0.05731448574,    30110.16567353840},
615     {     0.00000000098,  5.07711736751,      135.62532501000},
616     {     0.00000000109,  0.54849921587,    21535.94964451540},
617     {     0.00000000104,  3.67555714699,    21202.09370374600},
618     {     0.00000000103,  2.65873403125,    20213.27199698400},
619     {     0.00000000087,  5.04316754485,     9830.38901398780},
620     {     0.00000000103,  2.01542881355,    45585.17281218740},
621     {     0.00000000088,  2.62613816931,       21.85082932640},
622     {     0.00000000084,  3.50355880173,      639.89728631400},
623     {     0.00000000099,  0.61072730211,    41654.96311596780},
624     {     0.00000000081,  0.46468679835,       77.67377042800},
625     {     0.00000000092,  4.82530051729,    29043.67019634839},
626     {     0.00000000090,  4.34075776744,    29057.89729034999},
627     {     0.00000000081,  0.01915973453,    24150.08005134500},
628     {     0.00000000095,  2.42613786510,    23581.25817731760},
629     {     0.00000000101,  4.27032438869,    15874.61759536320},
630     {     0.00000000093,  1.79250830018,    12432.04265039780},
631     {     0.00000000087,  5.25157021446,    14128.24277124560},
632     {     0.00000000089,  5.65756996753,      377.37360791580},
633     {     0.00000000076,  1.32618111784,    18300.69368504279},
634     {     0.00000000097,  5.67942873241,      227.47613278900},
635     {     0.00000000076,  2.93363913259,    38204.68735937100},
636     {     0.00000000091,  2.60544242067,     1052.26838318840},
637     {     0.00000000084,  5.65355105405,    17468.85519794540},
638     {     0.00000000082,  0.14972353998,    29050.78374334920},
639     {     0.00000000086,  1.42751065635,    11272.66747640020},
640     {     0.00000000073,  4.75280755154,    40879.44050464380},
641     {     0.00000000068,  3.56578829793,    30666.15495843280},
642     {     0.00000000068,  5.80655405181,    20809.46762464520},
643     {     0.00000000079,  3.84440385450,    27511.46787353720},
644     {     0.00000000067,  3.74236733721,    49515.38250840700},
645     {     0.00000000064,  4.24772678145,      153.77881048480},
646     {     0.00000000064,  2.99454749109,    27197.28169366760},
647     {     0.00000000070,  4.03868009742,    56600.27928952220},
648     {     0.00000000069,  1.73648747605,    37410.56723987860},
649     {     0.00000000065,  1.08206062736,    68050.42387851159},
650     {     0.00000000062,  4.77698454650,     3914.95722503460},
651     {     0.00000000068,  4.28465793234,    39264.06928956020},
652     {     0.00000000061,  4.96121014691,    34596.36465465240},
653     {     0.00000000058,  3.74010494151,     1066.49547719000},
654     {     0.00000000063,  0.15331622244,    57375.80190084620},
655     {     0.00000000057,  5.42590958930,    20419.45754542119},
656     {     0.00000000057,  3.59399518494,      735.87651353180},
657     {     0.00000000065,  2.10322000074,       74.78159856730},
658     {     0.00000000065,  4.21150522641,       49.75702547180},
659     {     0.00000000052,  0.03409255574,    18849.22754997420},
660     {     0.00000000052,  1.95168272115,    18314.92077904440},
661     {     0.00000000055,  2.63906959481,    52670.06959330260},
662     {     0.00000000057,  1.25081330234,    10218.80847051840},
663     {     0.00000000053,  2.14346912907,    13745.34623902240},
664     {     0.00000000049,  0.77417108584,    35371.88726597640},
665     {     0.00000000048,  6.00565977593,      283.85931886520},
666     {     0.00000000050,  4.45949921607,    40077.61957352000},
667     {     0.00000000047,  2.63299859494,    51868.24866217880},
668     {     0.00000000046,  0.05105081843,    38526.57435087200},
669     {     0.00000000050,  4.37549274002,    28513.97923125379},
670     {     0.00000000046,  2.93422086586,    27682.14074415640},
671     {     0.00000000062,  0.41777498261,    30831.30490474460},
672     {     0.00000000053,  1.55276873128,    36301.18868778519},
673     {     0.00000000051,  5.45979584751,    60530.48898574180},
674     {     0.00000000051,  2.02307685593,    59728.66805461800},
675     {     0.00000000045,  5.59492908223,      467.96499035440},
676     {     0.00000000046,  5.16141298965,    53445.59220462660},
677     {     0.00000000045,  5.79863400674,    39793.76025465480},
678     {     0.00000000044,  2.35499883188,     9411.46461508720},
679     {     0.00000000043,  5.62725673544,       14.22709400160},
680     {     0.00000000047,  3.73567275749,    64460.69868196140},
681     {     0.00000000041,  4.11417818861,    14765.23904326980},
682     {     0.00000000039,  0.99375127466,    94138.32702008578},
683     {     0.00000000040,  3.06358586355,      813.55028395980},
684     {     0.00000000039,  6.21378797479,    44809.65020086340},
685     {     0.00000000038,  5.90441887648,    14919.01785375460},
686     {     0.00000000037,  1.08711907413,    17085.95866572220},
687     {     0.00000000039,  1.31034025695,    48739.85989708300},
688     {     0.00000000047,  1.46478876042,    38500.27603107220},
689     {     0.00000000045,  5.84053368365,    37674.99639427640},
690     {     0.00000000036,  1.43280677914,    42456.78404709160},
691     {     0.00000000039,  0.94257393865,    16522.65971600220},
692     {     0.00000000035,  3.00235738584,    36147.40987730040},
693     {     0.00000000031,  1.04908493403,    20235.12282631040},
694     {     0.00000000029,  2.40482238520,    22779.43724619380},
695     {     0.00000000032,  0.41152109043,    10207.76262190360},
696     {     0.00000000028,  4.55982574192,    69166.43098950500},
697     {     0.00000000026,  5.74236795898,    31441.67756975680},
698     {     0.00000000027,  0.29541194003,    19999.97290154599},
699     {     0.00000000033,  4.76470012256,    32858.61374281979},
700     {     0.00000000032,  2.73060531796,    42430.48572729180},
701     {     0.00000000031,  6.16859793641,    10192.51015071860},
702     {     0.00000000022,  5.00575021321,    38741.49187146640},
703     {     0.00000000023,  1.31610007722,    41962.52073693740},
704     {     0.00000000025,  3.71847476472,    55798.45835839840},
705     {     0.00000000020,  3.45607652624,    51092.72605085480},
706     {     0.00000000022,  4.07064236572,    77026.85038194420},
707     {     0.00000000020,  3.00992711288,    24383.07910844140},
708     {     0.00000000023,  2.62973172963,    17248.42530185440},
709 };
710 
711 
712 static const struct ln_vsop venus_longitude_l2[LONG_L2] = {
713     {     0.00003894209,  0.34823650721,    10213.28554621100},
714     {     0.00000595403,  2.01456107998,    20426.57109242200},
715     {     0.00000287868,  0.00000000000,        0.00000000000},
716     {     0.00000023838,  2.04588223604,       26.29831979980},
717     {     0.00000009964,  3.97089333901,      775.52261132400},
718     {     0.00000007196,  3.65730119531,    30639.85663863300},
719     {     0.00000007043,  1.52107808192,     1577.34354244780},
720     {     0.00000006014,  1.00039990357,      191.44826611160},
721     {     0.00000003167,  4.36138169912,     9437.76293488700},
722     {     0.00000001934,  3.39260216059,      382.89653222320},
723     {     0.00000001459,  6.05311371882,      529.69096509460},
724     {     0.00000001345,  2.94746266562,     5507.55323866740},
725     {     0.00000001024,  1.40825326249,    10404.73381232260},
726     {     0.00000001224,  3.73276078401,     3154.68708489560},
727     {     0.00000001033,  3.52850062173,    11015.10647733480},
728     {     0.00000000767,  2.69606070058,    40853.14218484400},
729     {     0.00000000954,  5.11160150203,      801.82093112380},
730     {     0.00000000742,  1.49195106907,     1109.37855209340},
731     {     0.00000000525,  3.31953730020,      213.29909543800},
732     {     0.00000000574,  0.92286899335,    10239.58386601080},
733     {     0.00000000602,  5.19233174414,     7084.89678111520},
734     {     0.00000000430,  2.67149013569,    13367.97263110660},
735     {     0.00000000414,  4.12761290944,     8635.94200376320},
736     {     0.00000000354,  1.12184896586,     9153.90361602180},
737     {     0.00000000301,  3.90093359463,    10596.18207843420},
738     {     0.00000000212,  5.32697962605,    18837.49819713819},
739     {     0.00000000260,  0.22263894789,     2352.86615377180},
740     {     0.00000000238,  4.67681098719,     6283.07584999140},
741     {     0.00000000201,  4.08110855678,    11790.62908865880},
742     {     0.00000000194,  6.02724392286,     7860.41939243920},
743     {     0.00000000142,  2.26680009846,    12566.15169998280},
744     {     0.00000000134,  4.10542992676,    17298.18232732620},
745     {     0.00000000132,  4.94076356419,    14143.49524243060},
746     {     0.00000000120,  3.39720208207,    11322.66409830440},
747     {     0.00000000122,  5.92478855457,      574.34479833480},
748     {     0.00000000123,  0.09583563880,    18073.70493865020},
749     {     0.00000000093,  0.40064005550,     1059.38193018920},
750     {     0.00000000092,  5.49232517605,    10021.83728009940},
751     {     0.00000000084,  4.89826807621,    18307.80723204360},
752     {     0.00000000074,  2.35249523388,      426.59819087600},
753     {     0.00000000093,  4.99308589840,    14945.31617355440},
754     {     0.00000000082,  5.40423993574,    10186.98722641120},
755     {     0.00000000077,  3.75197709593,     3723.50895892300},
756     {     0.00000000073,  4.51758491759,    22003.91463486980},
757     {     0.00000000063,  5.40172448808,    21228.39202354580},
758     {     0.00000000056,  4.11553639116,     7064.12138562280},
759     {     0.00000000060,  4.93370008569,    19367.18916223280},
760     {     0.00000000049,  3.25379905760,     4705.73230754360},
761     {     0.00000000050,  3.77184609210,    16496.36139620240},
762     {     0.00000000046,  3.47336429841,    24356.78078864160},
763     {     0.00000000039,  4.90344944830,    10988.80815753500},
764     {     0.00000000043,  5.95093813100,    15720.83878487840},
765     {     0.00000000046,  0.17122496786,    18875.52586977400},
766     {     0.00000000036,  0.01596424782,    32217.20018108080},
767     {     0.00000000034,  4.09532663146,    51066.42773105500},
768     {     0.00000000035,  5.21393402819,    29088.81141598500},
769     {     0.00000000038,  5.09836948659,    20400.27277262220},
770     {     0.00000000031,  4.74821153380,    28521.09277825460},
771     {     0.00000000034,  0.23500259595,     1551.04522264800},
772     {     0.00000000028,  6.22734256170,    19896.88012732740},
773     {     0.00000000027,  2.91232520372,    20452.86941222180},
774     {     0.00000000024,  0.49535690639,    21202.09370374600},
775     {     0.00000000022,  0.66358494216,    25158.60171976540},
776     {     0.00000000021,  4.95420122738,    28286.99048486120},
777     {     0.00000000023,  2.15949646745,    20618.01935853360},
778     {     0.00000000017,  5.75476455324,    19651.04848109800},
779     {     0.00000000014,  4.88424354153,    10742.97651130560},
780     {     0.00000000016,  1.22245134655,     9683.59458111640},
781     {     0.00000000012,  3.40005378661,     9830.38901398780},
782     {     0.00000000012,  6.06704683094,    25934.12433108940},
783     {     0.00000000011,  3.73596829532,     4732.03062734340},
784     {     0.00000000010,  5.50483756065,    29580.47470844380},
785 };
786 
787 
788 static const struct ln_vsop venus_longitude_l3[LONG_L3] = {
789     {     0.00000136328,  4.79698723753,    10213.28554621100},
790     {     0.00000030661,  3.71663788064,    20426.57109242200},
791     {     0.00000003041,  3.14159265359,        0.00000000000},
792     {     0.00000000506,  5.34186957078,    30639.85663863300},
793     {     0.00000000071,  4.27707588774,    40853.14218484400},
794     {     0.00000000008,  1.76653383282,    10186.98722641120},
795     {     0.00000000006,  5.61707828538,    10239.58386601080},
796 };
797 
798 
799 static const struct ln_vsop venus_longitude_l4[LONG_L4] = {
800     {     0.00000001636,  2.50540811485,    10213.28554621100},
801     {     0.00000001080,  5.10106236574,    20426.57109242200},
802     {     0.00000000018,  0.88315856739,    30639.85663863300},
803     {     0.00000000005,  5.76650226003,    40853.14218484400},
804 };
805 
806 
807 static const struct ln_vsop venus_longitude_l5[LONG_L5] = {
808     {     0.00000000122,  1.88711724630,    10213.28554621100},
809     {     0.00000000043,  0.42125909290,    20426.57109242200},
810 };
811 
812 
813 static const struct ln_vsop venus_latitude_b0[LAT_B0] = {
814     {     0.05923638472,  0.26702775812,    10213.28554621100},
815     {     0.00040107978,  1.14737178112,    20426.57109242200},
816     {     0.00032814918,  3.14159265359,        0.00000000000},
817     {     0.00001011392,  1.08946119730,    30639.85663863300},
818     {     0.00000149458,  6.25390268112,    18073.70493865020},
819     {     0.00000137788,  0.86020095586,     1577.34354244780},
820     {     0.00000129973,  3.67152480061,     9437.76293488700},
821     {     0.00000119507,  3.70468787104,     2352.86615377180},
822     {     0.00000107971,  4.53903678347,    22003.91463486980},
823     {     0.00000092029,  1.53954519783,     9153.90361602180},
824     {     0.00000052982,  2.28138198002,     5507.55323866740},
825     {     0.00000045617,  0.72319646289,    10239.58386601080},
826     {     0.00000038855,  2.93437865147,    10186.98722641120},
827     {     0.00000043491,  6.14015779106,    11790.62908865880},
828     {     0.00000041700,  5.99126840013,    19896.88012732740},
829     {     0.00000039644,  3.86842103668,     8635.94200376320},
830     {     0.00000039175,  3.94960158566,      529.69096509460},
831     {     0.00000033320,  4.83194901518,    14143.49524243060},
832     {     0.00000023711,  2.90647469167,    10988.80815753500},
833     {     0.00000023501,  2.00771051056,    13367.97263110660},
834     {     0.00000021809,  2.69701690731,    19651.04848109800},
835     {     0.00000020653,  0.98666980431,      775.52261132400},
836     {     0.00000016976,  4.13711781587,    10021.83728009940},
837     {     0.00000017835,  5.96267283261,    25934.12433108940},
838     {     0.00000014949,  5.61073907363,    10404.73381232260},
839     {     0.00000018579,  1.80529274878,    40853.14218484400},
840     {     0.00000015408,  3.29564350192,    11015.10647733480},
841     {     0.00000012936,  5.42651380854,    29580.47470844380},
842     {     0.00000011961,  3.57602108535,    10742.97651130560},
843     {     0.00000011827,  1.19069755007,     8624.21265092720},
844     {     0.00000011466,  5.12780356163,     6283.07584999140},
845     {     0.00000009485,  2.75168410372,      191.44826611160},
846     {     0.00000013129,  5.70734244216,     9683.59458111640},
847     {     0.00000008583,  0.43182249198,     9786.68735533500},
848     {     0.00000009762,  0.14614751233,    20618.01935853360},
849     {     0.00000008149,  1.30548940012,    15720.83878487840},
850     {     0.00000006050,  6.26541666310,    11322.66409830440},
851     {     0.00000005955,  4.92234246004,     1059.38193018920},
852     {     0.00000006983,  3.44922389028,    17298.18232732620},
853     {     0.00000006228,  1.13312066423,    29864.33402730900},
854     {     0.00000006186,  4.92496803755,    19367.18916223280},
855     {     0.00000006155,  2.42413936688,     4705.73230754360},
856     {     0.00000005204,  3.42528894645,     9103.90699411760},
857     {     0.00000006000,  3.57638441137,     3154.68708489560},
858     {     0.00000004795,  3.86669268805,     7860.41939243920},
859     {     0.00000005290,  4.99182440452,     7084.89678111520},
860     {     0.00000004070,  5.58794939725,    12566.15169998280},
861     {     0.00000003942,  5.68758787835,    10206.17199921020},
862     {     0.00000003797,  3.89520601076,    10192.51015071860},
863     {     0.00000003798,  6.06410995916,    10234.06094170340},
864     {     0.00000003579,  0.73789669232,     4551.95349705880},
865     {     0.00000003641,  2.61501257209,    15874.61759536320},
866     {     0.00000003266,  0.97519046577,    23581.25817731760},
867     {     0.00000002813,  0.29952168976,     9411.46461508720},
868     {     0.00000003048,  2.51084795752,    33794.54372352860},
869     {     0.00000002559,  4.58049120677,      801.82093112380},
870     {     0.00000002462,  5.05797190589,    29050.78374334920},
871     {     0.00000002593,  5.73113176750,    20213.27199698400},
872     {     0.00000002625,  4.24272906572,      213.29909543800},
873     {     0.00000002246,  0.82114581737,    28286.99048486120},
874     {     0.00000002229,  2.22457598233,    10426.58464164900},
875     {     0.00000001742,  1.48397982399,     7058.59846131540},
876     {     0.00000001660,  5.42775872173,    32217.20018108080},
877     {     0.00000001491,  4.64880136152,     1109.37855209340},
878     {     0.00000002010,  0.75702888130,     9999.98645077300},
879     {     0.00000001563,  3.93962296253,    37724.75341974820},
880     {     0.00000001538,  2.17314207854,    21535.94964451540},
881     {     0.00000001546,  4.70759129230,    14945.31617355440},
882     {     0.00000001200,  1.48266337604,     9830.38901398780},
883     {     0.00000001224,  5.55090394425,     5661.33204915220},
884     {     0.00000001111,  1.20281402179,     9573.38825989700},
885     {     0.00000001064,  1.98891375551,       26.29831979980},
886     {     0.00000001041,  5.38535116069,        7.11354700080},
887     {     0.00000001036,  1.16727012915,     8662.24032356300},
888     {     0.00000001143,  3.20596958339,     3532.06069281140},
889     {     0.00000001201,  0.81922498884,     8094.52168583260},
890     {     0.00000001005,  2.38430401606,    27511.46787353720},
891     {     0.00000001047,  4.56525030764,    20419.45754542119},
892     {     0.00000000968,  6.18496285828,    25158.60171976540},
893     {     0.00000001044,  1.98033274400,    10596.18207843420},
894     {     0.00000000962,  0.48573513747,    23958.63178523340},
895     {     0.00000000846,  0.01577122167,     3128.38876509580},
896     {     0.00000000792,  5.39683788914,    24356.78078864160},
897     {     0.00000000858,  5.34721623594,    41654.96311596780},
898     {     0.00000000758,  6.25923864937,    20452.86941222180},
899     {     0.00000000801,  4.62406152514,     9929.42622734580},
900     {     0.00000000802,  5.37234892520,    10497.14486507620},
901     {     0.00000000750,  3.85221291360,    21228.39202354580},
902     {     0.00000000701,  1.98087454891,     3930.20969621960},
903     {     0.00000000719,  6.11596800207,    10218.80847051840},
904     {     0.00000000672,  6.23429601211,    14765.23904326980},
905     {     0.00000000639,  5.37595576896,     1589.07289528380},
906     {     0.00000000605,  2.42330391120,    10251.31321884680},
907     {     0.00000000726,  6.16679714176,    18875.52586977400},
908     {     0.00000000613,  5.99731180692,     4732.03062734340},
909     {     0.00000000720,  3.84286345199,    10207.76262190360},
910     {     0.00000000637,  6.17053891151,    10220.39909321180},
911     {     0.00000000515,  1.03004255543,    22779.43724619380},
912     {     0.00000000574,  0.43826866390,    17085.95866572220},
913     {     0.00000000510,  1.41066951048,     9161.01716302260},
914     {     0.00000000569,  3.34606383399,     3340.61242669980},
915     {     0.00000000608,  1.25236241968,    10175.25787357520},
916     {     0.00000000524,  2.39794248664,    26087.90314157420},
917     {     0.00000000543,  1.34669062643,    29088.81141598500},
918     {     0.00000000527,  4.02005650673,    18849.22754997420},
919     {     0.00000000568,  1.65449906239,    39264.06928956020},
920     {     0.00000000518,  4.96996115441,    30213.25844775700},
921     {     0.00000000515,  5.78424359731,    12592.45001978260},
922     {     0.00000000538,  4.56198503482,    10063.72234907640},
923     {     0.00000000484,  4.18570967634,    14919.01785375460},
924     {     0.00000000493,  4.79953014808,     9146.79006902100},
925     {     0.00000000427,  3.76882042266,    11272.66747640020},
926     {     0.00000000495,  0.49176119118,    45585.17281218740},
927     {     0.00000000495,  3.74294537743,    31441.67756975680},
928     {     0.00000000524,  0.97969838972,    30110.16567353840},
929     {     0.00000000483,  1.87898083461,    51066.42773105500},
930     {     0.00000000505,  3.70047474052,    20400.27277262220},
931     {     0.00000000351,  4.34026574490,    10137.01947493540},
932     {     0.00000000356,  5.56743301907,    18837.49819713819},
933     {     0.00000000328,  3.78427378911,     6681.22485339960},
934     {     0.00000000349,  4.20513745358,    20956.26205751660},
935     {     0.00000000333,  4.44934899983,    28521.09277825460},
936     {     0.00000000296,  2.83205515647,    17277.40693183380},
937     {     0.00000000311,  2.57313811169,    20809.46762464520},
938     {     0.00000000294,  0.75089224483,     3149.16416058820},
939     {     0.00000000377,  3.98143310344,    21202.09370374600},
940     {     0.00000000272,  5.56146064111,    16496.36139620240},
941     {     0.00000000314,  0.02584607106,    13745.34623902240},
942     {     0.00000000263,  0.55359290511,    36147.40987730040},
943     {     0.00000000286,  5.16408902152,      426.59819087600},
944     {     0.00000000279,  4.29871616015,    19999.97290154599},
945     {     0.00000000280,  1.92923790310,    49515.38250840700},
946     {     0.00000000265,  4.81161712090,    20235.12282631040},
947     {     0.00000000273,  5.12739677980,    35371.88726597640},
948     {     0.00000000307,  5.28914601501,      382.89653222320},
949     {     0.00000000223,  2.50591295336,    26709.64694241340},
950     {     0.00000000235,  5.96522395118,    10198.03307502600},
951     {     0.00000000234,  3.52866583267,    10228.53801739600},
952     {     0.00000000224,  6.24561979791,     7064.12138562280},
953     {     0.00000000251,  2.84752569358,    33019.02111220460},
954     {     0.00000000196,  1.50610823821,    31749.23519072640},
955     {     0.00000000192,  1.69322019350,    13341.67431130680},
956     {     0.00000000180,  6.19353102835,    39793.76025465480},
957     {     0.00000000199,  1.16466425386,    22805.73556599360},
958     {     0.00000000180,  3.72630445822,     1551.04522264800},
959     {     0.00000000172,  3.35254224852,    53445.59220462660},
960     {     0.00000000195,  1.51901264133,    43232.30665841560},
961     {     0.00000000174,  2.84049662693,     9967.45389998160},
962     {     0.00000000163,  4.29008955007,    36949.23080842420},
963     {     0.00000000169,  0.37000676558,    10459.11719244040},
964     {     0.00000000137,  5.61149803116,    10529.67741586760},
965     {     0.00000000139,  0.87990954673,    16522.65971600220},
966     {     0.00000000139,  4.12576475412,    36301.18868778519},
967     {     0.00000000127,  5.14447758617,     5481.25491886760},
968     {     0.00000000131,  3.11317801589,     9896.89367655440},
969     {     0.00000000131,  0.89697384734,     3442.57494496540},
970     {     0.00000000121,  1.32914080245,    38734.37832446560},
971     {     0.00000000122,  1.59017183044,    10110.19277199240},
972     {     0.00000000123,  2.33714216061,    10316.37832042960},
973     {     0.00000000133,  2.90682399304,     9793.80090233580},
974     {     0.00000000111,  2.51956905782,    13936.79450513400},
975     {     0.00000000120,  0.36015902371,      536.80451209540},
976     {     0.00000000115,  2.53305863643,    26735.94526221320},
977     {     0.00000000108,  2.65839634325,    10232.95530711079},
978     {     0.00000000108,  0.55230439694,    10193.61578531121},
979     {     0.00000000138,  1.06919239242,    65236.22129328540},
980     {     0.00000000101,  3.17003240566,    19317.19254032860},
981     {     0.00000000127,  5.63110477712,    10288.06714477830},
982     {     0.00000000127,  3.86278127025,    10138.50394764370},
983     {     0.00000000137,  2.93350659462,    47162.51635463520},
984     {     0.00000000095,  5.03917884339,    52175.80628314840},
985     {     0.00000000094,  0.71305001399,    38500.27603107220},
986     {     0.00000000093,  5.46196838829,    11764.33076885900},
987     {     0.00000000096,  1.52914774412,     9690.70812811720},
988     {     0.00000000101,  0.83318284424,     6489.77658728800},
989     {     0.00000000115,  3.76443612240,      522.57741809380},
990     {     0.00000000089,  2.53312656681,    10735.86296430480},
991     {     0.00000000082,  0.85729618993,     2379.16447357160},
992     {     0.00000000103,  5.22683237626,      103.09277421860},
993     {     0.00000000090,  2.12423586627,    28313.28880466100},
994     {     0.00000000090,  0.39668501734,     9580.50180689780},
995     {     0.00000000074,  6.02798429860,     3723.50895892300},
996     {     0.00000000081,  5.25045057985,    10419.47109464820},
997     {     0.00000000080,  4.23724598221,    10007.09999777380},
998     {     0.00000000091,  2.48874147948,    10846.06928552420},
999     {     0.00000000085,  3.82491067322,    51868.24866217880},
1000     {     0.00000000081,  2.26186773193,     3903.91137641980},
1001     {     0.00000000097,  0.77436917916,    18307.80723204360},
1002     {     0.00000000094,  0.17064745052,     6872.67311951120},
1003     {     0.00000000080,  5.62388508292,    29999.95935231900},
1004     {     0.00000000068,  2.71544542018,    16983.99614745660},
1005     {     0.00000000076,  0.36189761470,    39302.09696219600},
1006     {     0.00000000066,  0.76731351843,       20.77539549240},
1007     {     0.00000000075,  2.27327165974,     8521.11987670860},
1008     {     0.00000000058,  2.14482855875,     8631.32619792800},
1009     {     0.00000000064,  5.83567991327,     2118.76386037840},
1010     {     0.00000000058,  2.98359709521,    19889.76658032659},
1011     {     0.00000000054,  1.78252843890,    40077.61957352000},
1012     {     0.00000000055,  4.70485939801,      639.89728631400},
1013     {     0.00000000060,  5.89548057045,    41962.52073693740},
1014     {     0.00000000066,  2.24746237992,       74.78159856730},
1015     {     0.00000000061,  3.40726181591,    27490.69247804480},
1016     {     0.00000000051,  3.07546032535,    24150.08005134500},
1017     {     0.00000000057,  2.30081371235,    20529.66386664059},
1018     {     0.00000000051,  2.37255859198,    29573.36116144300},
1019     {     0.00000000052,  4.76676085839,    57375.80190084620},
1020     {     0.00000000054,  5.89684197257,    19903.99367432819},
1021     {     0.00000000047,  1.61776744350,    30831.30490474460},
1022     {     0.00000000040,  5.32238959879,    42430.48572729180},
1023     {     0.00000000051,  5.29366964725,    29587.58825544460},
1024 };
1025 
1026 
1027 static const struct ln_vsop venus_latitude_b1[LAT_B1] = {
1028     {     0.00287821243,  1.88964962838,    10213.28554621100},
1029     {     0.00003499578,  3.71117560516,    20426.57109242200},
1030     {     0.00001257844,  0.00000000000,        0.00000000000},
1031     {     0.00000096152,  2.74240664188,    30639.85663863300},
1032     {     0.00000013051,  2.27549606211,     9437.76293488700},
1033     {     0.00000008052,  5.55049163175,     1577.34354244780},
1034     {     0.00000006792,  1.60704519868,    18073.70493865020},
1035     {     0.00000007521,  0.28931916342,     9153.90361602180},
1036     {     0.00000005612,  1.59167143282,    11790.62908865880},
1037     {     0.00000006460,  5.23429470615,    10186.98722641120},
1038     {     0.00000005405,  6.15384515120,    22003.91463486980},
1039     {     0.00000004194,  5.40627767662,     2352.86615377180},
1040     {     0.00000005097,  4.17404177420,    10239.58386601080},
1041     {     0.00000004085,  0.73618047930,     5507.55323866740},
1042     {     0.00000003349,  1.34464128958,    10404.73381232260},
1043     {     0.00000002941,  4.40460505149,    19651.04848109800},
1044     {     0.00000002670,  3.92292198547,    40853.14218484400},
1045     {     0.00000002746,  5.04771993757,    10988.80815753500},
1046     {     0.00000002216,  1.74777661827,     8635.94200376320},
1047     {     0.00000001934,  1.35730576040,    19896.88012732740},
1048     {     0.00000001960,  0.38471810829,    13367.97263110660},
1049     {     0.00000001859,  5.60931743743,      529.69096509460},
1050     {     0.00000001586,  2.31959766692,    10021.83728009940},
1051     {     0.00000001733,  3.34619758004,     6283.07584999140},
1052     {     0.00000001227,  1.71667580691,    20618.01935853360},
1053     {     0.00000001223,  6.18665596267,     7860.41939243920},
1054     {     0.00000000980,  2.99089645869,    15720.83878487840},
1055     {     0.00000000961,  5.06770207004,      775.52261132400},
1056     {     0.00000000976,  1.28004342015,    25934.12433108940},
1057     {     0.00000000785,  1.77460186481,    11322.66409830440},
1058     {     0.00000000727,  0.60317628984,     8624.21265092720},
1059     {     0.00000000756,  0.68622306427,    19367.18916223280},
1060     {     0.00000000625,  0.74326657001,    29580.47470844380},
1061     {     0.00000000525,  5.08155157418,     9786.68735533500},
1062     {     0.00000000553,  1.74144182497,    17298.18232732620},
1063     {     0.00000000503,  2.68460156951,    23581.25817731760},
1064     {     0.00000000467,  0.17554338129,    11015.10647733480},
1065     {     0.00000000400,  0.33304670031,     4705.73230754360},
1066     {     0.00000000438,  2.30926644329,    10742.97651130560},
1067     {     0.00000000356,  1.05880387658,    14143.49524243060},
1068     {     0.00000000359,  4.84089408623,     3930.20969621960},
1069     {     0.00000000431,  3.73519308368,    10596.18207843420},
1070     {     0.00000000312,  6.24028343022,     9830.38901398780},
1071     {     0.00000000321,  3.83963668925,    21228.39202354580},
1072     {     0.00000000329,  2.71641787634,    29864.33402730900},
1073     {     0.00000000267,  1.90575325749,     9103.90699411760},
1074     {     0.00000000256,  4.22499119257,      191.44826611160},
1075     {     0.00000000259,  1.81366693404,     1059.38193018920},
1076     {     0.00000000348,  2.27789745461,     9999.98645077300},
1077     {     0.00000000258,  2.61400704653,     9411.46461508720},
1078     {     0.00000000242,  3.18580218709,    12566.15169998280},
1079     {     0.00000000294,  4.38485988087,    15874.61759536320},
1080     {     0.00000000274,  4.80172249298,    10206.17199921020},
1081     {     0.00000000243,  6.15371511696,    20419.45754542119},
1082     {     0.00000000216,  2.14070499134,      801.82093112380},
1083     {     0.00000000195,  3.43788708589,    28286.99048486120},
1084     {     0.00000000203,  4.40417469081,    10220.39909321180},
1085     {     0.00000000204,  1.39050905939,    10234.06094170340},
1086     {     0.00000000177,  6.13411796219,    10426.58464164900},
1087     {     0.00000000174,  6.13034607143,     9161.01716302260},
1088     {     0.00000000186,  3.77010906124,     7058.59846131540},
1089     {     0.00000000167,  5.56979067201,    10192.51015071860},
1090     {     0.00000000197,  0.07905532678,    29050.78374334920},
1091     {     0.00000000186,  4.07019341948,    33794.54372352860},
1092     {     0.00000000155,  3.66480557020,        7.11354700080},
1093     {     0.00000000138,  5.96011224678,     3154.68708489560},
1094     {     0.00000000158,  5.50203206635,    37724.75341974820},
1095     {     0.00000000147,  3.62347099998,    21535.94964451540},
1096     {     0.00000000141,  1.64907514042,    32217.20018108080},
1097     {     0.00000000168,  6.17942898657,    18837.49819713819},
1098     {     0.00000000149,  4.71613322834,    25158.60171976540},
1099     {     0.00000000124,  4.14558329896,    27511.46787353720},
1100     {     0.00000000117,  1.26060116043,     7084.89678111520},
1101     {     0.00000000112,  2.64211360535,    22779.43724619380},
1102     {     0.00000000111,  1.56882986044,     9683.59458111640},
1103     {     0.00000000125,  5.85773130047,      213.29909543800},
1104     {     0.00000000106,  1.60206102260,    10207.76262190360},
1105     {     0.00000000106,  1.60857575234,    10218.80847051840},
1106     {     0.00000000107,  0.06029270673,    20400.27277262220},
1107     {     0.00000000105,  5.17582412260,     8662.24032356300},
1108     {     0.00000000115,  0.14229628995,     9146.79006902100},
1109     {     0.00000000118,  0.93060644045,    20213.27199698400},
1110     {     0.00000000134,  5.76506264779,       26.29831979980},
1111     {     0.00000000100,  0.63855627551,    41654.96311596780},
1112     {     0.00000000093,  2.39421056035,     3128.38876509580},
1113     {     0.00000000083,  0.24054840895,    14919.01785375460},
1114     {     0.00000000086,  1.99704954707,    10228.53801739600},
1115     {     0.00000000086,  1.21365119312,    10198.03307502600},
1116     {     0.00000000076,  6.15164147653,    21202.09370374600},
1117     {     0.00000000076,  2.50538996449,     4551.95349705880},
1118     {     0.00000000081,  3.54317093055,    51066.42773105500},
1119     {     0.00000000070,  3.62977580498,    20452.86941222180},
1120     {     0.00000000069,  3.33801158730,    11272.66747640020},
1121     {     0.00000000066,  2.40044362019,    16496.36139620240},
1122     {     0.00000000074,  0.81937069238,      382.89653222320},
1123     {     0.00000000084,  1.84615505638,    45585.17281218740},
1124     {     0.00000000058,  5.54500123157,     5661.33204915220},
1125     {     0.00000000062,  6.22847666967,    29088.81141598500},
1126     {     0.00000000048,  5.23337244147,     3149.16416058820},
1127     {     0.00000000045,  4.23847970134,    20809.46762464520},
1128     {     0.00000000043,  3.13312030807,    30110.16567353840},
1129     {     0.00000000042,  2.05265738782,    24356.78078864160},
1130     {     0.00000000048,  1.26595147651,    33019.02111220460},
1131     {     0.00000000056,  3.26535945634,    49515.38250840700},
1132     {     0.00000000049,  4.20217286778,    13341.67431130680},
1133     {     0.00000000042,  2.07085732347,      426.59819087600},
1134     {     0.00000000044,  1.20392434392,    12592.45001978260},
1135     {     0.00000000036,  5.57938191798,    31441.67756975680},
1136     {     0.00000000038,  4.98083686092,      536.80451209540},
1137     {     0.00000000043,  1.90863602359,     3532.06069281140},
1138     {     0.00000000035,  3.83053326183,    18849.22754997420},
1139     {     0.00000000032,  5.81052626816,    28521.09277825460},
1140     {     0.00000000028,  3.80386218448,     4732.03062734340},
1141     {     0.00000000031,  5.41631373906,      522.57741809380},
1142     {     0.00000000026,  2.11998839024,    23958.63178523340},
1143     {     0.00000000023,  4.45861699215,    17277.40693183380},
1144     {     0.00000000022,  1.46296031303,     8094.52168583260},
1145     {     0.00000000024,  6.20898418337,    26087.90314157420},
1146     {     0.00000000020,  4.66182643911,    19889.76658032659},
1147     {     0.00000000020,  0.98405518609,    19999.97290154599},
1148     {     0.00000000023,  3.22003976882,    39264.06928956020},
1149 };
1150 
1151 
1152 static const struct ln_vsop venus_latitude_b2[LAT_B2] = {
1153     {     0.00012657745,  3.34796457029,    10213.28554621100},
1154     {     0.00000151225,  0.00000000000,        0.00000000000},
1155     {     0.00000037476,  5.34638962141,    20426.57109242200},
1156     {     0.00000010627,  3.81894300538,    30639.85663863300},
1157     {     0.00000000942,  0.01311905561,    10186.98722641120},
1158     {     0.00000000747,  4.13620174126,    10239.58386601080},
1159     {     0.00000000434,  3.26791015348,    11790.62908865880},
1160     {     0.00000000439,  6.04066783494,    10988.80815753500},
1161     {     0.00000000331,  6.20632270120,     9437.76293488700},
1162     {     0.00000000332,  2.82983937642,    10404.73381232260},
1163     {     0.00000000340,  5.14190117554,     9153.90361602180},
1164     {     0.00000000244,  6.07029755311,    19651.04848109800},
1165     {     0.00000000274,  0.56238407651,     2352.86615377180},
1166     {     0.00000000273,  3.09551287480,    18073.70493865020},
1167     {     0.00000000268,  4.02642385642,     1577.34354244780},
1168     {     0.00000000217,  5.37498456751,    40853.14218484400},
1169     {     0.00000000213,  1.22633958472,    22003.91463486980},
1170     {     0.00000000141,  5.42727181668,     5507.55323866740},
1171     {     0.00000000130,  5.26806549972,    13367.97263110660},
1172     {     0.00000000101,  4.64089661780,    15720.83878487840},
1173     {     0.00000000097,  0.79512785540,    10021.83728009940},
1174     {     0.00000000095,  0.22330149810,     8635.94200376320},
1175     {     0.00000000090,  2.70556129424,    19896.88012732740},
1176     {     0.00000000090,  0.51306700906,      529.69096509460},
1177     {     0.00000000084,  2.50344831127,     9683.59458111640},
1178     {     0.00000000070,  3.27104614873,    20618.01935853360},
1179     {     0.00000000058,  3.30656672462,    11322.66409830440},
1180     {     0.00000000075,  5.25593390437,    10596.18207843420},
1181     {     0.00000000045,  4.74613910444,     7058.59846131540},
1182     {     0.00000000039,  4.73196017252,     9830.38901398780},
1183     {     0.00000000046,  3.81232018036,      775.52261132400},
1184     {     0.00000000034,  3.64209909537,    14143.49524243060},
1185     {     0.00000000031,  4.03554572158,     6283.07584999140},
1186     {     0.00000000036,  2.08483265333,      801.82093112380},
1187     {     0.00000000034,  2.85714821360,     9411.46461508720},
1188     {     0.00000000023,  0.53259218563,    10206.17199921020},
1189     {     0.00000000023,  5.81970120815,    10220.39909321180},
1190     {     0.00000000029,  0.34238212730,    11015.10647733480},
1191     {     0.00000000021,  4.61555386478,     9999.98645077300},
1192     {     0.00000000020,  4.88064054230,    10426.58464164900},
1193     {     0.00000000026,  2.20763733076,    18849.22754997420},
1194     {     0.00000000022,  3.98619109775,    10742.97651130560},
1195     {     0.00000000019,  4.86026864659,     4705.73230754360},
1196     {     0.00000000018,  4.37664030659,    23581.25817731760},
1197     {     0.00000000018,  2.57254812330,    19367.18916223280},
1198     {     0.00000000018,  5.52181260638,    21228.39202354580},
1199     {     0.00000000021,  2.75902377111,    25934.12433108940},
1200     {     0.00000000019,  2.22080338031,    29580.47470844380},
1201     {     0.00000000017,  2.48643394548,     3128.38876509580},
1202     {     0.00000000014,  6.20079529340,      191.44826611160},
1203     {     0.00000000015,  5.74322714868,       26.29831979980},
1204 };
1205 
1206 
1207 static const struct ln_vsop venus_latitude_b3[LAT_B3] = {
1208     {     0.00000376505,  4.87650249694,    10213.28554621100},
1209     {     0.00000012587,  3.14159265359,        0.00000000000},
1210     {     0.00000004809,  0.43423918018,    20426.57109242200},
1211     {     0.00000000835,  5.57179521329,    30639.85663863300},
1212     {     0.00000000046,  1.54914240166,    10186.98722641120},
1213     {     0.00000000034,  5.78743368814,    10239.58386601080},
1214     {     0.00000000019,  0.76227312580,    40853.14218484400},
1215     {     0.00000000013,  4.63920619996,    11790.62908865880},
1216     {     0.00000000014,  5.47124304598,     9437.76293488700},
1217     {     0.00000000014,  0.87652853636,    10988.80815753500},
1218     {     0.00000000010,  1.84595947891,     2352.86615377180},
1219     {     0.00000000005,  1.36825703657,    19651.04848109800},
1220 };
1221 
1222 
1223 static const struct ln_vsop venus_latitude_b4[LAT_B4] = {
1224     {     0.00000008558,  0.17181972054,    10213.28554621100},
1225     {     0.00000000114,  2.50366130090,    20426.57109242200},
1226     {     0.00000000115,  3.14159265359,        0.00000000000},
1227     {     0.00000000041,  0.74061432691,    30639.85663863300},
1228 };
1229 
1230 
1231 static const struct ln_vsop venus_latitude_b5[LAT_B5] = {
1232     {     0.00000000149,  1.67437168506,    10213.28554621100},
1233     {     0.00000000023,  0.00000000000,        0.00000000000},
1234     {     0.00000000008,  3.73924477319,    20426.57109242200},
1235     {     0.00000000002,  2.28783748701,    30639.85663863300},
1236 };
1237 
1238 
1239 static const struct ln_vsop venus_radius_r0[RADIUS_R0] = {
1240     {     0.72334820891,  0.00000000000,        0.00000000000},
1241     {     0.00489824182,  4.02151831717,    10213.28554621100},
1242     {     0.00001658058,  4.90206728031,    20426.57109242200},
1243     {     0.00001632096,  2.84548795207,     7860.41939243920},
1244     {     0.00001378043,  1.12846591367,    11790.62908865880},
1245     {     0.00000498395,  2.58682193892,     9683.59458111640},
1246     {     0.00000373958,  1.42314832858,     3930.20969621960},
1247     {     0.00000263615,  5.52938716941,     9437.76293488700},
1248     {     0.00000237454,  2.55136053886,    15720.83878487840},
1249     {     0.00000221985,  2.01346696541,    19367.18916223280},
1250     {     0.00000119466,  3.01975080538,    10404.73381232260},
1251     {     0.00000125896,  2.72769850819,     1577.34354244780},
1252     {     0.00000076176,  1.59574968674,     9153.90361602180},
1253     {     0.00000085337,  3.98598666191,    19651.04848109800},
1254     {     0.00000074347,  4.11957779786,     5507.55323866740},
1255     {     0.00000041902,  1.64282225331,    18837.49819713819},
1256     {     0.00000042494,  3.81864493274,    13367.97263110660},
1257     {     0.00000039437,  5.39018702243,    23581.25817731760},
1258     {     0.00000029042,  5.67739528728,     5661.33204915220},
1259     {     0.00000027555,  5.72392434415,      775.52261132400},
1260     {     0.00000027288,  4.82140494620,    11015.10647733480},
1261     {     0.00000031274,  2.31806719544,     9999.98645077300},
1262     {     0.00000019700,  4.96157560246,    11322.66409830440},
1263     {     0.00000019811,  0.53189302682,    27511.46787353720},
1264     {     0.00000013569,  3.75536825122,    18073.70493865020},
1265     {     0.00000012921,  1.13381083556,    10206.17199921020},
1266     {     0.00000016214,  0.56446585474,      529.69096509460},
1267     {     0.00000011828,  5.09037966560,     3154.68708489560},
1268     {     0.00000011729,  0.23450811362,     7084.89678111520},
1269     {     0.00000013066,  5.24354222739,    17298.18232732620},
1270     {     0.00000013180,  3.37207825651,    13745.34623902240},
1271     {     0.00000009097,  3.07004839111,     1109.37855209340},
1272     {     0.00000010818,  2.45024714924,    10239.58386601080},
1273     {     0.00000011434,  4.56780914249,    29050.78374334920},
1274     {     0.00000008377,  5.78327641089,    30639.85663863300},
1275     {     0.00000008193,  1.95023341446,    22003.91463486980},
1276     {     0.00000009319,  1.61646997033,     2352.86615377180},
1277     {     0.00000010653,  1.95585283247,    31441.67756975680},
1278     {     0.00000010357,  1.20234990063,    15874.61759536320},
1279     {     0.00000009585,  1.46639856227,    19999.97290154599},
1280     {     0.00000006504,  2.17386891309,    14143.49524243060},
1281     {     0.00000007555,  1.13845893425,     8624.21265092720},
1282     {     0.00000006438,  0.84494385894,     6283.07584999140},
1283     {     0.00000005895,  0.01147034372,     8635.94200376320},
1284     {     0.00000005633,  3.94955705099,    12566.15169998280},
1285     {     0.00000005521,  1.27351436322,    18307.80723204360},
1286     {     0.00000004488,  2.47835713175,      191.44826611160},
1287     {     0.00000004524,  4.73049812703,    19896.88012732740},
1288     {     0.00000006182,  3.25901855473,     6872.67311951120},
1289     {     0.00000006076,  0.35368446866,    21228.39202354580},
1290     {     0.00000004315,  2.59737099527,     4551.95349705880},
1291     {     0.00000006001,  3.37877140835,    35371.88726597640},
1292     {     0.00000003852,  1.01162850363,     9786.68735533500},
1293     {     0.00000004033,  0.00058119465,      801.82093112380},
1294     {     0.00000003913,  5.56523869375,    10596.18207843420},
1295     {     0.00000002709,  5.80195530113,     7064.12138562280},
1296     {     0.00000003216,  0.39767254849,    10186.98722641120},
1297     {     0.00000003089,  6.26174762875,    14945.31617355440},
1298     {     0.00000002983,  4.21306731485,    28521.09277825460},
1299     {     0.00000003280,  0.70603484350,    10742.97651130560},
1300     {     0.00000003495,  4.79876624499,    39302.09696219600},
1301     {     0.00000003172,  1.80518718365,    25158.60171976540},
1302     {     0.00000002463,  0.68708155159,    10988.80815753500},
1303     {     0.00000002374,  3.77948972590,    21535.94964451540},
1304     {     0.00000002199,  2.82965458882,     8662.24032356300},
1305     {     0.00000001958,  5.41763443097,    16496.36139620240},
1306     {     0.00000001876,  2.63426835834,    29580.47470844380},
1307     {     0.00000001902,  2.85782199151,     3532.06069281140},
1308     {     0.00000001706,  3.67573010387,       26.29831979980},
1309     {     0.00000001820,  0.41906719561,     4705.73230754360},
1310     {     0.00000001857,  1.50350423721,    10021.83728009940},
1311     {     0.00000002086,  6.22149960504,    43232.30665841560},
1312     {     0.00000001945,  2.21581377123,    19786.67380610799},
1313     {     0.00000001497,  0.00134773818,    17277.40693183380},
1314     {     0.00000001831,  3.23180044003,    29088.81141598500},
1315     {     0.00000001422,  5.85815118404,     9676.48103411560},
1316     {     0.00000001223,  5.55818994329,     6770.71060124560},
1317     {     0.00000001135,  5.91731919731,    13936.79450513400},
1318     {     0.00000001483,  2.47551114520,    31749.23519072640},
1319     {     0.00000001185,  1.42087628352,     4732.03062734340},
1320     {     0.00000001323,  2.48821075422,     9690.70812811720},
1321     {     0.00000001237,  1.88503842890,    19374.30270923360},
1322     {     0.00000001402,  5.17536780118,    10316.37832042960},
1323     {     0.00000001257,  5.24711268081,    19360.07561523199},
1324     {     0.00000001041,  3.05620764519,    25934.12433108940},
1325     {     0.00000001174,  1.42916822908,    18875.52586977400},
1326     {     0.00000001277,  1.35812964004,    47162.51635463520},
1327     {     0.00000000919,  6.26767378713,    20618.01935853360},
1328     {     0.00000000907,  1.12515741342,    12592.45001978260},
1329     {     0.00000001093,  4.64451665343,    33019.02111220460},
1330     {     0.00000001012,  1.09063299331,     1059.38193018920},
1331     {     0.00000000783,  2.02117411797,    24356.78078864160},
1332     {     0.00000000779,  0.41587370509,     3340.61242669980},
1333     {     0.00000000702,  1.15494723276,    16983.99614745660},
1334     {     0.00000000878,  0.87851267907,    38734.37832446560},
1335     {     0.00000000620,  0.90736173080,    17778.11626694899},
1336     {     0.00000000608,  1.58478313439,     9573.38825989700},
1337     {     0.00000000800,  3.94213003073,    10138.50394764370},
1338     {     0.00000000758,  1.31882722638,     9967.45389998160},
1339     {     0.00000000802,  2.78173370208,    51092.72605085480},
1340     {     0.00000000664,  4.45866629009,     3128.38876509580},
1341     {     0.00000000668,  5.10542540579,      382.89653222320},
1342     {     0.00000000530,  0.85392938403,    10234.06094170340},
1343     {     0.00000000509,  3.56810277681,    28286.99048486120},
1344     {     0.00000000600,  4.25927697166,    41962.52073693740},
1345     {     0.00000000601,  5.78144137927,      213.29909543800},
1346     {     0.00000000595,  2.83043640070,    22805.73556599360},
1347     {     0.00000000673,  6.06080293558,    36949.23080842420},
1348     {     0.00000000537,  5.85435364687,     9103.90699411760},
1349     {     0.00000000544,  5.44804869552,     3723.50895892300},
1350     {     0.00000000493,  3.84940583750,    27991.40181316000},
1351     {     0.00000000635,  0.76493226364,     8094.52168583260},
1352     {     0.00000000435,  6.21370952619,    27197.28169366760},
1353     {     0.00000000459,  3.55062885409,    20213.27199698400},
1354     {     0.00000000398,  6.16269975784,    10426.58464164900},
1355     {     0.00000000378,  2.41665947591,    18844.61174413899},
1356     {     0.00000000421,  4.86558476805,     9146.79006902100},
1357     {     0.00000000500,  4.20351458644,    55022.93574707440},
1358     {     0.00000000404,  4.96112893536,    37410.56723987860},
1359     {     0.00000000402,  2.97963246945,    10220.39909321180},
1360     {     0.00000000464,  2.59869499733,    18734.40542291960},
1361     {     0.00000000353,  0.08229680434,    10103.07922499160},
1362     {     0.00000000348,  4.90260339364,    18830.38465013739},
1363     {     0.00000000339,  3.23485348169,    24150.08005134500},
1364     {     0.00000000431,  1.21298886779,    40879.44050464380},
1365     {     0.00000000375,  6.17532088119,    26087.90314157420},
1366     {     0.00000000409,  3.12070020561,     9050.81084180320},
1367     {     0.00000000385,  1.94284690176,      283.85931886520},
1368     {     0.00000000331,  4.89790702632,    12432.04265039780},
1369     {     0.00000000330,  4.29239717956,    26735.94526221320},
1370     {     0.00000000310,  0.50879975679,    38204.68735937100},
1371     {     0.00000000329,  3.88427322515,    29864.33402730900},
1372     {     0.00000000313,  1.36138752543,    10192.51015071860},
1373     {     0.00000000347,  3.58439807220,    27490.69247804480},
1374     {     0.00000000251,  3.78618457047,    10063.72234907640},
1375     {     0.00000000245,  3.84553750369,     9411.46461508720},
1376     {     0.00000000281,  4.50895217144,    32217.20018108080},
1377     {     0.00000000237,  0.87748812264,     6681.22485339960},
1378     {     0.00000000315,  5.62657778233,    58953.14544329400},
1379     {     0.00000000311,  4.15626121491,    10175.15251057320},
1380     {     0.00000000251,  2.53793253681,    16522.65971600220},
1381     {     0.00000000218,  5.08472965959,     7058.59846131540},
1382     {     0.00000000291,  3.72573045764,    29999.95935231900},
1383     {     0.00000000267,  2.97685503991,    19573.37471066999},
1384     {     0.00000000280,  3.70200084294,    47623.85278608960},
1385     {     0.00000000239,  3.94545782067,     9580.50180689780},
1386     {     0.00000000246,  2.18261064090,     9161.01716302260},
1387     {     0.00000000269,  2.62767323960,    44809.65020086340},
1388     {     0.00000000254,  2.69185768875,     3442.57494496540},
1389     {     0.00000000194,  4.79747763686,    33794.54372352860},
1390     {     0.00000000203,  2.54900468678,     2379.16447357160},
1391     {     0.00000000210,  1.90935455520,     1551.04522264800},
1392     {     0.00000000187,  3.65645008095,    20452.86941222180},
1393     {     0.00000000224,  2.43601863127,     9992.87290377220},
1394     {     0.00000000190,  6.19594324465,    36147.40987730040},
1395     {     0.00000000176,  4.29837616553,    10137.01947493540},
1396     {     0.00000000175,  2.71993327300,    20809.46762464520},
1397     {     0.00000000186,  2.55096983527,    14919.01785375460},
1398     {     0.00000000161,  4.13272566951,    23958.63178523340},
1399     {     0.00000000197,  5.70241397428,    30666.15495843280},
1400     {     0.00000000160,  4.46270605493,    18947.70451835760},
1401     {     0.00000000156,  1.80543158863,    10787.63034454580},
1402     {     0.00000000192,  5.34144333446,    10007.09999777380},
1403     {     0.00000000190,  2.99208130371,     2218.75710418680},
1404     {     0.00000000209,  4.83588196833,    20277.00789528740},
1405     {     0.00000000145,  5.92559556225,    37724.75341974820},
1406     {     0.00000000198,  0.77846666692,    62883.35513951360},
1407     {     0.00000000144,  5.00261963924,     9264.10993724120},
1408     {     0.00000000171,  2.05212624568,     7255.56965173440},
1409     {     0.00000000188,  4.08173534559,    48739.85989708300},
1410     {     0.00000000146,  3.93370103580,     6309.37416979120},
1411     {     0.00000000145,  5.06295543750,    39264.06928956020},
1412     {     0.00000000139,  2.81266025896,       20.77539549240},
1413     {     0.00000000177,  5.16224804657,     9835.91193829520},
1414     {     0.00000000120,  0.21443767468,    31022.75317085620},
1415     {     0.00000000118,  1.36333433479,    40077.61957352000},
1416     {     0.00000000128,  2.92458887987,        7.11354700080},
1417     {     0.00000000109,  5.19050570589,     9830.38901398780},
1418     {     0.00000000150,  5.73646272556,      632.78373931320},
1419     {     0.00000000106,  0.62215793949,    11272.66747640020},
1420     {     0.00000000114,  2.63301326520,    17468.85519794540},
1421     {     0.00000000123,  6.22518843711,    53285.18483524180},
1422     {     0.00000000107,  1.17258978900,    43071.89928903080},
1423     {     0.00000000116,  2.20934021321,     8521.11987670860},
1424     {     0.00000000104,  1.01322416672,    41654.96311596780},
1425     {     0.00000000109,  2.01412666864,    20419.45754542119},
1426     {     0.00000000102,  4.23406964348,    10251.31321884680},
1427     {     0.00000000116,  1.27731728606,    10199.05845220940},
1428     {     0.00000000112,  2.24436894064,    18204.71445782499},
1429     {     0.00000000118,  0.23754207200,    10497.14486507620},
1430     {     0.00000000123,  0.88054816668,    34596.36465465240},
1431     {     0.00000000102,  4.39438646620,    18300.69368504279},
1432     {     0.00000000131,  6.01711652115,     9367.20271145980},
1433     {     0.00000000100,  5.00532389609,    10175.25787357520},
1434     {     0.00000000107,  0.41270205378,    40853.14218484400},
1435     {     0.00000000132,  5.45008342761,    11506.76976979360},
1436     {     0.00000000098,  1.07722950958,    13553.89797291080},
1437     {     0.00000000094,  2.91719764259,    44007.82926973960},
1438     {     0.00000000097,  1.04004223634,    68050.42387851159},
1439     {     0.00000000127,  2.20215372683,    66813.56483573320},
1440     {     0.00000000111,  1.57823839032,    29043.67019634839},
1441     {     0.00000000118,  2.33268176890,    18314.92077904440},
1442     {     0.00000000090,  2.42353056125,    32858.61374281979},
1443     {     0.00000000109,  3.82796787296,    19470.28193645139},
1444     {     0.00000000111,  4.47666957576,    29057.89729034999},
1445     {     0.00000000101,  3.41528493660,    19264.09638801420},
1446     {     0.00000000092,  3.66289799512,    22645.32819660879},
1447     {     0.00000000094,  6.07530805791,    10846.06928552420},
1448     {     0.00000000114,  4.02718653431,     7576.56007357400},
1449     {     0.00000000087,  6.01880724674,    17085.95866572220},
1450     {     0.00000000109,  5.46886607309,    52670.06959330260},
1451     {     0.00000000108,  5.44460610707,    19050.79729257620},
1452     {     0.00000000106,  0.55746535085,    34363.36559755600},
1453     {     0.00000000076,  6.15177368654,    27682.14074415640},
1454     {     0.00000000107,  4.80525404063,     8144.27871130440},
1455     {     0.00000000071,  2.26530392323,     8631.32619792800},
1456     {     0.00000000097,  5.13538849186,    22779.43724619380},
1457     {     0.00000000095,  5.25816059997,      522.57741809380},
1458     {     0.00000000069,  1.57003462107,    20956.26205751660},
1459     {     0.00000000068,  6.22807515295,    10419.47109464820},
1460     {     0.00000000091,  4.28652743953,    10110.19277199240},
1461     {     0.00000000089,  1.79703857734,    45585.17281218740},
1462     {     0.00000000067,  2.25900071584,     9360.08916445900},
1463     {     0.00000000085,  0.67062144972,    56600.27928952220},
1464     {     0.00000000080,  1.58278081077,    19992.85935454519},
1465     {     0.00000000085,  4.52011215904,    29786.66025688100},
1466     {     0.00000000068,  4.48235266554,    10632.77019008620},
1467     {     0.00000000063,  0.36743160711,    17248.42530185440},
1468     {     0.00000000064,  4.33495700921,    47938.03896595920},
1469     {     0.00000000071,  3.03858484137,    11787.10597030980},
1470     {     0.00000000067,  3.64786869696,    11764.33076885900},
1471     {     0.00000000087,  4.81823064076,     2107.03450754240},
1472     {     0.00000000070,  2.35648061034,    11794.15220700780},
1473     {     0.00000000080,  2.33248094128,    38526.57435087200},
1474     {     0.00000000070,  3.70454061100,     8734.41897214660},
1475     {     0.00000000077,  4.49569185467,    20007.08644854680},
1476     {     0.00000000072,  1.19410424468,    10217.21769947410},
1477     {     0.00000000068,  2.01841060183,    14128.24277124560},
1478     {     0.00000000064,  5.39293951654,     7880.08915333899},
1479     {     0.00000000066,  3.20467070973,    14765.23904326980},
1480     {     0.00000000080,  3.41620457770,    48417.97290558199},
1481     {     0.00000000066,  5.85414440204,     9793.80090233580},
1482     {     0.00000000082,  3.62592908644,    70743.77453195279},
1483     {     0.00000000058,  4.95163459260,    30110.16567353840},
1484     {     0.00000000079,  6.24161471033,     6037.24420376200},
1485     {     0.00000000069,  5.50183658445,    19793.78735310880},
1486     {     0.00000000076,  3.40005875207,      245.83164622940},
1487     {     0.00000000056,  1.24148350566,    10207.76262190360},
1488     {     0.00000000070,  2.45123308846,    10218.80847051840},
1489     {     0.00000000064,  5.53983104501,    10735.86296430480},
1490     {     0.00000000054,  3.62259713240,    27461.71084806540},
1491     {     0.00000000073,  1.75920522146,     1589.07289528380},
1492     {     0.00000000075,  3.38244819846,     4214.06901508480},
1493     {     0.00000000054,  0.64971567468,     9929.42622734580},
1494     {     0.00000000054,  3.40959637230,    18418.01355326299},
1495     {     0.00000000056,  3.65815006538,    14169.79356223040},
1496     {     0.00000000056,  0.71243223808,     9896.89367655440},
1497     {     0.00000000052,  1.33348131832,    20400.27277262220},
1498     {     0.00000000067,  3.12806595410,     5481.25491886760},
1499     {     0.00000000058,  0.54482893546,    28313.28880466100},
1500     {     0.00000000054,  0.15603935681,    19580.48825767080},
1501     {     0.00000000051,  3.37515473510,     9256.99639024040},
1502     {     0.00000000063,  3.38894120617,    49515.38250840700},
1503     {     0.00000000069,  4.90917651401,    63498.47038145279},
1504     {     0.00000000057,  5.07437742030,    18521.10632748160},
1505     {     0.00000000050,  1.59156823654,    18631.31264870099},
1506     {     0.00000000054,  6.25816208666,    37674.99639427640},
1507     {     0.00000000057,  5.48066346720,    24383.07910844140},
1508     {     0.00000000045,  1.10466490660,    10408.25693067160},
1509     {     0.00000000051,  3.61196470338,      426.59819087600},
1510     {     0.00000000058,  4.40545155507,     8617.09910392640},
1511     {     0.00000000057,  2.09567711267,    60530.48898574180},
1512     {     0.00000000060,  5.94659889997,    13897.66359620120},
1513     {     0.00000000051,  5.47238517720,    57837.13833230060},
1514     {     0.00000000051,  2.32438478428,    19779.56025910719},
1515     {     0.00000000052,  3.23766328818,    18940.59097135679},
1516     {     0.00000000048,  1.12206254877,     9779.57380833420},
1517     {     0.00000000058,  3.08646083897,    12074.48840752400},
1518     {     0.00000000046,  4.07536026888,     7863.94251078820},
1519     {     0.00000000045,  4.75746520642,     7856.89627409019},
1520     {     0.00000000050,  3.70569982975,    42456.78404709160},
1521     {     0.00000000044,  1.29248911155,    69166.43098950500},
1522     {     0.00000000046,  0.41229872114,     7564.83072073800},
1523     {     0.00000000039,  1.25238820180,    10323.49186743040},
1524     {     0.00000000044,  6.17937388307,    13341.67431130680},
1525     {     0.00000000053,  4.71379706388,    53445.59220462660},
1526     {     0.00000000041,  3.48003037828,    37895.42629036740},
1527     {     0.00000000040,  1.23305546260,    10228.53801739600},
1528     {     0.00000000053,  5.04979874661,    74673.98422817240},
1529     {     0.00000000039,  2.15376025201,     8947.71806758460},
1530     {     0.00000000039,  0.70253732683,    18093.37469954999},
1531     {     0.00000000052,  1.18164377451,    10211.80107350270},
1532     {     0.00000000047,  1.78672260794,    10401.21069397360},
1533     {     0.00000000040,  3.66961416802,    10198.03307502600},
1534     {     0.00000000051,  2.71698589018,    94325.03270927040},
1535     {     0.00000000038,  1.36497153223,    21202.09370374600},
1536     {     0.00000000049,  1.21335959420,     9721.62225375220},
1537     {     0.00000000042,  6.05968230173,   105460.99111839019},
1538     {     0.00000000040,  1.97642764685,    32243.49850088060},
1539     {     0.00000000036,  4.96702216961,    36301.18868778519},
1540     {     0.00000000037,  5.29642935562,       38.02767263580},
1541     {     0.00000000035,  2.34112124655,    58946.51688439399},
1542     {     0.00000000034,  5.77533382849,    51868.24866217880},
1543     {     0.00000000034,  1.82989750626,    17675.02349273040},
1544     {     0.00000000034,  0.76493664110,    55798.45835839840},
1545     {     0.00000000035,  1.09353675147,    69159.80243060499},
1546     {     0.00000000032,  3.32960781870,    71519.29714327680},
1547     {     0.00000000031,  0.68615213145,    10202.23984594710},
1548     {     0.00000000030,  4.42039942947,    10459.11719244040},
1549     {     0.00000000029,  1.30367701539,    20103.06567576459},
1550     {     0.00000000031,  4.51793347997,     2957.71589447660},
1551     {     0.00000000036,  5.67202610552,    24341.52831745660},
1552     {     0.00000000029,  3.36506645849,    10288.06714477830},
1553     {     0.00000000029,  1.40019042576,     9988.94075050910},
1554     {     0.00000000039,  5.15481059724,    20350.30502114640},
1555     {     0.00000000034,  5.22945947227,     8673.96967639900},
1556     {     0.00000000039,  4.50883171158,    16004.69810374360},
1557     {     0.00000000028,  2.32945945641,    11392.48008525060},
1558     {     0.00000000032,  5.46972716255,    64607.84893354619},
1559     {     0.00000000029,  0.59723613788,    26709.64694241340},
1560     {     0.00000000029,  6.16476830510,    65236.22129328540},
1561     {     0.00000000026,  5.36096904409,     1478.86657406440},
1562     {     0.00000000036,  1.29565084626,    90394.82301305079},
1563 };
1564 
1565 
1566 static const struct ln_vsop venus_radius_r1[RADIUS_R1] = {
1567     {     0.00034551041,  0.89198706276,    10213.28554621100},
1568     {     0.00000234203,  1.77224942363,    20426.57109242200},
1569     {     0.00000233998,  3.14159265359,        0.00000000000},
1570     {     0.00000023867,  1.11270233944,     9437.76293488700},
1571     {     0.00000010571,  4.59152848465,     1577.34354244780},
1572     {     0.00000009124,  4.53540895241,    10404.73381232260},
1573     {     0.00000006600,  5.97725159435,     5507.55323866740},
1574     {     0.00000004665,  3.87732289579,     9153.90361602180},
1575     {     0.00000003840,  5.66215379445,    13367.97263110660},
1576     {     0.00000002662,  2.82393816664,    10206.17199921020},
1577     {     0.00000002194,  2.05324060020,      775.52261132400},
1578     {     0.00000002093,  2.54944827541,    18837.49819713819},
1579     {     0.00000001781,  2.64889239766,    30639.85663863300},
1580     {     0.00000001844,  1.87568236008,    11015.10647733480},
1581     {     0.00000001303,  0.20613045604,    11322.66409830440},
1582     {     0.00000001168,  0.79442892853,    17298.18232732620},
1583     {     0.00000001002,  6.16544615317,    10239.58386601080},
1584     {     0.00000000915,  4.59854496963,     1109.37855209340},
1585     {     0.00000000882,  0.66800567417,    18073.70493865020},
1586     {     0.00000000846,  5.58765716729,    12566.15169998280},
1587     {     0.00000001080,  4.94678408464,     6283.07584999140},
1588     {     0.00000000888,  2.47876529003,     3154.68708489560},
1589     {     0.00000000904,  0.81413053841,    10596.18207843420},
1590     {     0.00000000820,  0.89897968675,     5661.33204915220},
1591     {     0.00000000845,  5.48503535862,      529.69096509460},
1592     {     0.00000000824,  3.74890493484,     7084.89678111520},
1593     {     0.00000000655,  5.06545516257,    22003.91463486980},
1594     {     0.00000000847,  0.44120492340,     8635.94200376320},
1595     {     0.00000000638,  4.10125783744,      191.44826611160},
1596     {     0.00000000618,  3.15185635462,    10186.98722641120},
1597     {     0.00000000530,  5.86995223147,     2352.86615377180},
1598     {     0.00000000576,  2.25211985760,    21228.39202354580},
1599     {     0.00000000517,  5.33412478409,    14143.49524243060},
1600     {     0.00000000664,  2.86641799035,     8624.21265092720},
1601     {     0.00000000552,  2.16807468414,    18307.80723204360},
1602     {     0.00000000518,  4.34059510806,     9786.68735533500},
1603     {     0.00000000501,  5.56479595613,    10742.97651130560},
1604     {     0.00000000426,  1.02161443120,     7064.12138562280},
1605     {     0.00000000416,  1.26242491254,     9676.48103411560},
1606     {     0.00000000393,  0.78006660798,     9690.70812811720},
1607     {     0.00000000336,  3.17756997609,    10988.80815753500},
1608     {     0.00000000375,  0.66142254036,    19360.07561523199},
1609     {     0.00000000361,  0.19448210327,    19374.30270923360},
1610     {     0.00000000314,  1.09753065455,     4551.95349705880},
1611     {     0.00000000329,  0.58926282996,    16496.36139620240},
1612     {     0.00000000339,  5.76768761424,    10021.83728009940},
1613     {     0.00000000289,  3.67224020150,    25158.60171976540},
1614     {     0.00000000223,  4.33581625553,    19786.67380610799},
1615     {     0.00000000266,  3.57410277687,      801.82093112380},
1616     {     0.00000000273,  5.72814567551,    11790.62908865880},
1617     {     0.00000000275,  5.65863344812,    19896.88012732740},
1618     {     0.00000000212,  4.27040662743,     4705.73230754360},
1619     {     0.00000000230,  6.13409928801,     1059.38193018920},
1620     {     0.00000000203,  4.88193121349,     7860.41939243920},
1621     {     0.00000000241,  1.12684737375,       26.29831979980},
1622     {     0.00000000215,  3.13976767933,    14945.31617355440},
1623     {     0.00000000206,  0.32759945446,      382.89653222320},
1624     {     0.00000000216,  2.54929765288,    19651.04848109800},
1625     {     0.00000000160,  1.13642774778,    13936.79450513400},
1626     {     0.00000000153,  0.81251420624,     6770.71060124560},
1627     {     0.00000000150,  5.11133177708,    28521.09277825460},
1628     {     0.00000000150,  1.35720240642,    10220.39909321180},
1629     {     0.00000000149,  5.03755185727,    29088.81141598500},
1630     {     0.00000000127,  4.49298610266,     3532.06069281140},
1631     {     0.00000000121,  6.27033352540,    29580.47470844380},
1632     {     0.00000000146,  6.16157870651,     8662.24032356300},
1633     {     0.00000000117,  3.56101830556,    24356.78078864160},
1634     {     0.00000000114,  0.00568663739,    25934.12433108940},
1635     {     0.00000000127,  0.66789441339,     3723.50895892300},
1636     {     0.00000000148,  0.36877913428,     9146.79006902100},
1637     {     0.00000000106,  4.26220077003,     9573.38825989700},
1638     {     0.00000000136,  5.09588289539,    19367.18916223280},
1639     {     0.00000000099,  1.51389536350,    17277.40693183380},
1640     {     0.00000000117,  0.57647358272,     9999.98645077300},
1641     {     0.00000000097,  3.71741720558,      213.29909543800},
1642     {     0.00000000092,  0.22936081655,    18830.38465013739},
1643     {     0.00000000112,  4.04771058126,     9103.90699411760},
1644     {     0.00000000083,  5.86195695833,    10234.06094170340},
1645     {     0.00000000079,  0.64440357793,    18844.61174413899},
1646     {     0.00000000084,  0.62796944327,     9683.59458111640},
1647     {     0.00000000107,  1.77067111589,    17778.11626694899},
1648     {     0.00000000081,  6.19048048769,    20618.01935853360},
1649     {     0.00000000087,  0.15771136594,    33019.02111220460},
1650     {     0.00000000085,  4.77733091614,     3930.20969621960},
1651     {     0.00000000086,  2.21506820700,     8094.52168583260},
1652     {     0.00000000074,  0.82723399048,     3128.38876509580},
1653     {     0.00000000063,  2.70493265779,    16983.99614745660},
1654     {     0.00000000059,  3.32160695003,    10787.63034454580},
1655     {     0.00000000061,  0.04044699966,     9161.01716302260},
1656     {     0.00000000064,  4.13127333938,     9992.87290377220},
1657     {     0.00000000063,  4.47517295578,    18875.52586977400},
1658     {     0.00000000060,  6.24567706571,    32217.20018108080},
1659     {     0.00000000076,  4.84321073833,     4732.03062734340},
1660     {     0.00000000054,  3.38449893196,    10426.58464164900},
1661     {     0.00000000054,  5.15928227000,    28286.99048486120},
1662     {     0.00000000063,  4.32344259630,    12592.45001978260},
1663     {     0.00000000059,  3.65953929456,    10007.09999777380},
1664     {     0.00000000049,  5.10267262491,    19573.37471066999},
1665     {     0.00000000047,  5.79444960738,    68050.42387851159},
1666     {     0.00000000052,  3.56658420552,     7255.56965173440},
1667     {     0.00000000050,  1.61783309819,    36949.23080842420},
1668     {     0.00000000053,  2.64129868542,    15874.61759536320},
1669     {     0.00000000042,  2.02654328254,     7058.59846131540},
1670     {     0.00000000051,  0.80486467278,    23581.25817731760},
1671     {     0.00000000040,  3.89322312104,    20419.45754542119},
1672     {     0.00000000050,  1.07461899460,     3442.57494496540},
1673     {     0.00000000038,  1.77428239418,    10103.07922499160},
1674     {     0.00000000040,  5.22873972349,    21535.94964451540},
1675     {     0.00000000038,  0.10029856174,    11272.66747640020},
1676     {     0.00000000038,  1.16414419860,        7.11354700080},
1677     {     0.00000000044,  4.54118898535,    10192.51015071860},
1678     {     0.00000000047,  0.05589432390,    12432.04265039780},
1679     {     0.00000000034,  3.45481114998,     9830.38901398780},
1680     {     0.00000000037,  4.97010610007,     3340.61242669980},
1681     {     0.00000000044,  0.70533597362,    20213.27199698400},
1682     {     0.00000000034,  2.16487642765,    64460.69868196140},
1683     {     0.00000000031,  1.57612397319,    36147.40987730040},
1684     {     0.00000000034,  1.06669952696,    29864.33402730900},
1685     {     0.00000000028,  2.56454760402,    94138.32702008578},
1686     {     0.00000000029,  0.59718407064,    59728.66805461800},
1687     {     0.00000000031,  3.27727318906,    19992.85935454519},
1688     {     0.00000000027,  5.68943276986,    17085.95866572220},
1689     {     0.00000000030,  3.03241502538,    40879.44050464380},
1690     {     0.00000000032,  2.64260788260,    41962.52073693740},
1691     {     0.00000000035,  0.26995532429,     1589.07289528380},
1692     {     0.00000000028,  4.93395364921,    29050.78374334920},
1693     {     0.00000000028,  3.58869616799,    40853.14218484400},
1694     {     0.00000000029,  2.79705093386,    20007.08644854680},
1695     {     0.00000000033,  0.93875241519,    15720.83878487840},
1696     {     0.00000000024,  2.74970637101,    18947.70451835760},
1697     {     0.00000000024,  4.38966861409,    46386.99374331120},
1698     {     0.00000000024,  0.73362177921,     9411.46461508720},
1699     {     0.00000000028,  4.19559784013,    37674.99639427640},
1700     {     0.00000000024,  1.18299920855,      426.59819087600},
1701     {     0.00000000025,  4.14802726798,    14919.01785375460},
1702     {     0.00000000030,  1.24986033487,    27461.71084806540},
1703     {     0.00000000022,  2.95789824506,    40077.61957352000},
1704     {     0.00000000027,  3.94986823486,    17468.85519794540},
1705     {     0.00000000025,  4.75875623888,    27991.40181316000},
1706     {     0.00000000022,  4.11184201321,    19779.56025910719},
1707     {     0.00000000027,  3.72446446080,    19793.78735310880},
1708     {     0.00000000027,  6.12859780299,    38500.27603107220},
1709     {     0.00000000022,  4.99040169444,    31022.75317085620},
1710     {     0.00000000021,  0.63975130342,    13745.34623902240},
1711     {     0.00000000023,  1.33505132122,    65236.22129328540},
1712     {     0.00000000020,  0.91294578294,    22779.43724619380},
1713     {     0.00000000021,  4.46897353468,    53285.18483524180},
1714     {     0.00000000020,  4.15140915983,     2218.75710418680},
1715     {     0.00000000019,  1.43653410349,    27197.28169366760},
1716     {     0.00000000027,  1.22597317413,    42430.48572729180},
1717     {     0.00000000024,  4.66952456612,     1551.04522264800},
1718     {     0.00000000021,  4.16155332491,    44007.82926973960},
1719     {     0.00000000018,  5.45345109729,     6681.22485339960},
1720     {     0.00000000023,  2.19259117717,    27511.46787353720},
1721     {     0.00000000018,  4.24146756742,    31441.67756975680},
1722     {     0.00000000019,  3.65054338893,    49515.38250840700},
1723     {     0.00000000018,  2.29853355765,    19264.09638801420},
1724     {     0.00000000020,  3.68116637773,    14128.24277124560},
1725     {     0.00000000021,  4.30316190532,    44809.65020086340},
1726     {     0.00000000017,  3.02735393984,    28528.20632525540},
1727     {     0.00000000019,  5.92656850674,    22805.73556599360},
1728     {     0.00000000020,  5.80568617231,    10218.80847051840},
1729     {     0.00000000020,  0.75829381378,    18314.92077904440},
1730     {     0.00000000017,  5.63315744126,    16522.65971600220},
1731     {     0.00000000015,  5.27016880041,    53445.59220462660},
1732     {     0.00000000015,  6.06411037636,    18300.69368504279},
1733     {     0.00000000020,  5.38470522864,    10207.76262190360},
1734     {     0.00000000015,  5.81110284451,    43071.89928903080},
1735     {     0.00000000015,  5.98462571207,    10228.53801739600},
1736     {     0.00000000014,  1.44966591677,      536.80451209540},
1737     {     0.00000000015,  5.20122735812,    10198.03307502600},
1738     {     0.00000000014,  3.48144272414,    29786.66025688100},
1739     {     0.00000000018,  1.99790369768,    30831.30490474460},
1740     {     0.00000000017,  2.36905439219,    33794.54372352860},
1741 };
1742 
1743 
1744 static const struct ln_vsop venus_radius_r2[RADIUS_R2] = {
1745     {     0.00001406587,  5.06366395112,    10213.28554621100},
1746     {     0.00000015529,  5.47321056992,    20426.57109242200},
1747     {     0.00000013059,  0.00000000000,        0.00000000000},
1748     {     0.00000001096,  2.78919545899,     9437.76293488700},
1749     {     0.00000000487,  6.27655636902,     1577.34354244780},
1750     {     0.00000000361,  6.11959389556,    10404.73381232260},
1751     {     0.00000000310,  1.39073645837,     5507.55323866740},
1752     {     0.00000000385,  1.95564555688,    11015.10647733480},
1753     {     0.00000000371,  2.33232050485,      775.52261132400},
1754     {     0.00000000207,  5.63406721595,    10239.58386601080},
1755     {     0.00000000167,  1.11639732890,    13367.97263110660},
1756     {     0.00000000175,  6.16674649733,    30639.85663863300},
1757     {     0.00000000168,  3.64042170990,     7084.89678111520},
1758     {     0.00000000120,  5.85861348966,     9153.90361602180},
1759     {     0.00000000161,  2.21564443685,     3154.68708489560},
1760     {     0.00000000118,  2.62362056521,     8635.94200376320},
1761     {     0.00000000112,  2.36235956804,    10596.18207843420},
1762     {     0.00000000093,  0.74251193058,    12566.15169998280},
1763     {     0.00000000067,  3.76089669118,    18837.49819713819},
1764     {     0.00000000065,  2.47990173302,    11790.62908865880},
1765     {     0.00000000048,  4.26821029269,     2352.86615377180},
1766     {     0.00000000049,  5.51819305769,      191.44826611160},
1767     {     0.00000000048,  2.51039041484,    17298.18232732620},
1768     {     0.00000000046,  3.40293459332,    14143.49524243060},
1769     {     0.00000000041,  1.84035920887,    11322.66409830440},
1770     {     0.00000000035,  6.20303344591,     1109.37855209340},
1771     {     0.00000000039,  4.76600160325,    18073.70493865020},
1772     {     0.00000000034,  3.14302158146,     4705.73230754360},
1773     {     0.00000000034,  0.47584552790,       26.29831979980},
1774     {     0.00000000046,  3.30090415967,     6283.07584999140},
1775     {     0.00000000034,  3.92299418240,    10021.83728009940},
1776     {     0.00000000034,  3.23795065286,    22003.91463486980},
1777     {     0.00000000042,  3.39360926939,    14945.31617355440},
1778     {     0.00000000044,  4.39723735555,     7860.41939243920},
1779     {     0.00000000037,  3.63183908790,      801.82093112380},
1780     {     0.00000000034,  2.16381407025,    16496.36139620240},
1781     {     0.00000000034,  1.82177984232,      382.89653222320},
1782     {     0.00000000025,  3.32908650295,    18307.80723204360},
1783     {     0.00000000026,  3.64313769818,    29088.81141598500},
1784     {     0.00000000029,  3.82967178810,    10186.98722641120},
1785     {     0.00000000022,  3.17741520378,    28521.09277825460},
1786     {     0.00000000025,  5.71510731610,    21202.09370374600},
1787     {     0.00000000021,  5.30608699641,    19896.88012732740},
1788     {     0.00000000019,  4.65302013202,    19651.04848109800},
1789     {     0.00000000022,  2.42894070342,      529.69096509460},
1790     {     0.00000000021,  3.82207126131,    21228.39202354580},
1791     {     0.00000000016,  2.96175040524,    19367.18916223280},
1792     {     0.00000000016,  3.36250300274,    28286.99048486120},
1793     {     0.00000000015,  5.05571633205,    33019.02111220460},
1794     {     0.00000000014,  2.83786355803,    19786.67380610799},
1795     {     0.00000000014,  1.79922718553,     9830.38901398780},
1796     {     0.00000000014,  3.49994470578,    10988.80815753500},
1797     {     0.00000000013,  3.06303088617,    10742.97651130560},
1798     {     0.00000000013,  5.43981998532,    25158.60171976540},
1799     {     0.00000000015,  4.83166312889,    18875.52586977400},
1800     {     0.00000000012,  2.54141086214,     7064.12138562280},
1801     {     0.00000000010,  1.87933121728,    24356.78078864160},
1802     {     0.00000000011,  4.26593805644,    15720.83878487840},
1803     {     0.00000000010,  2.17901309900,     3723.50895892300},
1804     {     0.00000000010,  2.50084772448,     9103.90699411760},
1805     {     0.00000000007,  3.48063149205,     1059.38193018920},
1806     {     0.00000000007,  2.38734958588,    20618.01935853360},
1807 };
1808 
1809 
1810 static const struct ln_vsop venus_radius_r3[RADIUS_R3] = {
1811     {     0.00000049582,  3.22264415899,    10213.28554621100},
1812     {     0.00000000831,  3.21255590531,    20426.57109242200},
1813     {     0.00000000112,  3.14159265359,        0.00000000000},
1814     {     0.00000000013,  3.77454760284,    30639.85663863300},
1815     {     0.00000000008,  4.29674209391,    10239.58386601080},
1816     {     0.00000000006,  0.39133521368,    10186.98722641120},
1817     {     0.00000000004,  4.77456526708,     9437.76293488700},
1818     {     0.00000000003,  0.14604782945,    10988.80815753500},
1819 };
1820 
1821 
1822 static const struct ln_vsop venus_radius_r4[RADIUS_R4] = {
1823     {     0.00000000573,  0.92253525592,    10213.28554621100},
1824     {     0.00000000039,  0.95696787303,    20426.57109242200},
1825     {     0.00000000006,  3.14159265359,        0.00000000000},
1826 };
1827 
1828 
1829 static const struct ln_vsop venus_radius_r5[RADIUS_R5] = {
1830     {     0.00000000045,  0.30037014808,    10213.28554621100},
1831     {     0.00000000002,  5.33215705373,    20426.57109242200},
1832 };
1833 
1834 /*! \fn void ln_get_venus_equ_coords (double JD, struct ln_equ_posn * position);
1835 * \param JD Julian Day
1836 * \param position Pointer to store position
1837 *
1838 * Calculates Venus's equatorial position for given julian day.
1839 * This function includes calculations for planetary aberration and refers
1840 * to the FK5 reference frame.
1841 *
1842 * To get the complete equatorial coordinates, corrections for nutation
1843 * have to be applied.
1844 *
1845 * The position returned is accurate to within 0.1 arcsecs..
1846 */
ln_get_venus_equ_coords(double JD,struct ln_equ_posn * position)1847 void ln_get_venus_equ_coords (double JD, struct ln_equ_posn * position)
1848 {
1849 	struct ln_helio_posn h_sol, h_venus;
1850 	struct ln_rect_posn g_sol, g_venus;
1851 	double a,b,c;
1852 	double ra, dec, delta, diff, last, t = 0;
1853 
1854 	/* need typdef for solar heliocentric coords */
1855 	ln_get_solar_geom_coords (JD, &h_sol);
1856 	ln_get_rect_from_helio (&h_sol,  &g_sol);
1857 
1858 	do {
1859 		last = t;
1860 		ln_get_venus_helio_coords (JD - t, &h_venus);
1861 		ln_get_rect_from_helio (&h_venus, &g_venus);
1862 
1863 		/* equ 33.10 pg 229 */
1864 		a = g_sol.X + g_venus.X;
1865 		b = g_sol.Y + g_venus.Y;
1866 		c = g_sol.Z + g_venus.Z;
1867 
1868 		delta = a*a + b*b + c*c;
1869 		delta = sqrt (delta);
1870 		t = delta * 0.0057755183;
1871 		diff = t - last;
1872 	} while (diff > 0.0001 || diff < -0.0001);
1873 
1874 	ra = atan2 (b,a);
1875 	dec = c / delta;
1876 	dec = asin (dec);
1877 
1878 	/* back to hours, degrees */
1879 	position->ra = ln_range_degrees(ln_rad_to_deg (ra));
1880 	position->dec = ln_rad_to_deg (dec);
1881 }
1882 
1883 /*! \fn void ln_get_venus_helio_coords (double JD, struct ln_helio_posn * position)
1884 * \param JD Julian Day
1885 * \param position Pointer to store new heliocentric position
1886 *
1887 * Calculate Venus heliocentric (referred to the centre of the Sun) coordinates
1888 * in the FK5 reference frame for the given julian day.
1889 * Longitude and Latitude are in degrees, whilst radius vector is in AU.
1890 */
1891 /* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87
1892 */
ln_get_venus_helio_coords(double JD,struct ln_helio_posn * position)1893 void ln_get_venus_helio_coords (double JD, struct ln_helio_posn * position)
1894 {
1895 	double t, t2, t3, t4, t5;
1896 	double L0, L1, L2, L3, L4, L5;
1897 	double B0, B1, B2, B3, B4, B5;
1898 	double R0, R1, R2, R3, R4, R5;
1899 
1900 	/* check cache first */
1901 	if (JD == cJD) {
1902 		/* cache hit */
1903 		position->L = cL;
1904 		position->B = cB;
1905 		position->R = cR;
1906 		return;
1907 	}
1908 
1909 	/* get julian ephemeris day */
1910 	t = (JD - 2451545.0) / 365250.0;
1911 	t2 = t * t;
1912 	t3 = t2 * t;
1913 	t4 = t3 * t;
1914 	t5 = t4 * t;
1915 
1916 	/* calc L series */
1917 	L0 = ln_calc_series (venus_longitude_l0, LONG_L0, t);
1918 	L1 = ln_calc_series (venus_longitude_l1, LONG_L1, t);
1919 	L2 = ln_calc_series (venus_longitude_l2, LONG_L2, t);
1920 	L3 = ln_calc_series (venus_longitude_l3, LONG_L3, t);
1921 	L4 = ln_calc_series (venus_longitude_l4, LONG_L4, t);
1922 	L5 = ln_calc_series (venus_longitude_l5, LONG_L5, t);
1923 	position->L = (L0 + L1 * t + L2 * t2 + L3 * t3 + L4 * t4 + L5 * t5);
1924 
1925 	/* calc B series */
1926 	B0 = ln_calc_series (venus_latitude_b0, LAT_B0, t);
1927 	B1 = ln_calc_series (venus_latitude_b1, LAT_B1, t);
1928 	B2 = ln_calc_series (venus_latitude_b2, LAT_B2, t);
1929 	B3 = ln_calc_series (venus_latitude_b3, LAT_B3, t);
1930 	B4 = ln_calc_series (venus_latitude_b4, LAT_B4, t);
1931 	B5 = ln_calc_series (venus_latitude_b5, LAT_B5, t);
1932 	position->B = (B0 + B1 * t + B2 * t2 + B3 * t3 + B4 * t4 + B5 * t5);
1933 
1934 
1935 	/* calc R series */
1936 	R0 = ln_calc_series (venus_radius_r0, RADIUS_R0, t);
1937 	R1 = ln_calc_series (venus_radius_r1, RADIUS_R1, t);
1938 	R2 = ln_calc_series (venus_radius_r2, RADIUS_R2, t);
1939 	R3 = ln_calc_series (venus_radius_r3, RADIUS_R3, t);
1940 	R4 = ln_calc_series (venus_radius_r4, RADIUS_R4, t);
1941 	R5 = ln_calc_series (venus_radius_r5, RADIUS_R5, t);
1942 	position->R = (R0 + R1 * t + R2 * t2 + R3 * t3 + R4 * t4 + R5 * t5);
1943 
1944 	/* change to degrees in correct quadrant */
1945 	position->L = ln_rad_to_deg(position->L);
1946 	position->B = ln_rad_to_deg(position->B);
1947 	position->L = ln_range_degrees(position->L);
1948 
1949 	/* change to fk5 reference frame */
1950 	ln_vsop87_to_fk5 (position, JD);
1951 
1952 	/* save cache */
1953 	cJD = JD;
1954 	cL = position->L;
1955 	cB = position->B;
1956 	cR = position->R;
1957 }
1958 
1959 /*! \fn double ln_get_venus_earth_dist (double JD);
1960 * \param JD Julian day
1961 * \brief Calculate the distance between Venus and the Earth in AU
1962 * \return Distance in AU
1963 *
1964 * Calculates the distance in AU between the Earth and Venus for the
1965 * given julian day.
1966 */
ln_get_venus_earth_dist(double JD)1967 double ln_get_venus_earth_dist (double JD)
1968 {
1969 	struct ln_helio_posn h_venus, h_earth;
1970 	struct ln_rect_posn g_venus, g_earth;
1971 	double x, y, z;
1972 
1973 	/* get heliocentric positions */
1974 	ln_get_venus_helio_coords (JD, &h_venus);
1975 	ln_get_earth_helio_coords (JD, &h_earth);
1976 
1977 	/* get geocentric coords */
1978 	ln_get_rect_from_helio (&h_venus, &g_venus);
1979 	ln_get_rect_from_helio (&h_earth, &g_earth);
1980 
1981 	/* use pythag */
1982 	x = g_venus.X - g_earth.X;
1983 	y = g_venus.Y - g_earth.Y;
1984 	z = g_venus.Z - g_earth.Z;
1985 
1986 	x = x * x;
1987 	y = y * y;
1988 	z = z * z;
1989 	return sqrt (x + y + z);
1990 }
1991 
1992 /*! \fn double ln_get_venus_solar_dist (double JD);
1993 * \param JD Julian day
1994 * \brief Calculate the distance between Venus and the Sun in AU
1995 * \return Distance in AU
1996 *
1997 * Calculates the distance in AU between the Sun and Venus for
1998 * the given julian day.
1999 */
ln_get_venus_solar_dist(double JD)2000 double ln_get_venus_solar_dist (double JD)
2001 {
2002 	struct ln_helio_posn  h_venus;
2003 
2004 	/* get heliocentric position */
2005 	ln_get_venus_helio_coords (JD, &h_venus);
2006 
2007 	return h_venus.R;
2008 }
2009 
2010 /*! \fn double ln_get_venus_magnitude (double JD);
2011 * \param JD Julian day
2012 * \brief Calculate the visible magnitude of Venus
2013 * \return Visible magnitude of venus
2014 *
2015 * Calculate the visible magnitude of Venus for the
2016 * given julian day.
2017 */
ln_get_venus_magnitude(double JD)2018 double ln_get_venus_magnitude (double JD)
2019 {
2020 	double delta, r, i, i2, i3;
2021 
2022 	/* get distances */
2023 	r = ln_get_venus_solar_dist (JD);
2024 	delta = ln_get_venus_earth_dist (JD);
2025 
2026 	/* get phase */
2027 	i = ln_get_venus_phase (JD);
2028 	i2 = i * i;
2029 	i3 = i2 * i;
2030 
2031 	return -4.40 + 5 * log10 (r * delta) + 0.0009 * i + 0.000239 * i2 - 0.00000065 * i3;
2032 }
2033 
2034 /*! \fn double ln_get_venus_disk (double JD);
2035 * \param JD Julian day
2036 * \brief Calculate the illuminated fraction of Venus disk
2037 * \return Illuminated fraction of venus disk
2038 *
2039 * Calculate the illuminated fraction of Venus's disk for the given Julian
2040 * day
2041 */
2042 /* Chapter 41 */
ln_get_venus_disk(double JD)2043 double ln_get_venus_disk (double JD)
2044 {
2045 	double r,delta,R;
2046 
2047 	/* get distances */
2048 	R = ln_get_earth_solar_dist (JD);
2049 	r = ln_get_venus_solar_dist (JD);
2050 	delta = ln_get_venus_earth_dist (JD);
2051 
2052 	/* calc fraction angle */
2053 	return (((r + delta) * (r + delta)) - R * R) / (4 * r * delta);
2054 }
2055 
2056 /*! \fn double ln_get_venus_phase (double JD);
2057 * \param JD Julian day
2058 * \brief Calculate the phase angle of Venus (Sun - Venus - Earth)
2059 * \return Phase angle of Venus (degrees)
2060 *
2061 * Calculates the phase angle of Venus, that is, the angle Sun -
2062 * Venus - Earth for the given Julian day.
2063 */
2064 /* Chapter 41 */
ln_get_venus_phase(double JD)2065 double ln_get_venus_phase (double JD)
2066 {
2067 	double i,r,delta,R;
2068 
2069 	/* get distances */
2070 	R = ln_get_earth_solar_dist (JD);
2071 	r = ln_get_venus_solar_dist (JD);
2072 	delta = ln_get_venus_earth_dist (JD);
2073 
2074 	/* calc phase */
2075 	i = (r * r + delta * delta - R * R) / (2 * r * delta);
2076 	i = acos (i);
2077 	return ln_rad_to_deg (i);
2078 }
2079 
2080 
2081 /*! \fn double ln_get_venus_rst (double JD, struct ln_lnlat_posn * observer, struct ln_rst_time * rst);
2082 * \param JD Julian day
2083 * \param observer Observers position
2084 * \param rst Pointer to store Rise, Set and Transit time in JD
2085 * \return 0 for success, else 1 for circumpolar.
2086 *
2087 * Calculate the time the rise, set and transit (crosses the local meridian at upper culmination)
2088 * time of Venus for the given Julian day.
2089 *
2090 * Note: this functions returns 1 if Venus is circumpolar, that is it remains the whole
2091 * day either above or below the horizon.
2092 */
ln_get_venus_rst(double JD,struct ln_lnlat_posn * observer,struct ln_rst_time * rst)2093 int ln_get_venus_rst (double JD, struct ln_lnlat_posn * observer, struct ln_rst_time * rst)
2094 {
2095 	return ln_get_body_rst_horizon (JD, observer, ln_get_venus_equ_coords, LN_STAR_STANDART_HORIZON, rst);
2096 }
2097 
2098 
2099 /*! \fn double ln_get_venus_sdiam (double JD)
2100 * \param JD Julian day
2101 * \return Semidiameter in arc seconds
2102 *
2103 * Calculate the semidiameter of Venus in arc seconds for the
2104 * given julian day.
2105 */
ln_get_venus_sdiam(double JD)2106 double ln_get_venus_sdiam (double JD)
2107 {
2108 	double So = 8.41; /* at 1 AU, using atmosphere value, not crust (8.34) */
2109 	double dist;
2110 
2111 	dist = ln_get_venus_earth_dist (JD);
2112 	return So / dist;
2113 }
2114 
2115 /*! \fn void ln_get_venus_rect_helio (double JD, struct ln_rect_posn * position)
2116 * \param JD Julian day.
2117 * \param position pointer to return position
2118 *
2119 * Calculate Venus rectangular heliocentric coordinates for the
2120 * given Julian day. Coordinates are in AU.
2121 */
ln_get_venus_rect_helio(double JD,struct ln_rect_posn * position)2122 void ln_get_venus_rect_helio (double JD, struct ln_rect_posn * position)
2123 {
2124 	struct ln_helio_posn venus;
2125 
2126 	ln_get_venus_helio_coords (JD, &venus);
2127 	ln_get_rect_from_helio (&venus, position);
2128 }
2129