File Coverage

erfasrc/src/xy06.c
Criterion Covered Total %
statement 0 57 0.0
branch 0 24 0.0
condition n/a
subroutine n/a
pod n/a
total 0 81 0.0


line stmt bran cond sub pod time code
1             #include "erfa.h"
2              
3 0           void eraXy06(double date1, double date2, double *x, double *y)
4             /*
5             ** - - - - - - - -
6             ** e r a X y 0 6
7             ** - - - - - - - -
8             **
9             ** X,Y coordinates of celestial intermediate pole from series based
10             ** on IAU 2006 precession and IAU 2000A nutation.
11             **
12             ** Given:
13             ** date1,date2 double TT as a 2-part Julian Date (Note 1)
14             **
15             ** Returned:
16             ** x,y double CIP X,Y coordinates (Note 2)
17             **
18             ** Notes:
19             **
20             ** 1) The TT date date1+date2 is a Julian Date, apportioned in any
21             ** convenient way between the two arguments. For example,
22             ** JD(TT)=2450123.7 could be expressed in any of these ways,
23             ** among others:
24             **
25             ** date1 date2
26             **
27             ** 2450123.7 0.0 (JD method)
28             ** 2451545.0 -1421.3 (J2000 method)
29             ** 2400000.5 50123.2 (MJD method)
30             ** 2450123.5 0.2 (date & time method)
31             **
32             ** The JD method is the most natural and convenient to use in
33             ** cases where the loss of several decimal digits of resolution
34             ** is acceptable. The J2000 method is best matched to the way
35             ** the argument is handled internally and will deliver the
36             ** optimum resolution. The MJD method and the date & time methods
37             ** are both good compromises between resolution and convenience.
38             **
39             ** 2) The X,Y coordinates are those of the unit vector towards the
40             ** celestial intermediate pole. They represent the combined effects
41             ** of frame bias, precession and nutation.
42             **
43             ** 3) The fundamental arguments used are as adopted in IERS Conventions
44             ** (2003) and are from Simon et al. (1994) and Souchay et al.
45             ** (1999).
46             **
47             ** 4) This is an alternative to the angles-based method, via the ERFA
48             ** function eraFw2xy and as used in eraXys06a for example. The two
49             ** methods agree at the 1 microarcsecond level (at present), a
50             ** negligible amount compared with the intrinsic accuracy of the
51             ** models. However, it would be unwise to mix the two methods
52             ** (angles-based and series-based) in a single application.
53             **
54             ** Called:
55             ** eraFal03 mean anomaly of the Moon
56             ** eraFalp03 mean anomaly of the Sun
57             ** eraFaf03 mean argument of the latitude of the Moon
58             ** eraFad03 mean elongation of the Moon from the Sun
59             ** eraFaom03 mean longitude of the Moon's ascending node
60             ** eraFame03 mean longitude of Mercury
61             ** eraFave03 mean longitude of Venus
62             ** eraFae03 mean longitude of Earth
63             ** eraFama03 mean longitude of Mars
64             ** eraFaju03 mean longitude of Jupiter
65             ** eraFasa03 mean longitude of Saturn
66             ** eraFaur03 mean longitude of Uranus
67             ** eraFane03 mean longitude of Neptune
68             ** eraFapa03 general accumulated precession in longitude
69             **
70             ** References:
71             **
72             ** Capitaine, N., Wallace, P.T. & Chapront, J., 2003,
73             ** Astron.Astrophys., 412, 567
74             **
75             ** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
76             **
77             ** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003),
78             ** IERS Technical Note No. 32, BKG
79             **
80             ** Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
81             ** Francou, G. & Laskar, J., Astron.Astrophys., 1994, 282, 663
82             **
83             ** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M., 1999,
84             ** Astron.Astrophys.Supp.Ser. 135, 111
85             **
86             ** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
87             **
88             ** Copyright (C) 2013-2020, NumFOCUS Foundation.
89             ** Derived, with permission, from the SOFA library. See notes at end of file.
90             */
91             {
92              
93             /* Maximum power of T in the polynomials for X and Y */
94             enum { MAXPT = 5 };
95              
96             /* Polynomial coefficients (arcsec, X then Y). */
97             static const double xyp[2][MAXPT+1] = {
98              
99             { -0.016617,
100             2004.191898,
101             -0.4297829,
102             -0.19861834,
103             0.000007578,
104             0.0000059285
105             },
106             { -0.006951,
107             -0.025896,
108             -22.4072747,
109             0.00190059,
110             0.001112526,
111             0.0000001358
112             }
113             };
114              
115             /* Fundamental-argument multipliers: luni-solar terms */
116             static const int mfals[][5] = {
117              
118             /* 1-10 */
119             { 0, 0, 0, 0, 1 },
120             { 0, 0, 2, -2, 2 },
121             { 0, 0, 2, 0, 2 },
122             { 0, 0, 0, 0, 2 },
123             { 0, 1, 0, 0, 0 },
124             { 0, 1, 2, -2, 2 },
125             { 1, 0, 0, 0, 0 },
126             { 0, 0, 2, 0, 1 },
127             { 1, 0, 2, 0, 2 },
128             { 0, 1, -2, 2, -2 },
129              
130             /* 11-20 */
131             { 0, 0, 2, -2, 1 },
132             { 1, 0, -2, 0, -2 },
133             { 1, 0, 0, -2, 0 },
134             { 1, 0, 0, 0, 1 },
135             { 1, 0, 0, 0, -1 },
136             { 1, 0, -2, -2, -2 },
137             { 1, 0, 2, 0, 1 },
138             { 2, 0, -2, 0, -1 },
139             { 0, 0, 0, 2, 0 },
140             { 0, 0, 2, 2, 2 },
141              
142             /* 21-30 */
143             { 2, 0, 0, -2, 0 },
144             { 0, 2, -2, 2, -2 },
145             { 2, 0, 2, 0, 2 },
146             { 1, 0, 2, -2, 2 },
147             { 1, 0, -2, 0, -1 },
148             { 2, 0, 0, 0, 0 },
149             { 0, 0, 2, 0, 0 },
150             { 0, 1, 0, 0, 1 },
151             { 1, 0, 0, -2, -1 },
152             { 0, 2, 2, -2, 2 },
153              
154             /* 31-40 */
155             { 0, 0, 2, -2, 0 },
156             { 1, 0, 0, -2, 1 },
157             { 0, 1, 0, 0, -1 },
158             { 0, 2, 0, 0, 0 },
159             { 1, 0, -2, -2, -1 },
160             { 1, 0, 2, 2, 2 },
161             { 0, 1, 2, 0, 2 },
162             { 2, 0, -2, 0, 0 },
163             { 0, 0, 2, 2, 1 },
164             { 0, 1, -2, 0, -2 },
165              
166             /* 41-50 */
167             { 0, 0, 0, 2, 1 },
168             { 1, 0, 2, -2, 1 },
169             { 2, 0, 0, -2, -1 },
170             { 2, 0, 2, -2, 2 },
171             { 2, 0, 2, 0, 1 },
172             { 0, 0, 0, 2, -1 },
173             { 0, 1, -2, 2, -1 },
174             { 1, 1, 0, -2, 0 },
175             { 2, 0, 0, -2, 1 },
176             { 1, 0, 0, 2, 0 },
177              
178             /* 51-60 */
179             { 0, 1, 2, -2, 1 },
180             { 1, -1, 0, 0, 0 },
181             { 0, 1, -1, 1, -1 },
182             { 2, 0, -2, 0, -2 },
183             { 0, 1, 0, -2, 0 },
184             { 1, 0, 0, -1, 0 },
185             { 3, 0, 2, 0, 2 },
186             { 0, 0, 0, 1, 0 },
187             { 1, -1, 2, 0, 2 },
188             { 1, 1, -2, -2, -2 },
189              
190             /* 61-70 */
191             { 1, 0, -2, 0, 0 },
192             { 2, 0, 0, 0, -1 },
193             { 0, 1, -2, -2, -2 },
194             { 1, 1, 2, 0, 2 },
195             { 2, 0, 0, 0, 1 },
196             { 1, 1, 0, 0, 0 },
197             { 1, 0, -2, 2, -1 },
198             { 1, 0, 2, 0, 0 },
199             { 1, -1, 0, -1, 0 },
200             { 1, 0, 0, 0, 2 },
201              
202             /* 71-80 */
203             { 1, 0, -1, 0, -1 },
204             { 0, 0, 2, 1, 2 },
205             { 1, 0, -2, -4, -2 },
206             { 1, -1, 0, -1, -1 },
207             { 1, 0, 2, 2, 1 },
208             { 0, 2, -2, 2, -1 },
209             { 1, 0, 0, 0, -2 },
210             { 2, 0, -2, -2, -2 },
211             { 1, 1, 2, -2, 2 },
212             { 2, 0, -2, -4, -2 },
213              
214             /* 81-90 */
215             { 1, 0, -4, 0, -2 },
216             { 2, 0, 2, -2, 1 },
217             { 1, 0, 0, -1, -1 },
218             { 2, 0, 2, 2, 2 },
219             { 3, 0, 0, 0, 0 },
220             { 1, 0, 0, 2, 1 },
221             { 0, 0, 2, -2, -1 },
222             { 3, 0, 2, -2, 2 },
223             { 0, 0, 4, -2, 2 },
224             { 1, 0, 0, -4, 0 },
225              
226             /* 91-100 */
227             { 0, 1, 2, 0, 1 },
228             { 2, 0, 0, -4, 0 },
229             { 1, 1, 0, -2, -1 },
230             { 2, 0, -2, 0, 1 },
231             { 0, 0, 2, 0, -1 },
232             { 0, 1, -2, 0, -1 },
233             { 0, 1, 0, 0, 2 },
234             { 0, 0, 2, -1, 2 },
235             { 0, 0, 2, 4, 2 },
236             { 2, 1, 0, -2, 0 },
237              
238             /* 101-110 */
239             { 1, 1, 0, -2, 1 },
240             { 1, -1, 0, -2, 0 },
241             { 1, -1, 0, -1, -2 },
242             { 1, -1, 0, 0, 1 },
243             { 0, 1, -2, 2, 0 },
244             { 0, 1, 0, 0, -2 },
245             { 1, -1, 2, 2, 2 },
246             { 1, 0, 0, 2, -1 },
247             { 1, -1, -2, -2, -2 },
248             { 3, 0, 2, 0, 1 },
249              
250             /* 111-120 */
251             { 0, 1, 2, 2, 2 },
252             { 1, 0, 2, -2, 0 },
253             { 1, 1, -2, -2, -1 },
254             { 1, 0, 2, -4, 1 },
255             { 0, 1, -2, -2, -1 },
256             { 2, -1, 2, 0, 2 },
257             { 0, 0, 0, 2, 2 },
258             { 1, -1, 2, 0, 1 },
259             { 1, -1, -2, 0, -2 },
260             { 0, 1, 0, 2, 0 },
261              
262             /* 121-130 */
263             { 0, 1, 2, -2, 0 },
264             { 0, 0, 0, 1, 1 },
265             { 1, 0, -2, -2, 0 },
266             { 0, 3, 2, -2, 2 },
267             { 2, 1, 2, 0, 2 },
268             { 1, 1, 0, 0, 1 },
269             { 2, 0, 0, 2, 0 },
270             { 1, 1, 2, 0, 1 },
271             { 1, 0, 0, -2, -2 },
272             { 1, 0, -2, 2, 0 },
273              
274             /* 131-140 */
275             { 1, 0, -1, 0, -2 },
276             { 0, 1, 0, -2, 1 },
277             { 0, 1, 0, 1, 0 },
278             { 0, 0, 0, 1, -1 },
279             { 1, 0, -2, 2, -2 },
280             { 1, -1, 0, 0, -1 },
281             { 0, 0, 0, 4, 0 },
282             { 1, -1, 0, 2, 0 },
283             { 1, 0, 2, 1, 2 },
284             { 1, 0, 2, -1, 2 },
285              
286             /* 141-150 */
287             { 0, 0, 2, 1, 1 },
288             { 1, 0, 0, -2, 2 },
289             { 1, 0, -2, 0, 1 },
290             { 1, 0, -2, -4, -1 },
291             { 0, 0, 2, 2, 0 },
292             { 1, 1, 2, -2, 1 },
293             { 1, 0, -2, 1, -1 },
294             { 0, 0, 1, 0, 1 },
295             { 2, 0, -2, -2, -1 },
296             { 4, 0, 2, 0, 2 },
297              
298             /* 151-160 */
299             { 2, -1, 0, 0, 0 },
300             { 2, 1, 2, -2, 2 },
301             { 0, 1, 2, 1, 2 },
302             { 1, 0, 4, -2, 2 },
303             { 1, 1, 0, 0, -1 },
304             { 2, 0, 2, 0, 0 },
305             { 2, 0, -2, -4, -1 },
306             { 1, 0, -1, 0, 0 },
307             { 1, 0, 0, 1, 0 },
308             { 0, 1, 0, 2, 1 },
309              
310             /* 161-170 */
311             { 1, 0, -4, 0, -1 },
312             { 1, 0, 0, -4, -1 },
313             { 2, 0, 2, 2, 1 },
314             { 2, 1, 0, 0, 0 },
315             { 0, 0, 2, -3, 2 },
316             { 1, 2, 0, -2, 0 },
317             { 0, 3, 0, 0, 0 },
318             { 0, 0, 4, 0, 2 },
319             { 0, 0, 2, -4, 1 },
320             { 2, 0, 0, -2, -2 },
321              
322             /* 171-180 */
323             { 1, 1, -2, -4, -2 },
324             { 0, 1, 0, -2, -1 },
325             { 0, 0, 0, 4, 1 },
326             { 3, 0, 2, -2, 1 },
327             { 1, 0, 2, 4, 2 },
328             { 1, 1, -2, 0, -2 },
329             { 0, 0, 4, -2, 1 },
330             { 2, -2, 0, -2, 0 },
331             { 2, 1, 0, -2, -1 },
332             { 0, 2, 0, -2, 0 },
333              
334             /* 181-190 */
335             { 1, 0, 0, -1, 1 },
336             { 1, 1, 2, 2, 2 },
337             { 3, 0, 0, 0, -1 },
338             { 2, 0, 0, -4, -1 },
339             { 3, 0, 2, 2, 2 },
340             { 0, 0, 2, 4, 1 },
341             { 0, 2, -2, -2, -2 },
342             { 1, -1, 0, -2, -1 },
343             { 0, 0, 2, -1, 1 },
344             { 2, 0, 0, 2, 1 },
345              
346             /* 191-200 */
347             { 1, -1, -2, 2, -1 },
348             { 0, 0, 0, 2, -2 },
349             { 2, 0, 0, -4, 1 },
350             { 1, 0, 0, -4, 1 },
351             { 2, 0, 2, -4, 1 },
352             { 4, 0, 2, -2, 2 },
353             { 2, 1, -2, 0, -1 },
354             { 2, 1, -2, -4, -2 },
355             { 3, 0, 0, -4, 0 },
356             { 1, -1, 2, 2, 1 },
357              
358             /* 201-210 */
359             { 1, -1, -2, 0, -1 },
360             { 0, 2, 0, 0, 1 },
361             { 1, 2, -2, -2, -2 },
362             { 1, 1, 0, -4, 0 },
363             { 2, 0, 0, -2, 2 },
364             { 0, 2, 2, -2, 1 },
365             { 1, 0, 2, 0, -1 },
366             { 2, 1, 0, -2, 1 },
367             { 2, -1, -2, 0, -1 },
368             { 1, -1, -2, -2, -1 },
369              
370             /* 211-220 */
371             { 0, 1, -2, 1, -2 },
372             { 1, 0, -4, 2, -2 },
373             { 0, 1, 2, 2, 1 },
374             { 3, 0, 0, 0, 1 },
375             { 2, -1, 2, 2, 2 },
376             { 0, 1, -2, -4, -2 },
377             { 1, 0, -2, -3, -2 },
378             { 2, 0, 0, 0, 2 },
379             { 1, -1, 0, -2, -2 },
380             { 2, 0, -2, 2, -1 },
381              
382             /* 221-230 */
383             { 0, 2, -2, 0, -2 },
384             { 3, 0, -2, 0, -1 },
385             { 2, -1, 2, 0, 1 },
386             { 1, 0, -2, -1, -2 },
387             { 0, 0, 2, 0, 3 },
388             { 2, 0, -4, 0, -2 },
389             { 2, 1, 0, -4, 0 },
390             { 1, 1, -2, 1, -1 },
391             { 0, 2, 2, 0, 2 },
392             { 1, -1, 2, -2, 2 },
393              
394             /* 231-240 */
395             { 1, -1, 0, -2, 1 },
396             { 2, 1, 2, 0, 1 },
397             { 1, 0, 2, -4, 2 },
398             { 1, 1, -2, 0, -1 },
399             { 1, 1, 0, 2, 0 },
400             { 1, 0, 0, -3, 0 },
401             { 2, 0, 2, -1, 2 },
402             { 0, 2, 0, 0, -1 },
403             { 2, -1, 0, -2, 0 },
404             { 4, 0, 0, 0, 0 },
405              
406             /* 241-250 */
407             { 2, 1, -2, -2, -2 },
408             { 0, 2, -2, 2, 0 },
409             { 1, 0, 2, 1, 1 },
410             { 1, 0, -1, 0, -3 },
411             { 3, -1, 2, 0, 2 },
412             { 2, 0, 2, -2, 0 },
413             { 1, -2, 0, 0, 0 },
414             { 2, 0, 0, 0, -2 },
415             { 1, 0, 0, 4, 0 },
416             { 0, 1, 0, 1, 1 },
417              
418             /* 251-260 */
419             { 1, 0, 2, 2, 0 },
420             { 0, 1, 0, 2, -1 },
421             { 0, 1, 0, 1, -1 },
422             { 0, 0, 2, -2, 3 },
423             { 3, 1, 2, 0, 2 },
424             { 1, 1, 2, 1, 2 },
425             { 1, 1, -2, 2, -1 },
426             { 2, -1, 2, -2, 2 },
427             { 1, -2, 2, 0, 2 },
428             { 1, 0, 2, -4, 0 },
429              
430             /* 261-270 */
431             { 0, 0, 1, 0, 0 },
432             { 1, 0, 2, -3, 1 },
433             { 1, -2, 0, -2, 0 },
434             { 2, 0, 0, 2, -1 },
435             { 1, 1, 2, -4, 1 },
436             { 4, 0, 2, 0, 1 },
437             { 0, 1, 2, 1, 1 },
438             { 1, 2, 2, -2, 2 },
439             { 2, 0, 2, 1, 2 },
440             { 2, 1, 2, -2, 1 },
441              
442             /* 271-280 */
443             { 1, 0, 2, -1, 1 },
444             { 1, 0, 4, -2, 1 },
445             { 1, -1, 2, -2, 1 },
446             { 0, 1, 0, -4, 0 },
447             { 3, 0, -2, -2, -2 },
448             { 0, 0, 4, -4, 2 },
449             { 2, 0, -4, -2, -2 },
450             { 2, -2, 0, -2, -1 },
451             { 1, 0, 2, -2, -1 },
452             { 2, 0, -2, -6, -2 },
453              
454             /* 281-290 */
455             { 1, 0, -2, 1, -2 },
456             { 1, 0, -2, 2, 1 },
457             { 1, -1, 0, 2, -1 },
458             { 1, 0, -2, 1, 0 },
459             { 2, -1, 0, -2, 1 },
460             { 1, -1, 0, 2, 1 },
461             { 2, 0, -2, -2, 0 },
462             { 1, 0, 2, -3, 2 },
463             { 0, 0, 0, 4, -1 },
464             { 2, -1, 0, 0, 1 },
465              
466             /* 291-300 */
467             { 2, 0, 4, -2, 2 },
468             { 0, 0, 2, 3, 2 },
469             { 0, 1, 4, -2, 2 },
470             { 0, 1, -2, 2, 1 },
471             { 1, 1, 0, 2, 1 },
472             { 1, 0, 0, 4, 1 },
473             { 0, 0, 4, 0, 1 },
474             { 2, 0, 0, -3, 0 },
475             { 1, 0, 0, -1, -2 },
476             { 1, -2, -2, -2, -2 },
477              
478             /* 301-310 */
479             { 3, 0, 0, 2, 0 },
480             { 2, 0, 2, -4, 2 },
481             { 1, 1, -2, -4, -1 },
482             { 1, 0, -2, -6, -2 },
483             { 2, -1, 0, 0, -1 },
484             { 2, -1, 0, 2, 0 },
485             { 0, 1, 2, -2, -1 },
486             { 1, 1, 0, 1, 0 },
487             { 1, 2, 0, -2, -1 },
488             { 1, 0, 0, 1, -1 },
489              
490             /* 311-320 */
491             { 0, 0, 1, 0, 2 },
492             { 3, 1, 2, -2, 2 },
493             { 1, 0, -4, -2, -2 },
494             { 1, 0, 2, 4, 1 },
495             { 1, -2, 2, 2, 2 },
496             { 1, -1, -2, -4, -2 },
497             { 0, 0, 2, -4, 2 },
498             { 0, 0, 2, -3, 1 },
499             { 2, 1, -2, 0, 0 },
500             { 3, 0, -2, -2, -1 },
501              
502             /* 321-330 */
503             { 2, 0, 2, 4, 2 },
504             { 0, 0, 0, 0, 3 },
505             { 2, -1, -2, -2, -2 },
506             { 2, 0, 0, -1, 0 },
507             { 3, 0, 2, -4, 2 },
508             { 2, 1, 2, 2, 2 },
509             { 0, 0, 3, 0, 3 },
510             { 1, 1, 2, 2, 1 },
511             { 2, 1, 0, 0, -1 },
512             { 1, 2, 0, -2, 1 },
513              
514             /* 331-340 */
515             { 3, 0, 2, 2, 1 },
516             { 1, -1, -2, 2, -2 },
517             { 1, 1, 0, -1, 0 },
518             { 1, 2, 0, 0, 0 },
519             { 1, 0, 4, 0, 2 },
520             { 1, -1, 2, 4, 2 },
521             { 2, 1, 0, 0, 1 },
522             { 1, 0, 0, 2, 2 },
523             { 1, -1, -2, 2, 0 },
524             { 0, 2, -2, -2, -1 },
525              
526             /* 341-350 */
527             { 2, 0, -2, 0, 2 },
528             { 5, 0, 2, 0, 2 },
529             { 3, 0, -2, -6, -2 },
530             { 1, -1, 2, -1, 2 },
531             { 3, 0, 0, -4, -1 },
532             { 1, 0, 0, 1, 1 },
533             { 1, 0, -4, 2, -1 },
534             { 0, 1, 2, -4, 1 },
535             { 1, 2, 2, 0, 2 },
536             { 0, 1, 0, -2, -2 },
537              
538             /* 351-360 */
539             { 0, 0, 2, -1, 0 },
540             { 1, 0, 1, 0, 1 },
541             { 0, 2, 0, -2, 1 },
542             { 3, 0, 2, 0, 0 },
543             { 1, 1, -2, 1, 0 },
544             { 2, 1, -2, -4, -1 },
545             { 3, -1, 0, 0, 0 },
546             { 2, -1, -2, 0, 0 },
547             { 4, 0, 2, -2, 1 },
548             { 2, 0, -2, 2, 0 },
549              
550             /* 361-370 */
551             { 1, 1, 2, -2, 0 },
552             { 1, 0, -2, 4, -1 },
553             { 1, 0, -2, -2, 1 },
554             { 2, 0, 2, -4, 0 },
555             { 1, 1, 0, -2, -2 },
556             { 1, 1, -2, -2, 0 },
557             { 1, 0, 1, -2, 1 },
558             { 2, -1, -2, -4, -2 },
559             { 3, 0, -2, 0, -2 },
560             { 0, 1, -2, -2, 0 },
561              
562             /* 371-380 */
563             { 3, 0, 0, -2, -1 },
564             { 1, 0, -2, -3, -1 },
565             { 0, 1, 0, -4, -1 },
566             { 1, -2, 2, -2, 1 },
567             { 0, 1, -2, 1, -1 },
568             { 1, -1, 0, 0, 2 },
569             { 2, 0, 0, 1, 0 },
570             { 1, -2, 0, 2, 0 },
571             { 1, 2, -2, -2, -1 },
572             { 0, 0, 4, -4, 1 },
573              
574             /* 381-390 */
575             { 0, 1, 2, 4, 2 },
576             { 0, 1, -4, 2, -2 },
577             { 3, 0, -2, 0, 0 },
578             { 2, -1, 2, 2, 1 },
579             { 0, 1, -2, -4, -1 },
580             { 4, 0, 2, 2, 2 },
581             { 2, 0, -2, -3, -2 },
582             { 2, 0, 0, -6, 0 },
583             { 1, 0, 2, 0, 3 },
584             { 3, 1, 0, 0, 0 },
585              
586             /* 391-400 */
587             { 3, 0, 0, -4, 1 },
588             { 1, -1, 2, 0, 0 },
589             { 1, -1, 0, -4, 0 },
590             { 2, 0, -2, 2, -2 },
591             { 1, 1, 0, -2, 2 },
592             { 4, 0, 0, -2, 0 },
593             { 2, 2, 0, -2, 0 },
594             { 0, 1, 2, 0, 0 },
595             { 1, 1, 0, -4, 1 },
596             { 1, 0, 0, -4, -2 },
597              
598             /* 401-410 */
599             { 0, 0, 0, 1, 2 },
600             { 3, 0, 0, 2, 1 },
601             { 1, 1, 0, -4, -1 },
602             { 0, 0, 2, 2, -1 },
603             { 1, 1, 2, 0, 0 },
604             { 1, -1, 2, -4, 1 },
605             { 1, 1, 0, 0, 2 },
606             { 0, 0, 2, 6, 2 },
607             { 4, 0, -2, -2, -1 },
608             { 2, 1, 0, -4, -1 },
609              
610             /* 411-420 */
611             { 0, 0, 0, 3, 1 },
612             { 1, -1, -2, 0, 0 },
613             { 0, 0, 2, 1, 0 },
614             { 1, 0, 0, 2, -2 },
615             { 3, -1, 2, 2, 2 },
616             { 3, -1, 2, -2, 2 },
617             { 1, 0, 0, -1, 2 },
618             { 1, -2, 2, -2, 2 },
619             { 0, 1, 0, 2, 2 },
620             { 0, 1, -2, -1, -2 },
621              
622             /* 421-430 */
623             { 1, 1, -2, 0, 0 },
624             { 0, 2, 2, -2, 0 },
625             { 3, -1, -2, -1, -2 },
626             { 1, 0, 0, -6, 0 },
627             { 1, 0, -2, -4, 0 },
628             { 2, 1, 0, -4, 1 },
629             { 2, 0, 2, 0, -1 },
630             { 2, 0, -4, 0, -1 },
631             { 0, 0, 3, 0, 2 },
632             { 2, 1, -2, -2, -1 },
633              
634             /* 431-440 */
635             { 1, -2, 0, 0, 1 },
636             { 2, -1, 0, -4, 0 },
637             { 0, 0, 0, 3, 0 },
638             { 5, 0, 2, -2, 2 },
639             { 1, 2, -2, -4, -2 },
640             { 1, 0, 4, -4, 2 },
641             { 0, 0, 4, -1, 2 },
642             { 3, 1, 0, -4, 0 },
643             { 3, 0, 0, -6, 0 },
644             { 2, 0, 0, 2, 2 },
645              
646             /* 441-450 */
647             { 2, -2, 2, 0, 2 },
648             { 1, 0, 0, -3, 1 },
649             { 1, -2, -2, 0, -2 },
650             { 1, -1, -2, -3, -2 },
651             { 0, 0, 2, -2, -2 },
652             { 2, 0, -2, -4, 0 },
653             { 1, 0, -4, 0, 0 },
654             { 0, 1, 0, -1, 0 },
655             { 4, 0, 0, 0, -1 },
656             { 3, 0, 2, -1, 2 },
657              
658             /* 451-460 */
659             { 3, -1, 2, 0, 1 },
660             { 2, 0, 2, -1, 1 },
661             { 1, 2, 2, -2, 1 },
662             { 1, 1, 0, 2, -1 },
663             { 0, 2, 2, 0, 1 },
664             { 3, 1, 2, 0, 1 },
665             { 1, 1, 2, 1, 1 },
666             { 1, 1, 0, -1, 1 },
667             { 1, -2, 0, -2, -1 },
668             { 4, 0, 0, -4, 0 },
669              
670             /* 461-470 */
671             { 2, 1, 0, 2, 0 },
672             { 1, -1, 0, 4, 0 },
673             { 0, 1, 0, -2, 2 },
674             { 0, 0, 2, 0, -2 },
675             { 1, 0, -1, 0, 1 },
676             { 3, 0, 2, -2, 0 },
677             { 2, 0, 2, 2, 0 },
678             { 1, 2, 0, -4, 0 },
679             { 1, -1, 0, -3, 0 },
680             { 0, 1, 0, 4, 0 },
681              
682             /* 471 - 480 */
683             { 0, 1, -2, 0, 0 },
684             { 2, 2, 2, -2, 2 },
685             { 0, 0, 0, 1, -2 },
686             { 0, 2, -2, 0, -1 },
687             { 4, 0, 2, -4, 2 },
688             { 2, 0, -4, 2, -2 },
689             { 2, -1, -2, 0, -2 },
690             { 1, 1, 4, -2, 2 },
691             { 1, 1, 2, -4, 2 },
692             { 1, 0, 2, 3, 2 },
693              
694             /* 481-490 */
695             { 1, 0, 0, 4, -1 },
696             { 0, 0, 0, 4, 2 },
697             { 2, 0, 0, 4, 0 },
698             { 1, 1, -2, 2, 0 },
699             { 2, 1, 2, 1, 2 },
700             { 2, 1, 2, -4, 1 },
701             { 2, 0, 2, 1, 1 },
702             { 2, 0, -4, -2, -1 },
703             { 2, 0, -2, -6, -1 },
704             { 2, -1, 2, -1, 2 },
705              
706             /* 491-500 */
707             { 1, -2, 2, 0, 1 },
708             { 1, -2, 0, -2, 1 },
709             { 1, -1, 0, -4, -1 },
710             { 0, 2, 2, 2, 2 },
711             { 0, 2, -2, -4, -2 },
712             { 0, 1, 2, 3, 2 },
713             { 0, 1, 0, -4, 1 },
714             { 3, 0, 0, -2, 1 },
715             { 2, 1, -2, 0, 1 },
716             { 2, 0, 4, -2, 1 },
717              
718             /* 501-510 */
719             { 2, 0, 0, -3, -1 },
720             { 2, -2, 0, -2, 1 },
721             { 2, -1, 2, -2, 1 },
722             { 1, 0, 0, -6, -1 },
723             { 1, -2, 0, 0, -1 },
724             { 1, -2, -2, -2, -1 },
725             { 0, 1, 4, -2, 1 },
726             { 0, 0, 2, 3, 1 },
727             { 2, -1, 0, -1, 0 },
728             { 1, 3, 0, -2, 0 },
729              
730             /* 511-520 */
731             { 0, 3, 0, -2, 0 },
732             { 2, -2, 2, -2, 2 },
733             { 0, 0, 4, -2, 0 },
734             { 4, -1, 2, 0, 2 },
735             { 2, 2, -2, -4, -2 },
736             { 4, 1, 2, 0, 2 },
737             { 4, -1, -2, -2, -2 },
738             { 2, 1, 0, -2, -2 },
739             { 2, 1, -2, -6, -2 },
740             { 2, 0, 0, -1, 1 },
741              
742             /* 521-530 */
743             { 2, -1, -2, 2, -1 },
744             { 1, 1, -2, 2, -2 },
745             { 1, 1, -2, -3, -2 },
746             { 1, 0, 3, 0, 3 },
747             { 1, 0, -2, 1, 1 },
748             { 1, 0, -2, 0, 2 },
749             { 1, -1, 2, 1, 2 },
750             { 1, -1, 0, 0, -2 },
751             { 1, -1, -4, 2, -2 },
752             { 0, 3, -2, -2, -2 },
753              
754             /* 531-540 */
755             { 0, 1, 0, 4, 1 },
756             { 0, 0, 4, 2, 2 },
757             { 3, 0, -2, -2, 0 },
758             { 2, -2, 0, 0, 0 },
759             { 1, 1, 2, -4, 0 },
760             { 1, 1, 0, -3, 0 },
761             { 1, 0, 2, -3, 0 },
762             { 1, -1, 2, -2, 0 },
763             { 0, 2, 0, 2, 0 },
764             { 0, 0, 2, 4, 0 },
765              
766             /* 541-550 */
767             { 1, 0, 1, 0, 0 },
768             { 3, 1, 2, -2, 1 },
769             { 3, 0, 4, -2, 2 },
770             { 3, 0, 2, 1, 2 },
771             { 3, 0, 0, 2, -1 },
772             { 3, 0, 0, 0, 2 },
773             { 3, 0, -2, 2, -1 },
774             { 2, 0, 4, -4, 2 },
775             { 2, 0, 2, -3, 2 },
776             { 2, 0, 0, 4, 1 },
777              
778             /* 551-560 */
779             { 2, 0, 0, -3, 1 },
780             { 2, 0, -4, 2, -1 },
781             { 2, 0, -2, -2, 1 },
782             { 2, -2, 2, 2, 2 },
783             { 2, -2, 0, -2, -2 },
784             { 2, -1, 0, 2, 1 },
785             { 2, -1, 0, 2, -1 },
786             { 1, 1, 2, 4, 2 },
787             { 1, 1, 0, 1, 1 },
788             { 1, 1, 0, 1, -1 },
789              
790             /* 561-570 */
791             { 1, 1, -2, -6, -2 },
792             { 1, 0, 0, -3, -1 },
793             { 1, 0, -4, -2, -1 },
794             { 1, 0, -2, -6, -1 },
795             { 1, -2, 2, 2, 1 },
796             { 1, -2, -2, 2, -1 },
797             { 1, -1, -2, -4, -1 },
798             { 0, 2, 0, 0, 2 },
799             { 0, 1, 2, -4, 2 },
800             { 0, 1, -2, 4, -1 },
801              
802             /* 571-580 */
803             { 5, 0, 0, 0, 0 },
804             { 3, 0, 0, -3, 0 },
805             { 2, 2, 0, -4, 0 },
806             { 1, -1, 2, 2, 0 },
807             { 0, 1, 0, 3, 0 },
808             { 4, 0, -2, 0, -1 },
809             { 3, 0, -2, -6, -1 },
810             { 3, 0, -2, -1, -1 },
811             { 2, 1, 2, 2, 1 },
812             { 2, 1, 0, 2, 1 },
813              
814             /* 581-590 */
815             { 2, 0, 2, 4, 1 },
816             { 2, 0, 2, -6, 1 },
817             { 2, 0, 2, -2, -1 },
818             { 2, 0, 0, -6, -1 },
819             { 2, -1, -2, -2, -1 },
820             { 1, 2, 2, 0, 1 },
821             { 1, 2, 0, 0, 1 },
822             { 1, 0, 4, 0, 1 },
823             { 1, 0, 2, -6, 1 },
824             { 1, 0, 2, -4, -1 },
825              
826             /* 591-600 */
827             { 1, 0, -1, -2, -1 },
828             { 1, -1, 2, 4, 1 },
829             { 1, -1, 2, -3, 1 },
830             { 1, -1, 0, 4, 1 },
831             { 1, -1, -2, 1, -1 },
832             { 0, 1, 2, -2, 3 },
833             { 3, 0, 0, -2, 0 },
834             { 1, 0, 1, -2, 0 },
835             { 0, 2, 0, -4, 0 },
836             { 0, 0, 2, -4, 0 },
837              
838             /* 601-610 */
839             { 0, 0, 1, -1, 0 },
840             { 0, 0, 0, 6, 0 },
841             { 0, 2, 0, 0, -2 },
842             { 0, 1, -2, 2, -3 },
843             { 4, 0, 0, 2, 0 },
844             { 3, 0, 0, -1, 0 },
845             { 3, -1, 0, 2, 0 },
846             { 2, 1, 0, 1, 0 },
847             { 2, 1, 0, -6, 0 },
848             { 2, -1, 2, 0, 0 },
849              
850             /* 611-620 */
851             { 1, 0, 2, -1, 0 },
852             { 1, -1, 0, 1, 0 },
853             { 1, -1, -2, -2, 0 },
854             { 0, 1, 2, 2, 0 },
855             { 0, 0, 2, -3, 0 },
856             { 2, 2, 0, -2, -1 },
857             { 2, -1, -2, 0, 1 },
858             { 1, 2, 2, -4, 1 },
859             { 0, 1, 4, -4, 2 },
860             { 0, 0, 0, 3, 2 },
861              
862             /* 621-630 */
863             { 5, 0, 2, 0, 1 },
864             { 4, 1, 2, -2, 2 },
865             { 4, 0, -2, -2, 0 },
866             { 3, 1, 2, 2, 2 },
867             { 3, 1, 0, -2, 0 },
868             { 3, 1, -2, -6, -2 },
869             { 3, 0, 0, 0, -2 },
870             { 3, 0, -2, -4, -2 },
871             { 3, -1, 0, -3, 0 },
872             { 3, -1, 0, -2, 0 },
873              
874             /* 631-640 */
875             { 2, 1, 2, 0, 0 },
876             { 2, 1, 2, -4, 2 },
877             { 2, 1, 2, -2, 0 },
878             { 2, 1, 0, -3, 0 },
879             { 2, 1, -2, 0, -2 },
880             { 2, 0, 0, -4, 2 },
881             { 2, 0, 0, -4, -2 },
882             { 2, 0, -2, -5, -2 },
883             { 2, -1, 2, 4, 2 },
884             { 2, -1, 0, -2, 2 },
885              
886             /* 641-650 */
887             { 1, 3, -2, -2, -2 },
888             { 1, 1, 0, 0, -2 },
889             { 1, 1, 0, -6, 0 },
890             { 1, 1, -2, 1, -2 },
891             { 1, 1, -2, -1, -2 },
892             { 1, 0, 2, 1, 0 },
893             { 1, 0, 0, 3, 0 },
894             { 1, 0, 0, -4, 2 },
895             { 1, 0, -2, 4, -2 },
896             { 1, -2, 0, -1, 0 },
897              
898             /* 651-NFLS */
899             { 0, 1, -4, 2, -1 },
900             { 1, 0, -2, 0, -3 },
901             { 0, 0, 4, -4, 4 }
902             };
903              
904             /* Number of frequencies: luni-solar */
905             static const int NFLS = (int) (sizeof mfals / sizeof (int) / 5);
906              
907             /* Fundamental-argument multipliers: planetary terms */
908             static const int mfapl[][14] = {
909              
910             /* 1-10 */
911             { 0, 0, 1, -1, 1, 0, 0, -1, 0, -2, 5, 0, 0, 0 },
912             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, -1 },
913             { 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, -2 },
914             { 0, 0, 1, -1, 1, 0, -8, 12, 0, 0, 0, 0, 0, 0 },
915             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2 },
916             { 0, 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0 },
917             { 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0 },
918             { 0, 0, 0, 0, 0, 0, 0, 8,-16, 4, 5, 0, 0, 0 },
919             { 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0 },
920             { 0, 0, 0, 0, 1, 0, 0, -1, 2, 0, 0, 0, 0, 0 },
921              
922             /* 11-20 */
923             { 0, 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, -1 },
924             { 0, 0, 1, -1, 1, 0, 0, -1, 0, 2, -5, 0, 0, 0 },
925             { 0, 0, 2, -2, 1, 0, -5, 6, 0, 0, 0, 0, 0, 0 },
926             { 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0, -2 },
927             { 0, 0, 0, 0, 0, 0, 0, 3, 0, -1, 0, 0, 0, 2 },
928             { 0, 0, 0, 0, 0, 0, 0, 2, -8, 3, 0, 0, 0, -2 },
929             { 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0, -2 },
930             { 0, 0, 0, 0, 0, 0, 0, 6, -8, 3, 0, 0, 0, 2 },
931             { 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0 },
932             { 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, 0 },
933              
934             /* 21-30 */
935             { 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0 },
936             { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2 },
937             { 0, 0, 0, 0, 1, 0, 0, -4, 8, -3, 0, 0, 0, 0 },
938             { 0, 0, 0, 0, 1, 0, 0, 4, -8, 3, 0, 0, 0, 0 },
939             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 0 },
940             { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 2 },
941             { 0, 0, 1, -1, 1, 0, 0, 0, -2, 0, 0, 0, 0, 0 },
942             { 2, 0, 0, -2, -1, 0, 0, -2, 0, 2, 0, 0, 0, 0 },
943             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1 },
944             { 2, 0, 0, -2, 0, 0, 0, -2, 0, 2, 0, 0, 0, 0 },
945              
946             /* 31-40 */
947             { 0, 0, 0, 0, 0, 0, 0, 2, 0, -2, 0, 0, 0, 0 },
948             { 0, 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, 0 },
949             { 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2 },
950             { 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0, -2 },
951             { 0, 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0 },
952             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 1 },
953             { 2, 0, 0, -2, 0, 0, 0, -2, 0, 3, 0, 0, 0, 0 },
954             { 0, 0, 1, -1, 1, 0, 0, -1, 0, -1, 0, 0, 0, 0 },
955             { 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, 0 },
956             { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, -1, 0, 0, 0 },
957              
958             /* 41-50 */
959             { 0, 0, 0, 0, 0, 0, 0, 1, 0, -2, 0, 0, 0, 0 },
960             { 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0, -2 },
961             { 0, 0, 1, -1, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0 },
962             { 0, 0, 0, 0, 0, 0, 0, 4, 0, -2, 0, 0, 0, 2 },
963             { 0, 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, -2 },
964             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
965             { 0, 0, 0, 0, 0, 0, 2, -1, 0, 0, 0, 0, 0, 2 },
966             { 1, 0, 0, 0, 0, 0,-18, 16, 0, 0, 0, 0, 0, 0 },
967             { 0, 0, 1, -1, 1, 0, 0, -1, 0, 2, 0, 0, 0, 0 },
968             { 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2 },
969              
970             /* 51-60 */
971             { 0, 0, 1, -1, 1, 0, -5, 7, 0, 0, 0, 0, 0, 0 },
972             { 1, 0, 0, 0, 0, 0,-10, 3, 0, 0, 0, 0, 0, 0 },
973             { 0, 0, 2, -2, 0, 0, -5, 6, 0, 0, 0, 0, 0, 0 },
974             { 0, 0, 0, 0, 0, 0, 0, 2, 0, -1, 0, 0, 0, 2 },
975             { 1, 0, 2, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
976             { 0, 0, 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 2 },
977             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1 },
978             { 1, 0, -2, 0, -2, 0, 0, 4, -8, 3, 0, 0, 0, 0 },
979             { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 2, 0, 0, 0 },
980             { 0, 0, 2, -2, 1, 0, -3, 3, 0, 0, 0, 0, 0, 0 },
981              
982             /* 61-70 */
983             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2 },
984             { 0, 0, 0, 0, 0, 0, 0, 8,-16, 4, 5, 0, 0, -2 },
985             { 0, 0, 1, -1, 1, 0, 0, 3, -8, 3, 0, 0, 0, 0 },
986             { 0, 0, 0, 0, 0, 0, 8,-11, 0, 0, 0, 0, 0, -2 },
987             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2 },
988             { 0, 0, 0, 0, 0, 0, 0, 8,-16, 4, 5, 0, 0, 2 },
989             { 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1 },
990             { 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0, -1 },
991             { 0, 0, 0, 0, 0, 0, 0, 1, 0, -3, 0, 0, 0, -2 },
992             { 0, 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0 },
993              
994             /* 71-80 */
995             { 0, 0, 0, 0, 0, 0, 6, -8, 0, 0, 0, 0, 0, -2 },
996             { 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 0, 2 },
997             { 0, 0, 0, 0, 0, 0, 8,-15, 0, 0, 0, 0, 0, -2 },
998             { 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 0, 0, 0, -2 },
999             { 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0, -2 },
1000             { 0, 0, 0, 0, 0, 0, 0, 3, 0, -2, 0, 0, 0, 2 },
1001             { 0, 0, 1, -1, 1, 0, 0, -5, 8, -3, 0, 0, 0, 0 },
1002             { 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 2 },
1003             { 0, 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 2 },
1004             { 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, 0 },
1005              
1006             /* 81-90 */
1007             { 2, 0, 0, -2, 1, 0, 0, -2, 0, 3, 0, 0, 0, 0 },
1008             { 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0, -1 },
1009             { 2, 0, 0, -2, 0, 0, -3, 3, 0, 0, 0, 0, 0, 0 },
1010             { 0, 0, 0, 0, 1, 0, 8,-13, 0, 0, 0, 0, 0, 0 },
1011             { 0, 0, 0, 0, 1, 0, 0, 0, 0, -2, 5, 0, 0, 0 },
1012             { 1, 0, 0, -1, 0, 0, -3, 4, 0, 0, 0, 0, 0, 0 },
1013             { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2 },
1014             { 1, 0, 0, 0, -1, 0,-18, 16, 0, 0, 0, 0, 0, 0 },
1015             { 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, -5, 0, 0, 0 },
1016             { 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
1017              
1018             /* 91-100 */
1019             { 1, 0, 0, -2, 0, 0, 19,-21, 3, 0, 0, 0, 0, 0 },
1020             { 0, 0, 0, 0, 1, 0, -8, 13, 0, 0, 0, 0, 0, 0 },
1021             { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0 },
1022             { 0, 0, 0, 0, 0, 0, 7, -9, 0, 0, 0, 0, 0, -2 },
1023             { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2 },
1024             { 1, 0, 0, 0, 1, 0,-18, 16, 0, 0, 0, 0, 0, 0 },
1025             { 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0, -1 },
1026             { 0, 0, 0, 0, 0, 0, 0, 6,-16, 4, 5, 0, 0, -2 },
1027             { 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, 0, -2 },
1028             { 0, 0, 0, 0, 0, 0, 3, -7, 0, 0, 0, 0, 0, -2 },
1029              
1030             /* 101-110 */
1031             { 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, -1 },
1032             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1 },
1033             { 2, 0, 0, -2, 1, 0, 0, -2, 0, 2, 0, 0, 0, 0 },
1034             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1 },
1035             { 0, 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0 },
1036             { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, 0 },
1037             { 2, 0, 0, -2, -1, 0, 0, -2, 0, 3, 0, 0, 0, 0 },
1038             { 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 0 },
1039             { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0 },
1040             { 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 2 },
1041              
1042             /* 111-120 */
1043             { 0, 0, 0, 0, 1, 0, 0, 1, -2, 0, 0, 0, 0, 0 },
1044             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2 },
1045             { 0, 0, 2, -2, 1, 0, 0, -2, 0, 2, 0, 0, 0, 0 },
1046             { 0, 0, 0, 0, 0, 0, 0, 2, 0, -3, 0, 0, 0, 0 },
1047             { 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, -1 },
1048             { 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 2 },
1049             { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 0 },
1050             { 0, 0, 1, -1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0 },
1051             { 2, 0, 0, -2, 0, 0, -6, 8, 0, 0, 0, 0, 0, 0 },
1052             { 0, 0, 1, -1, 1, 0, 0, -2, 2, 0, 0, 0, 0, 0 },
1053              
1054             /* 121-130 */
1055             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1 },
1056             { 0, 0, 1, -1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0 },
1057             { 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, -1 },
1058             { 0, 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0 },
1059             { 0, 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, -2 },
1060             { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0 },
1061             { 0, 0, 0, 0, 0, 0, 8,-10, 0, 0, 0, 0, 0, -2 },
1062             { 0, 0, 1, -1, 1, 0, -3, 4, 0, 0, 0, 0, 0, 0 },
1063             { 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0, -2 },
1064             { 1, 0, 0, -1, 1, 0, 0, -1, 0, 2, 0, 0, 0, 0 },
1065              
1066             /* 131-140 */
1067             { 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0, -1 },
1068             { 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, 0 },
1069             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1 },
1070             { 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, -1 },
1071             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
1072             { 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2 },
1073             { 0, 0, 0, 0, 0, 0, 0, 4, 0, -3, 0, 0, 0, 2 },
1074             { 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 1 },
1075             { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1 },
1076             { 0, 0, 0, 0, 1, 0, 2, -3, 0, 0, 0, 0, 0, 0 },
1077              
1078             /* 141-150 */
1079             { 1, 0, 0, -1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0 },
1080             { 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0, -1 },
1081             { 0, 0, 0, 0, 0, 0, 0, 5, -4, 0, 0, 0, 0, 2 },
1082             { 0, 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 2 },
1083             { 0, 0, 0, 0, 0, 0, 9,-11, 0, 0, 0, 0, 0, -2 },
1084             { 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, -1 },
1085             { 0, 0, 0, 0, 0, 0, 0, 8,-15, 0, 0, 0, 0, 0 },
1086             { 0, 0, 1, -1, 1, 0, -4, 5, 0, 0, 0, 0, 0, 0 },
1087             { 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0, 0 },
1088             { 0, 0, 0, 0, 0, 0, 0, 4, 0, -1, 0, 0, 0, 2 },
1089              
1090             /* 151-160 */
1091             { 1, 0, 0, -1, 1, 0, -3, 4, 0, 0, 0, 0, 0, 0 },
1092             { 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
1093             { 0, 0, 1, -1, 1, 0, 0, -1, 0, -4, 10, 0, 0, 0 },
1094             { 0, 0, 0, 0, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0 },
1095             { 0, 0, 1, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0 },
1096             { 0, 0, 0, 0, 0, 0, 0, 1, 0, -3, 0, 0, 0, 0 },
1097             { 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 2 },
1098             { 0, 0, 0, 0, 0, 0, 0, 1, 0, -4, 0, 0, 0, -2 },
1099             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, -2 },
1100             { 0, 0, 2, -2, 1, 0, -4, 4, 0, 0, 0, 0, 0, 0 },
1101              
1102             /* 161-170 */
1103             { 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, -1, 0, 0, 2 },
1104             { 0, 0, 0, 0, 0, 0, 0, 4, -3, 0, 0, 0, 0, 2 },
1105             { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, 0, 2, 0 },
1106             { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, -1 },
1107             { 0, 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, -1 },
1108             { 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0, 0 },
1109             { 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 1 },
1110             { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
1111             { 0, 0, 2, -2, 1, 0, 0, -9, 13, 0, 0, 0, 0, 0 },
1112             { 2, 0, 2, 0, 2, 0, 0, 2, 0, -3, 0, 0, 0, 0 },
1113              
1114             /* 171-180 */
1115             { 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0, -2 },
1116             { 0, 0, 1, -1, 2, 0, 0, -1, 0, 0, 2, 0, 0, 0 },
1117             { 1, 0, 0, -1, -1, 0, -3, 4, 0, 0, 0, 0, 0, 0 },
1118             { 0, 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, -2 },
1119             { 0, 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 0, 0 },
1120             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1 },
1121             { 1, 0, 2, 0, 1, 0, 0, -2, 0, 3, 0, 0, 0, 0 },
1122             { 1, 0, -2, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0 },
1123             { 0, 0, 0, 0, 1, 0, 0, -2, 4, 0, 0, 0, 0, 0 },
1124             { 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0 },
1125              
1126             /* 181-190 */
1127             { 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 2 },
1128             { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1 },
1129             { 0, 0, 2, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
1130             { 0, 0, 0, 0, 0, 0, 0, 1, -8, 3, 0, 0, 0, -2 },
1131             { 0, 0, 0, 0, 0, 0, 6,-10, 0, 0, 0, 0, 0, -2 },
1132             { 0, 0, 0, 0, 0, 0, 0, 7, -8, 3, 0, 0, 0, 2 },
1133             { 0, 0, 0, 0, 1, 0, -3, 5, 0, 0, 0, 0, 0, 0 },
1134             { 0, 0, 1, -1, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0 },
1135             { 0, 0, 1, -1, 0, 0, -5, 7, 0, 0, 0, 0, 0, 0 },
1136             { 0, 0, 0, 0, 0, 0, 0, 2, 0, -2, 0, 0, 0, 1 },
1137              
1138             /* 191-200 */
1139             { 0, 0, 0, 0, 0, 0, 0, 2, 0, -1, 0, 0, 0, 0 },
1140             { 0, 0, 0, 0, 0, 0, 7,-10, 0, 0, 0, 0, 0, -2 },
1141             { 1, 0, 0, -2, 0, 0, 0, -2, 0, 2, 0, 0, 0, 0 },
1142             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0 },
1143             { 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, -5, 0, 0, 0 },
1144             { 0, 0, 0, 0, 0, 0, 6, -8, 0, 0, 0, 0, 0, -1 },
1145             { 0, 0, 1, -1, 1, 0, 0, -9, 15, 0, 0, 0, 0, 0 },
1146             { 0, 0, 0, 0, 1, 0, -2, 3, 0, 0, 0, 0, 0, 0 },
1147             { 0, 0, 0, 0, 1, 0, -1, 1, 0, 0, 0, 0, 0, 0 },
1148             { 0, 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0 },
1149              
1150             /* 201-210 */
1151             { 0, 0, 0, 0, 0, 0, 0, 1, -4, 0, 0, 0, 0, -2 },
1152             { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 2 },
1153             { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, -1, 0, 0, 2 },
1154             { 2, 0, 0, -2, 1, 0, -6, 8, 0, 0, 0, 0, 0, 0 },
1155             { 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, -1 },
1156             { 0, 0, 1, -1, 1, 0, 3, -6, 0, 0, 0, 0, 0, 0 },
1157             { 0, 0, 1, -1, 1, 0, -2, 2, 0, 0, 0, 0, 0, 0 },
1158             { 0, 0, 1, -1, 1, 0, 8,-14, 0, 0, 0, 0, 0, 0 },
1159             { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
1160             { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
1161              
1162             /* 211-220 */
1163             { 0, 0, 0, 0, 1, 0, 0, 8,-15, 0, 0, 0, 0, 0 },
1164             { 0, 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0 },
1165             { 0, 0, 0, 0, 0, 0, 7, -7, 0, 0, 0, 0, 0, 0 },
1166             { 2, 0, 0, -2, 1, 0, -3, 3, 0, 0, 0, 0, 0, 0 },
1167             { 0, 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 2 },
1168             { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 2 },
1169             { 2, 0, -1, -1, 0, 0, 0, 3, -7, 0, 0, 0, 0, 0 },
1170             { 0, 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, -2 },
1171             { 0, 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0 },
1172             { 0, 0, 1, -1, 1, 0, 0, -3, 4, 0, 0, 0, 0, 0 },
1173              
1174             /* 221-230 */
1175             { 2, 0, 0, -2, 0, 0, 0, -6, 8, 0, 0, 0, 0, 0 },
1176             { 2, 0, 0, -2, 0, 0, 0, -5, 6, 0, 0, 0, 0, 0 },
1177             { 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0 },
1178             { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1 },
1179             { 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 1 },
1180             { 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 2 },
1181             { 0, 0, 0, 0, 1, 0, 0, 1, 0, -1, 0, 0, 0, 0 },
1182             { 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0 },
1183             { 0, 0, 0, 0, 0, 0, 3, -9, 4, 0, 0, 0, 0, -2 },
1184             { 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, -2 },
1185              
1186             /* 231-240 */
1187             { 0, 0, 0, 0, 0, 0, 0, 2, 0, -4, 0, 0, 0, -2 },
1188             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1 },
1189             { 0, 0, 0, 0, 0, 0, 7,-11, 0, 0, 0, 0, 0, -2 },
1190             { 0, 0, 0, 0, 0, 0, 3, -5, 4, 0, 0, 0, 0, 2 },
1191             { 0, 0, 1, -1, 0, 0, 0, -1, 0, -1, 1, 0, 0, 0 },
1192             { 2, 0, 0, 0, 0, 0, 0, -2, 0, 3, 0, 0, 0, 0 },
1193             { 0, 0, 0, 0, 0, 0, 0, 8,-15, 0, 0, 0, 0, -2 },
1194             { 0, 0, 1, -1, 2, 0, 0, -2, 2, 0, 0, 0, 0, 0 },
1195             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 2 },
1196             { 0, 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 0, -1 },
1197              
1198             /* 241-250 */
1199             { 0, 0, 1, -1, 1, 0, 0, -1, 0, -1, 1, 0, 0, 0 },
1200             { 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, 1 },
1201             { 0, 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, 0 },
1202             { 0, 0, 0, 0, 0, 0, 0, 3, -8, 3, 0, 0, 0, 0 },
1203             { 0, 0, 1, -1, 1, 0, 2, -4, 0, -3, 0, 0, 0, 0 },
1204             { 0, 0, 0, 0, 1, 0, 3, -5, 0, 2, 0, 0, 0, 0 },
1205             { 0, 0, 0, 0, 0, 0, 0, 3, 0, -3, 0, 0, 0, 2 },
1206             { 0, 0, 2, -2, 2, 0, -8, 11, 0, 0, 0, 0, 0, 0 },
1207             { 0, 0, 0, 0, 0, 0, 0, 5, -8, 3, 0, 0, 0, 0 },
1208             { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -2, 0, 0, 0 },
1209              
1210             /* 251-260 */
1211             { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 2 },
1212             { 0, 0, 0, 0, 0, 0, 0, 5, -9, 0, 0, 0, 0, -2 },
1213             { 0, 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 2 },
1214             { 0, 0, 0, 0, 0, 0, 7, -9, 0, 0, 0, 0, 0, -1 },
1215             { 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, 0, -1 },
1216             { 0, 0, 0, 0, 0, 0, 2, -1, 0, 0, 0, 0, 0, 0 },
1217             { 1, 0, -2, -2, -2, 0, 0, -2, 0, 2, 0, 0, 0, 0 },
1218             { 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 2 },
1219             { 0, 0, 0, 0, 0, 0, 0, 2, 0, -2, 5, 0, 0, 2 },
1220             { 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 1 },
1221              
1222             /* 261-270 */
1223             { 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 2 },
1224             { 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, -5, 0, 0, 2 },
1225             { 2, 0, 0, -2, -1, 0, 0, -2, 0, 0, 5, 0, 0, 0 },
1226             { 2, 0, 0, -2, -1, 0, -6, 8, 0, 0, 0, 0, 0, 0 },
1227             { 1, 0, 0, -2, 0, 0, -3, 3, 0, 0, 0, 0, 0, 0 },
1228             { 0, 0, 0, 0, 0, 0, 8, -8, 0, 0, 0, 0, 0, 0 },
1229             { 0, 0, 0, 0, 0, 0, 0, 3, 0, 2, -5, 0, 0, 2 },
1230             { 0, 0, 0, 0, 1, 0, 3, -7, 4, 0, 0, 0, 0, 0 },
1231             { 0, 0, 2, -2, 1, 0, -2, 2, 0, 0, 0, 0, 0, 0 },
1232             { 0, 0, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0 },
1233              
1234             /* 271-280 */
1235             { 0, 0, 1, -1, 0, 0, 0, -1, 0, -2, 5, 0, 0, 0 },
1236             { 0, 0, 0, 0, 0, 0, 0, 3, 0, -3, 0, 0, 0, 0 },
1237             { 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 1 },
1238             { 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, -2 },
1239             { 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 2 },
1240             { 0, 0, 0, 0, 0, 0, 0, 6,-15, 0, 0, 0, 0, -2 },
1241             { 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 2 },
1242             { 1, 0, 0, -1, 0, 0, 0, -3, 4, 0, 0, 0, 0, 0 },
1243             { 0, 0, 0, 0, 1, 0, -3, 7, -4, 0, 0, 0, 0, 0 },
1244             { 0, 0, 0, 0, 0, 0, 0, 5, 0, -2, 0, 0, 0, 2 },
1245              
1246             /* 281-290 */
1247             { 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, 1 },
1248             { 0, 0, 2, -2, 2, 0, -5, 6, 0, 0, 0, 0, 0, 0 },
1249             { 0, 0, 2, -2, 2, 0, -3, 3, 0, 0, 0, 0, 0, 0 },
1250             { 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2 },
1251             { 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0 },
1252             { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 2 },
1253             { 0, 0, 0, 0, 0, 0, 0, 4, -8, 0, 0, 0, 0, -2 },
1254             { 0, 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0 },
1255             { 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0, 0 },
1256             { 0, 0, 0, 0, 0, 0, 0, 6,-11, 0, 0, 0, 0, -2 },
1257              
1258             /* 291-300 */
1259             { 0, 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, -2 },
1260             { 0, 0, 1, -1, 1, 0, 0, -1, 0, 3, 0, 0, 0, 0 },
1261             { 0, 0, 1, -1, 0, 0, 0, -1, 0, 2, 0, 0, 0, 0 },
1262             { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, 1 },
1263             { 0, 0, 0, 0, 0, 0, 9,-12, 0, 0, 0, 0, 0, -2 },
1264             { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 1 },
1265             { 0, 0, 1, -1, 0, 0, -8, 12, 0, 0, 0, 0, 0, 0 },
1266             { 0, 0, 1, -1, 1, 0, -2, 3, 0, 0, 0, 0, 0, 0 },
1267             { 0, 0, 0, 0, 0, 0, 7, -7, 0, 0, 0, 0, 0, -1 },
1268             { 0, 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, -1 },
1269              
1270             /* 301-310 */
1271             { 0, 0, 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 2 },
1272             { 0, 0, 0, 0, 0, 1, 0, -4, 0, 0, 0, 0, 0, -2 },
1273             { 0, 0, 1, -1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
1274             { 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0, -1 },
1275             { 0, 0, 1, -1, -1, 0, 0, 0, -2, 0, 0, 0, 0, 0 },
1276             { 0, 0, 0, 0, 0, 0, 0, 1, -5, 0, 0, 0, 0, -2 },
1277             { 2, 0, 0, -2, 0, 0, 0, -2, 0, 3, -1, 0, 0, 0 },
1278             { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, -2, 0, 0, 0 },
1279             { 0, 0, 0, 0, 0, 0, 0, 5, -9, 0, 0, 0, 0, 0 },
1280             { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, 2 },
1281              
1282             /* 311-320 */
1283             { 0, 0, 0, 0, 0, 0, 9, -9, 0, 0, 0, 0, 0, -1 },
1284             { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 3, 0, 0, 0 },
1285             { 0, 0, 0, 0, 1, 0, 0, 2, -4, 0, 0, 0, 0, 0 },
1286             { 0, 0, 0, 0, 0, 0, 5, -3, 0, 0, 0, 0, 0, 2 },
1287             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1 },
1288             { 0, 0, 1, -1, 2, 0, 0, -1, 0, 2, 0, 0, 0, 0 },
1289             { 0, 0, 0, 0, 0, 0, 5, -9, 0, 0, 0, 0, 0, -2 },
1290             { 0, 0, 0, 0, 0, 0, 0, 5, -3, 0, 0, 0, 0, 2 },
1291             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 2 },
1292             { 0, 0, 2, 0, 2, 0, 0, 4, -8, 3, 0, 0, 0, 0 },
1293              
1294             /* 321-330 */
1295             { 0, 0, 2, 0, 2, 0, 0, -4, 8, -3, 0, 0, 0, 0 },
1296             { 0, 0, 0, 0, 0, 0, 0, 5, 0, -3, 0, 0, 0, 2 },
1297             { 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 },
1298             { 2, 0, -1, -1, -1, 0, 0, -1, 0, 3, 0, 0, 0, 0 },
1299             { 0, 0, 0, 0, 0, 0, 4, -3, 0, 0, 0, 0, 0, 2 },
1300             { 0, 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 2 },
1301             { 0, 0, 0, 0, 0, 0, 5,-10, 0, 0, 0, 0, 0, -2 },
1302             { 0, 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, 1 },
1303             { 0, 0, 2, -2, 1, -1, 0, 2, 0, 0, 0, 0, 0, 0 },
1304             { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, 2, 0, 0 },
1305              
1306             /* 331-340 */
1307             { 0, 0, 0, 0, 1, 0, 3, -5, 0, 0, 0, 0, 0, 0 },
1308             { 1, 0, 0, -2, 0, 0, 0, -2, 0, 3, 0, 0, 0, 0 },
1309             { 0, 0, 2, -2, 0, 0, -3, 3, 0, 0, 0, 0, 0, 0 },
1310             { 0, 0, 0, 0, 0, 0, 9, -9, 0, 0, 0, 0, 0, 0 },
1311             { 0, 0, 2, 0, 2, 0, 1, -1, 0, 0, 0, 0, 0, 0 },
1312             { 0, 0, 2, -2, 1, 0, 0, -8, 11, 0, 0, 0, 0, 0 },
1313             { 0, 0, 2, -2, 1, 0, 0, -2, 0, 0, 2, 0, 0, 0 },
1314             { 0, 0, 1, -1, 1, 0, 0, -1, 0, -1, 2, 0, 0, 0 },
1315             { 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, 2 },
1316             { 0, 0, 0, 0, 0, 0, 2, -6, 0, 0, 0, 0, 0, -2 },
1317              
1318             /* 341-350 */
1319             { 0, 0, 0, 0, 0, 0, 0, 8,-15, 0, 0, 0, 0, -1 },
1320             { 0, 0, 0, 0, 0, 0, 0, 5, -2, 0, 0, 0, 0, 2 },
1321             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2 },
1322             { 0, 0, 0, 0, 0, 0, 0, 7,-13, 0, 0, 0, 0, -2 },
1323             { 0, 0, 0, 0, 0, 0, 0, 3, 0, -2, 0, 0, 0, 0 },
1324             { 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 2 },
1325             { 0, 0, 2, -2, 1, 0, 0, -2, 0, 3, 0, 0, 0, 0 },
1326             { 0, 0, 0, 0, 0, 0, 8, -8, 0, 0, 0, 0, 0, -1 },
1327             { 0, 0, 0, 0, 0, 0, 8,-10, 0, 0, 0, 0, 0, -1 },
1328             { 0, 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 1 },
1329              
1330             /* 351-360 */
1331             { 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0, -1 },
1332             { 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, -1 },
1333             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 2 },
1334             { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2 },
1335             { 0, 0, 0, 0, 0, 0, 0, 2, 0, -4, 0, 0, 0, 0 },
1336             { 2, 0, 0, -2, -1, 0, 0, -5, 6, 0, 0, 0, 0, 0 },
1337             { 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 0, 0, -2 },
1338             { 2, 0, -1, -1, -1, 0, 0, 3, -7, 0, 0, 0, 0, 0 },
1339             { 0, 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0 },
1340             { 0, 0, 2, 0, 2, 0, -1, 1, 0, 0, 0, 0, 0, 0 },
1341              
1342             /* 361-370 */
1343             { 2, 0, 0, -2, 0, 0, 0, -2, 0, 4, -3, 0, 0, 0 },
1344             { 0, 0, 0, 0, 0, 0, 0, 6,-11, 0, 0, 0, 0, 0 },
1345             { 2, 0, 0, -2, 1, 0, 0, -6, 8, 0, 0, 0, 0, 0 },
1346             { 0, 0, 0, 0, 0, 0, 0, 4, -8, 1, 5, 0, 0, -2 },
1347             { 0, 0, 0, 0, 0, 0, 0, 6, -5, 0, 0, 0, 0, 2 },
1348             { 1, 0, -2, -2, -2, 0, -3, 3, 0, 0, 0, 0, 0, 0 },
1349             { 0, 0, 1, -1, 2, 0, 0, 0, -2, 0, 0, 0, 0, 0 },
1350             { 0, 0, 0, 0, 2, 0, 0, 4, -8, 3, 0, 0, 0, 0 },
1351             { 0, 0, 0, 0, 2, 0, 0, -4, 8, -3, 0, 0, 0, 0 },
1352             { 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1 },
1353              
1354             /* 371-380 */
1355             { 0, 0, 0, 0, 0, 0, 0, 6, -7, 0, 0, 0, 0, 2 },
1356             { 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, -2, 0, 0, 2 },
1357             { 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, -2, 0, 0, 2 },
1358             { 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 1 },
1359             { 0, 0, 0, 0, 0, 0, 0, 1, -6, 0, 0, 0, 0, -2 },
1360             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 2 },
1361             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2 },
1362             { 0, 0, 0, 0, 0, 0, 3, -5, 0, 2, 0, 0, 0, 0 },
1363             { 0, 0, 0, 0, 0, 0, 0, 7,-13, 0, 0, 0, 0, 0 },
1364             { 0, 0, 0, 0, 0, 0, 0, 2, 0, -2, 0, 0, 0, 2 },
1365              
1366             /* 381-390 */
1367             { 0, 0, 1, -1, 0, 0, 0, -1, 0, 0, 2, 0, 0, 0 },
1368             { 0, 0, 0, 0, 1, 0, 0, -8, 15, 0, 0, 0, 0, 0 },
1369             { 2, 0, 0, -2, -2, 0, -3, 3, 0, 0, 0, 0, 0, 0 },
1370             { 2, 0, -1, -1, -1, 0, 0, -1, 0, 2, 0, 0, 0, 0 },
1371             { 1, 0, 2, -2, 2, 0, 0, -2, 0, 2, 0, 0, 0, 0 },
1372             { 1, 0, -1, 1, -1, 0,-18, 17, 0, 0, 0, 0, 0, 0 },
1373             { 0, 0, 2, 0, 2, 0, 0, 1, 0, -1, 0, 0, 0, 0 },
1374             { 0, 0, 2, 0, 2, 0, 0, -1, 0, 1, 0, 0, 0, 0 },
1375             { 0, 0, 2, -2, -1, 0, -5, 6, 0, 0, 0, 0, 0, 0 },
1376             { 0, 0, 1, -1, 2, 0, 0, -1, 0, 1, 0, 0, 0, 0 },
1377              
1378             /* 391-400 */
1379             { 0, 0, 0, 0, 1, 0, 2, -2, 0, 0, 0, 0, 0, 0 },
1380             { 0, 0, 0, 0, 0, 0, 8,-16, 0, 0, 0, 0, 0, -2 },
1381             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 2 },
1382             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2 },
1383             { 0, 0, 0, 0, 2, 0, 0, -1, 2, 0, 0, 0, 0, 0 },
1384             { 2, 0, -1, -1, -2, 0, 0, -1, 0, 2, 0, 0, 0, 0 },
1385             { 0, 0, 0, 0, 0, 0, 6,-10, 0, 0, 0, 0, 0, -1 },
1386             { 0, 0, 1, -1, 1, 0, 0, -1, 0, -2, 4, 0, 0, 0 },
1387             { 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2 },
1388             { 2, 0, 0, -2, -1, 0, 0, -2, 0, 4, -5, 0, 0, 0 },
1389              
1390             /* 401-410 */
1391             { 2, 0, 0, -2, -1, 0, -3, 3, 0, 0, 0, 0, 0, 0 },
1392             { 2, 0, -1, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0 },
1393             { 1, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0 },
1394             { 1, 0, 0, -1, -1, 0, 0, -2, 2, 0, 0, 0, 0, 0 },
1395             { 1, 0, -1, -1, -1, 0, 20,-20, 0, 0, 0, 0, 0, 0 },
1396             { 0, 0, 2, -2, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0 },
1397             { 0, 0, 1, -1, 1, 0, 1, -2, 0, 0, 0, 0, 0, 0 },
1398             { 0, 0, 1, -1, 1, 0, -2, 1, 0, 0, 0, 0, 0, 0 },
1399             { 0, 0, 0, 0, 1, 0, 5, -8, 0, 0, 0, 0, 0, 0 },
1400             { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0 },
1401              
1402             /* 411-420 */
1403             { 0, 0, 0, 0, 0, 0, 9,-11, 0, 0, 0, 0, 0, -1 },
1404             { 0, 0, 0, 0, 0, 0, 5, -3, 0, 0, 0, 0, 0, 1 },
1405             { 0, 0, 0, 0, 0, 0, 0, 1, 0, -3, 0, 0, 0, -1 },
1406             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1 },
1407             { 0, 0, 0, 0, 0, 0, 6, -7, 0, 0, 0, 0, 0, 0 },
1408             { 0, 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 0 },
1409             { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, -2 },
1410             { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, -2, 0, 0, 0 },
1411             { 0, 0, 1, -1, 2, 0, 0, -1, 0, -2, 5, 0, 0, 0 },
1412             { 0, 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0 },
1413              
1414             /* 421-430 */
1415             { 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0, 0 },
1416             { 0, 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, -2 },
1417             { 0, 0, 0, 0, 0, 0, 0, 2, -6, 0, 0, 0, 0, -2 },
1418             { 1, 0, 0, -2, 0, 0, 20,-21, 0, 0, 0, 0, 0, 0 },
1419             { 0, 0, 0, 0, 0, 0, 8,-12, 0, 0, 0, 0, 0, 0 },
1420             { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, 0 },
1421             { 0, 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0 },
1422             { 0, 0, 1, -1, 2, 0, 0, -1, 0, -1, 0, 0, 0, 0 },
1423             { 0, 0, 0, 0, 0, 0, 8,-12, 0, 0, 0, 0, 0, -2 },
1424             { 0, 0, 0, 0, 0, 0, 0, 9,-17, 0, 0, 0, 0, 0 },
1425              
1426             /* 431-440 */
1427             { 0, 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 2 },
1428             { 0, 0, 0, 0, 0, 0, 0, 4, -8, 1, 5, 0, 0, 2 },
1429             { 0, 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, -2 },
1430             { 0, 0, 0, 0, 0, 0, 0, 2, -7, 0, 0, 0, 0, -2 },
1431             { 1, 0, 0, -1, 1, 0, 0, -3, 4, 0, 0, 0, 0, 0 },
1432             { 1, 0, -2, 0, -2, 0,-10, 3, 0, 0, 0, 0, 0, 0 },
1433             { 0, 0, 0, 0, 1, 0, 0, -9, 17, 0, 0, 0, 0, 0 },
1434             { 0, 0, 0, 0, 0, 0, 1, -4, 0, 0, 0, 0, 0, -2 },
1435             { 1, 0, -2, -2, -2, 0, 0, -2, 0, 3, 0, 0, 0, 0 },
1436             { 1, 0, -1, 1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
1437              
1438             /* 441-450 */
1439             { 0, 0, 2, -2, 2, 0, 0, -2, 0, 2, 0, 0, 0, 0 },
1440             { 0, 0, 1, -1, 2, 0, 0, -1, 0, 0, 1, 0, 0, 0 },
1441             { 0, 0, 1, -1, 2, 0, -5, 7, 0, 0, 0, 0, 0, 0 },
1442             { 0, 0, 0, 0, 1, 0, 0, 2, -2, 0, 0, 0, 0, 0 },
1443             { 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0, -1 },
1444             { 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, -2 },
1445             { 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0, 0 },
1446             { 0, 0, 0, 0, 0, 0, 0, 5,-10, 0, 0, 0, 0, -2 },
1447             { 0, 0, 0, 0, 0, 0, 0, 4, 0, -4, 0, 0, 0, 2 },
1448             { 0, 0, 0, 0, 0, 0, 0, 2, 0, -5, 0, 0, 0, -2 },
1449              
1450             /* 451-460 */
1451             { 0, 0, 0, 0, 0, 0, 0, 1, 0, -5, 0, 0, 0, -2 },
1452             { 0, 0, 0, 0, 0, 0, 0, 1, 0, -2, 5, 0, 0, 2 },
1453             { 0, 0, 0, 0, 0, 0, 0, 1, 0, -2, 0, 0, 0, -2 },
1454             { 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, 1 },
1455             { 1, 0, 0, -2, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0 },
1456             { 0, 0, 0, 0, 0, 0, 3, -7, 4, 0, 0, 0, 0, 0 },
1457             { 2, 0, 2, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
1458             { 0, 0, 1, -1, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0 },
1459             { 0, 0, 0, 0, 1, 0, 0, 1, 0, -2, 0, 0, 0, 0 },
1460             { 0, 0, 0, 0, 0, 0, 0, 6,-10, 0, 0, 0, 0, -2 },
1461              
1462             /* 461-470 */
1463             { 1, 0, 0, -1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0 },
1464             { 0, 0, 2, -2, 1, 0, 0, 4, -8, 3, 0, 0, 0, 0 },
1465             { 0, 0, 2, -2, 1, 0, 0, 1, 0, -1, 0, 0, 0, 0 },
1466             { 0, 0, 2, -2, 1, 0, 0, -4, 8, -3, 0, 0, 0, 0 },
1467             { 0, 0, 2, -2, 1, 0, 0, -3, 0, 3, 0, 0, 0, 0 },
1468             { 0, 0, 2, -2, 1, 0, -5, 5, 0, 0, 0, 0, 0, 0 },
1469             { 0, 0, 1, -1, 1, 0, 1, -3, 0, 0, 0, 0, 0, 0 },
1470             { 0, 0, 1, -1, 1, 0, 0, -4, 6, 0, 0, 0, 0, 0 },
1471             { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, -1, 0, 0 },
1472             { 0, 0, 1, -1, 1, 0, -5, 6, 0, 0, 0, 0, 0, 0 },
1473              
1474             /* 471-480 */
1475             { 0, 0, 0, 0, 1, 0, 3, -4, 0, 0, 0, 0, 0, 0 },
1476             { 0, 0, 0, 0, 1, 0, -2, 2, 0, 0, 0, 0, 0, 0 },
1477             { 0, 0, 0, 0, 0, 0, 7,-10, 0, 0, 0, 0, 0, -1 },
1478             { 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, 1 },
1479             { 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0, -2 },
1480             { 0, 0, 0, 0, 0, 0, 3, -8, 0, 0, 0, 0, 0, -2 },
1481             { 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 0, 0, 0, -1 },
1482             { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, -1 },
1483             { 0, 0, 0, 0, 0, 0, 0, 7, -9, 0, 0, 0, 0, 2 },
1484             { 0, 0, 0, 0, 0, 0, 0, 7, -8, 0, 0, 0, 0, 2 },
1485              
1486             /* 481-490 */
1487             { 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 2 },
1488             { 0, 0, 0, 0, 0, 0, 0, 3, -8, 3, 0, 0, 0, -2 },
1489             { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, -2, 0, 0, 1 },
1490             { 0, 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 1 },
1491             { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1 },
1492             { 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, -1 },
1493             { 2, 0, 0, -2, -1, 0, 0, -6, 8, 0, 0, 0, 0, 0 },
1494             { 2, 0, -1, -1, 1, 0, 0, 3, -7, 0, 0, 0, 0, 0 },
1495             { 0, 0, 2, -2, 1, 0, 0, -7, 9, 0, 0, 0, 0, 0 },
1496             { 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, -1 },
1497              
1498             /* 491-500 */
1499             { 0, 0, 1, -1, 2, 0, -8, 12, 0, 0, 0, 0, 0, 0 },
1500             { 1, 0, 0, 0, 0, 0, 0, -2, 0, 2, 0, 0, 0, 0 },
1501             { 1, 0, 0, -2, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0 },
1502             { 0, 0, 0, 0, 0, 0, 7, -8, 0, 0, 0, 0, 0, 0 },
1503             { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0 },
1504             { 2, 0, 0, -2, 1, 0, 0, -5, 6, 0, 0, 0, 0, 0 },
1505             { 2, 0, 0, -2, -1, 0, 0, -2, 0, 3, -1, 0, 0, 0 },
1506             { 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
1507             { 1, 0, 0, -2, 1, 0, 0, -2, 0, 2, 0, 0, 0, 0 },
1508             { 1, 0, 0, -2, -1, 0, 0, -2, 0, 2, 0, 0, 0, 0 },
1509              
1510             /* 501-510 */
1511             { 1, 0, 0, -1, -1, 0, 0, -3, 4, 0, 0, 0, 0, 0 },
1512             { 1, 0, -1, 0, -1, 0, -3, 5, 0, 0, 0, 0, 0, 0 },
1513             { 0, 0, 2, -2, 1, 0, 0, -4, 4, 0, 0, 0, 0, 0 },
1514             { 0, 0, 2, -2, 1, 0, 0, -2, 0, 0, 0, 0, 0, 0 },
1515             { 0, 0, 2, -2, 1, 0, -8, 11, 0, 0, 0, 0, 0, 0 },
1516             { 0, 0, 2, -2, 0, 0, 0, -9, 13, 0, 0, 0, 0, 0 },
1517             { 0, 0, 1, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
1518             { 0, 0, 1, -1, 1, 0, 0, 1, -4, 0, 0, 0, 0, 0 },
1519             { 0, 0, 1, -1, 1, 0, 0, -1, 0, 1, -3, 0, 0, 0 },
1520             { 0, 0, 0, 0, 1, 0, 0, 7,-13, 0, 0, 0, 0, 0 },
1521              
1522             /* 511-520 */
1523             { 0, 0, 0, 0, 1, 0, 0, 2, 0, -2, 0, 0, 0, 0 },
1524             { 0, 0, 0, 0, 1, 0, 0, -2, 2, 0, 0, 0, 0, 0 },
1525             { 0, 0, 0, 0, 1, 0, -3, 4, 0, 0, 0, 0, 0, 0 },
1526             { 0, 0, 0, 0, 0, 1, 0, -4, 0, 0, 0, 0, 0, 0 },
1527             { 0, 0, 0, 0, 0, 0, 7,-11, 0, 0, 0, 0, 0, -1 },
1528             { 0, 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 0, 1 },
1529             { 0, 0, 0, 0, 0, 0, 6, -4, 0, 0, 0, 0, 0, 1 },
1530             { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, -1 },
1531             { 0, 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 0 },
1532             { 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, 1 },
1533              
1534             /* 521-530 */
1535             { 0, 0, 0, 0, 0, 0, 1, -4, 0, 0, 0, 0, 0, -1 },
1536             { 0, 0, 0, 0, 0, 0, 0, 9,-17, 0, 0, 0, 0, -2 },
1537             { 0, 0, 0, 0, 0, 0, 0, 7, -7, 0, 0, 0, 0, 2 },
1538             { 0, 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 1 },
1539             { 0, 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, -1 },
1540             { 0, 0, 0, 0, 0, 0, 0, 4, -8, 0, 0, 0, 0, 0 },
1541             { 0, 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, -1 },
1542             { 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1 },
1543             { 0, 0, 0, 0, 0, 0, 0, 1, 0, -4, 0, 0, 0, 0 },
1544             { 2, 0, 0, -2, 0, 0, 0, -4, 8, -3, 0, 0, 0, 0 },
1545              
1546             /* 531-540 */
1547             { 2, 0, 0, -2, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0 },
1548             { 1, 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0 },
1549             { 1, 0, 0, 0, 0, 0, 0, -4, 8, -3, 0, 0, 0, 0 },
1550             { 1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0 },
1551             { 1, 0, 0, -2, 0, 0, 17,-16, 0, -2, 0, 0, 0, 0 },
1552             { 1, 0, 0, -1, 0, 0, 0, -2, 2, 0, 0, 0, 0, 0 },
1553             { 0, 0, 2, -2, 0, 0, 0, -2, 0, 2, 0, 0, 0, 0 },
1554             { 0, 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0 },
1555             { 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0 },
1556             { 0, 0, 0, 0, 0, 0, 0, 3, 0, -4, 0, 0, 0, 0 },
1557              
1558             /* 541-550 */
1559             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, -2 },
1560             { 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 2 },
1561             { 2, 0, 0, -2, 0, 0, 0, -4, 4, 0, 0, 0, 0, 0 },
1562             { 2, 0, 0, -2, 0, 0, 0, -2, 0, 2, 2, 0, 0, 0 },
1563             { 1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0 },
1564             { 1, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0 },
1565             { 1, 0, 0, 0, 0, 0, -3, 3, 0, 0, 0, 0, 0, 0 },
1566             { 1, 0, 0, -2, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0 },
1567             { 1, 0, 0, -2, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0 },
1568             { 1, 0, 0, -2, 0, 0, 0, -4, 8, -3, 0, 0, 0, 0 },
1569              
1570             /* 551-560 */
1571             { 1, 0, 0, -2, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0 },
1572             { 0, 0, 2, -2, 0, 0, -4, 4, 0, 0, 0, 0, 0, 0 },
1573             { 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
1574             { 0, 0, 1, -1, 0, 0, 3, -6, 0, 0, 0, 0, 0, 0 },
1575             { 0, 0, 1, -1, 0, 0, 0, -2, 2, 0, 0, 0, 0, 0 },
1576             { 0, 0, 1, -1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0 },
1577             { 0, 0, 1, -1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0 },
1578             { 0, 0, 1, -1, 0, 0, -4, 5, 0, 0, 0, 0, 0, 0 },
1579             { 0, 0, 1, -1, 0, 0, -3, 4, 0, 0, 0, 0, 0, 0 },
1580             { 0, 0, 0, 2, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0 },
1581              
1582             /* 561-570 */
1583             { 0, 0, 0, 0, 0, 0, 8, -9, 0, 0, 0, 0, 0, 0 },
1584             { 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0, 0 },
1585             { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 },
1586             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0 },
1587             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0 },
1588             { 2, 0, -2, -2, -2, 0, 0, -2, 0, 2, 0, 0, 0, 0 },
1589             { 1, 0, 0, 0, 1, 0,-10, 3, 0, 0, 0, 0, 0, 0 },
1590             { 1, 0, 0, 0, -1, 0,-10, 3, 0, 0, 0, 0, 0, 0 },
1591             { 0, 0, 2, 0, 2, 0, 2, -3, 0, 0, 0, 0, 0, 0 },
1592             { 0, 0, 2, 0, 2, 0, 2, -2, 0, 0, 0, 0, 0, 0 },
1593              
1594             /* 571-580 */
1595             { 0, 0, 2, 0, 2, 0, -2, 3, 0, 0, 0, 0, 0, 0 },
1596             { 0, 0, 2, 0, 2, 0, -2, 2, 0, 0, 0, 0, 0, 0 },
1597             { 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
1598             { 0, 0, 0, 0, 1, 0, 0, -1, 0, 2, 0, 0, 0, 0 },
1599             { 2, 0, 2, -2, 2, 0, 0, -2, 0, 3, 0, 0, 0, 0 },
1600             { 2, 0, 1, -3, 1, 0, -6, 7, 0, 0, 0, 0, 0, 0 },
1601             { 2, 0, 0, -2, 0, 0, 2, -5, 0, 0, 0, 0, 0, 0 },
1602             { 2, 0, 0, -2, 0, 0, 0, -2, 0, 5, -5, 0, 0, 0 },
1603             { 2, 0, 0, -2, 0, 0, 0, -2, 0, 1, 5, 0, 0, 0 },
1604             { 2, 0, 0, -2, 0, 0, 0, -2, 0, 0, 5, 0, 0, 0 },
1605              
1606             /* 581-590 */
1607             { 2, 0, 0, -2, 0, 0, 0, -2, 0, 0, 2, 0, 0, 0 },
1608             { 2, 0, 0, -2, 0, 0, -4, 4, 0, 0, 0, 0, 0, 0 },
1609             { 2, 0, -2, 0, -2, 0, 0, 5, -9, 0, 0, 0, 0, 0 },
1610             { 2, 0, -1, -1, 0, 0, 0, -1, 0, 3, 0, 0, 0, 0 },
1611             { 1, 0, 2, 0, 2, 0, 1, -1, 0, 0, 0, 0, 0, 0 },
1612             { 1, 0, 2, 0, 2, 0, 0, 4, -8, 3, 0, 0, 0, 0 },
1613             { 1, 0, 2, 0, 2, 0, 0, -4, 8, -3, 0, 0, 0, 0 },
1614             { 1, 0, 2, 0, 2, 0, -1, 1, 0, 0, 0, 0, 0, 0 },
1615             { 1, 0, 2, -2, 2, 0, -3, 3, 0, 0, 0, 0, 0, 0 },
1616             { 1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0 },
1617              
1618             /* 591-600 */
1619             { 1, 0, 0, 0, 0, 0, 0, -2, 0, 3, 0, 0, 0, 0 },
1620             { 1, 0, 0, -2, 0, 0, 0, 2, 0, -2, 0, 0, 0, 0 },
1621             { 1, 0, -2, -2, -2, 0, 0, 1, 0, -1, 0, 0, 0, 0 },
1622             { 1, 0, -1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
1623             { 1, 0, -1, -1, 0, 0, 0, 8,-15, 0, 0, 0, 0, 0 },
1624             { 0, 0, 2, 2, 2, 0, 0, 2, 0, -2, 0, 0, 0, 0 },
1625             { 0, 0, 2, -2, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0 },
1626             { 0, 0, 2, -2, 1, 0, 0, -2, 0, 1, 0, 0, 0, 0 },
1627             { 0, 0, 2, -2, 1, 0, 0,-10, 15, 0, 0, 0, 0, 0 },
1628             { 0, 0, 2, -2, 0, -1, 0, 2, 0, 0, 0, 0, 0, 0 },
1629              
1630             /* 601-610 */
1631             { 0, 0, 1, -1, 2, 0, 0, -1, 0, 0, -1, 0, 0, 0 },
1632             { 0, 0, 1, -1, 2, 0, -3, 4, 0, 0, 0, 0, 0, 0 },
1633             { 0, 0, 1, -1, 1, 0, -4, 6, 0, 0, 0, 0, 0, 0 },
1634             { 0, 0, 1, -1, 1, 0, -1, 2, 0, 0, 0, 0, 0, 0 },
1635             { 0, 0, 1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
1636             { 0, 0, 1, -1, 0, 0, 0, -1, 0, 0, -2, 0, 0, 0 },
1637             { 0, 0, 1, -1, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0 },
1638             { 0, 0, 1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 },
1639             { 0, 0, 1, -1, -1, 0, -5, 7, 0, 0, 0, 0, 0, 0 },
1640             { 0, 0, 0, 2, 0, 0, 0, 2, 0, -2, 0, 0, 0, 0 },
1641              
1642             /* 611-620 */
1643             { 0, 0, 0, 2, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0 },
1644             { 0, 0, 0, 0, 2, 0, -3, 5, 0, 0, 0, 0, 0, 0 },
1645             { 0, 0, 0, 0, 1, 0, -1, 2, 0, 0, 0, 0, 0, 0 },
1646             { 0, 0, 0, 0, 0, 0, 9,-13, 0, 0, 0, 0, 0, -2 },
1647             { 0, 0, 0, 0, 0, 0, 8,-14, 0, 0, 0, 0, 0, -2 },
1648             { 0, 0, 0, 0, 0, 0, 8,-11, 0, 0, 0, 0, 0, -1 },
1649             { 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0, 0 },
1650             { 0, 0, 0, 0, 0, 0, 6, -8, 0, 0, 0, 0, 0, 0 },
1651             { 0, 0, 0, 0, 0, 0, 6, -7, 0, 0, 0, 0, 0, -1 },
1652             { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, -2 },
1653              
1654             /* 621-630 */
1655             { 0, 0, 0, 0, 0, 0, 5, -6, -4, 0, 0, 0, 0, -2 },
1656             { 0, 0, 0, 0, 0, 0, 5, -4, 0, 0, 0, 0, 0, 2 },
1657             { 0, 0, 0, 0, 0, 0, 4, -8, 0, 0, 0, 0, 0, -2 },
1658             { 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0, 0 },
1659             { 0, 0, 0, 0, 0, 0, 3, -3, 0, 2, 0, 0, 0, 2 },
1660             { 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 0 },
1661             { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 },
1662             { 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -2 },
1663             { 0, 0, 0, 0, 0, 0, 0, 7,-12, 0, 0, 0, 0, -2 },
1664             { 0, 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, -2 },
1665              
1666             /* 631-640 */
1667             { 0, 0, 0, 0, 0, 0, 0, 6, -8, 1, 5, 0, 0, 2 },
1668             { 0, 0, 0, 0, 0, 0, 0, 6, -4, 0, 0, 0, 0, 2 },
1669             { 0, 0, 0, 0, 0, 0, 0, 6,-10, 0, 0, 0, 0, 0 },
1670             { 0, 0, 0, 0, 0, 0, 0, 5, 0, -4, 0, 0, 0, 2 },
1671             { 0, 0, 0, 0, 0, 0, 0, 5, -9, 0, 0, 0, 0, -1 },
1672             { 0, 0, 0, 0, 0, 0, 0, 5, -8, 3, 0, 0, 0, 2 },
1673             { 0, 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, -2 },
1674             { 0, 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0 },
1675             { 0, 0, 0, 0, 0, 0, 0, 5,-16, 4, 5, 0, 0, -2 },
1676             { 0, 0, 0, 0, 0, 0, 0, 5,-13, 0, 0, 0, 0, -2 },
1677              
1678             /* 641-650 */
1679             { 0, 0, 0, 0, 0, 0, 0, 3, 0, -5, 0, 0, 0, -2 },
1680             { 0, 0, 0, 0, 0, 0, 0, 3, -9, 0, 0, 0, 0, -2 },
1681             { 0, 0, 0, 0, 0, 0, 0, 3, -7, 0, 0, 0, 0, -2 },
1682             { 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2 },
1683             { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, -3, 0, 0, 0 },
1684             { 0, 0, 0, 0, 0, 0, 0, 2, -8, 1, 5, 0, 0, -2 },
1685             { 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, -5, 0, 0, 0 },
1686             { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 2 },
1687             { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -3, 0, 0, 0 },
1688             { 0, 0, 0, 0, 0, 0, 0, 1, 0, -3, 5, 0, 0, 0 },
1689              
1690             /* 651-NFPL */
1691             { 0, 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0 },
1692             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -6, 3, 0, -2 },
1693             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0 },
1694             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
1695             { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 },
1696             { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }
1697             };
1698              
1699             /* Number of frequencies: planetary */
1700             static const int NFPL = (int) (sizeof mfapl / sizeof (int) / 14);
1701              
1702             /* Pointers into amplitudes array, one pointer per frequency */
1703             static const int nc[] = {
1704              
1705             /* 1-100 */
1706             1, 21, 37, 51, 65, 79, 91, 103, 115, 127,
1707             139, 151, 163, 172, 184, 196, 207, 219, 231, 240,
1708             252, 261, 273, 285, 297, 309, 318, 327, 339, 351,
1709             363, 372, 384, 396, 405, 415, 423, 435, 444, 452,
1710             460, 467, 474, 482, 490, 498, 506, 513, 521, 528,
1711             536, 543, 551, 559, 566, 574, 582, 590, 597, 605,
1712             613, 620, 628, 636, 644, 651, 658, 666, 674, 680,
1713             687, 695, 702, 710, 717, 725, 732, 739, 746, 753,
1714             760, 767, 774, 782, 790, 798, 805, 812, 819, 826,
1715             833, 840, 846, 853, 860, 867, 874, 881, 888, 895,
1716              
1717             /* 101-200 */
1718             901, 908, 914, 921, 928, 934, 941, 948, 955, 962,
1719             969, 976, 982, 989, 996, 1003, 1010, 1017, 1024, 1031,
1720             1037, 1043, 1050, 1057, 1064, 1071, 1078, 1084, 1091, 1098,
1721             1104, 1112, 1118, 1124, 1131, 1138, 1145, 1151, 1157, 1164,
1722             1171, 1178, 1185, 1192, 1199, 1205, 1212, 1218, 1226, 1232,
1723             1239, 1245, 1252, 1259, 1266, 1272, 1278, 1284, 1292, 1298,
1724             1304, 1310, 1316, 1323, 1329, 1335, 1341, 1347, 1353, 1359,
1725             1365, 1371, 1377, 1383, 1389, 1396, 1402, 1408, 1414, 1420,
1726             1426, 1434, 1440, 1446, 1452, 1459, 1465, 1471, 1477, 1482,
1727             1488, 1493, 1499, 1504, 1509, 1514, 1520, 1527, 1532, 1538,
1728              
1729             /* 201-300 */
1730             1543, 1548, 1553, 1558, 1564, 1569, 1574, 1579, 1584, 1589,
1731             1594, 1596, 1598, 1600, 1602, 1605, 1608, 1610, 1612, 1617,
1732             1619, 1623, 1625, 1627, 1629, 1632, 1634, 1640, 1642, 1644,
1733             1646, 1648, 1650, 1652, 1654, 1658, 1660, 1662, 1664, 1668,
1734             1670, 1672, 1673, 1675, 1679, 1681, 1683, 1684, 1686, 1688,
1735             1690, 1693, 1695, 1697, 1701, 1703, 1705, 1707, 1709, 1711,
1736             1712, 1715, 1717, 1721, 1723, 1725, 1727, 1729, 1731, 1733,
1737             1735, 1737, 1739, 1741, 1743, 1745, 1747, 1749, 1751, 1753,
1738             1755, 1757, 1759, 1761, 1762, 1764, 1766, 1768, 1769, 1771,
1739             1773, 1775, 1777, 1779, 1781, 1783, 1785, 1787, 1788, 1790,
1740              
1741             /* 301-400 */
1742             1792, 1794, 1796, 1798, 1800, 1802, 1804, 1806, 1807, 1809,
1743             1811, 1815, 1817, 1819, 1821, 1823, 1825, 1827, 1829, 1831,
1744             1833, 1835, 1837, 1839, 1840, 1842, 1844, 1848, 1850, 1852,
1745             1854, 1856, 1858, 1859, 1860, 1862, 1864, 1866, 1868, 1869,
1746             1871, 1873, 1875, 1877, 1879, 1881, 1883, 1885, 1887, 1889,
1747             1891, 1892, 1896, 1898, 1900, 1901, 1903, 1905, 1907, 1909,
1748             1910, 1911, 1913, 1915, 1919, 1921, 1923, 1927, 1929, 1931,
1749             1933, 1935, 1937, 1939, 1943, 1945, 1947, 1948, 1949, 1951,
1750             1953, 1955, 1957, 1958, 1960, 1962, 1964, 1966, 1968, 1970,
1751             1971, 1973, 1974, 1975, 1977, 1979, 1980, 1981, 1982, 1984,
1752              
1753             /* 401-500 */
1754             1986, 1988, 1990, 1992, 1994, 1995, 1997, 1999, 2001, 2003,
1755             2005, 2007, 2008, 2009, 2011, 2013, 2015, 2017, 2019, 2021,
1756             2023, 2024, 2025, 2027, 2029, 2031, 2033, 2035, 2037, 2041,
1757             2043, 2045, 2046, 2047, 2049, 2051, 2053, 2055, 2056, 2057,
1758             2059, 2061, 2063, 2065, 2067, 2069, 2070, 2071, 2072, 2074,
1759             2076, 2078, 2080, 2082, 2084, 2086, 2088, 2090, 2092, 2094,
1760             2095, 2096, 2097, 2099, 2101, 2105, 2106, 2107, 2108, 2109,
1761             2110, 2111, 2113, 2115, 2119, 2121, 2123, 2125, 2127, 2129,
1762             2131, 2133, 2135, 2136, 2137, 2139, 2141, 2143, 2145, 2147,
1763             2149, 2151, 2153, 2155, 2157, 2159, 2161, 2163, 2165, 2167,
1764              
1765             /* 501-600 */
1766             2169, 2171, 2173, 2175, 2177, 2179, 2181, 2183, 2185, 2186,
1767             2187, 2188, 2192, 2193, 2195, 2197, 2199, 2201, 2203, 2205,
1768             2207, 2209, 2211, 2213, 2217, 2219, 2221, 2223, 2225, 2227,
1769             2229, 2231, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240,
1770             2241, 2244, 2246, 2248, 2250, 2252, 2254, 2256, 2258, 2260,
1771             2262, 2264, 2266, 2268, 2270, 2272, 2274, 2276, 2278, 2280,
1772             2282, 2284, 2286, 2288, 2290, 2292, 2294, 2296, 2298, 2300,
1773             2302, 2303, 2304, 2305, 2306, 2307, 2309, 2311, 2313, 2315,
1774             2317, 2319, 2321, 2323, 2325, 2327, 2329, 2331, 2333, 2335,
1775             2337, 2341, 2343, 2345, 2347, 2349, 2351, 2352, 2355, 2356,
1776              
1777             /* 601-700 */
1778             2357, 2358, 2359, 2361, 2363, 2364, 2365, 2366, 2367, 2368,
1779             2369, 2370, 2371, 2372, 2373, 2374, 2376, 2378, 2380, 2382,
1780             2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393,
1781             2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403,
1782             2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413,
1783             2414, 2415, 2417, 2418, 2430, 2438, 2445, 2453, 2460, 2468,
1784             2474, 2480, 2488, 2496, 2504, 2512, 2520, 2527, 2535, 2543,
1785             2550, 2558, 2566, 2574, 2580, 2588, 2596, 2604, 2612, 2619,
1786             2627, 2634, 2642, 2648, 2656, 2664, 2671, 2679, 2685, 2693,
1787             2701, 2709, 2717, 2725, 2733, 2739, 2747, 2753, 2761, 2769,
1788              
1789             /* 701-800 */
1790             2777, 2785, 2793, 2801, 2809, 2817, 2825, 2833, 2841, 2848,
1791             2856, 2864, 2872, 2878, 2884, 2892, 2898, 2906, 2914, 2922,
1792             2930, 2938, 2944, 2952, 2958, 2966, 2974, 2982, 2988, 2996,
1793             3001, 3009, 3017, 3025, 3032, 3039, 3045, 3052, 3059, 3067,
1794             3069, 3076, 3083, 3090, 3098, 3105, 3109, 3111, 3113, 3120,
1795             3124, 3128, 3132, 3136, 3140, 3144, 3146, 3150, 3158, 3161,
1796             3165, 3166, 3168, 3172, 3176, 3180, 3182, 3185, 3189, 3193,
1797             3194, 3197, 3200, 3204, 3208, 3212, 3216, 3219, 3221, 3222,
1798             3226, 3230, 3234, 3238, 3242, 3243, 3247, 3251, 3254, 3258,
1799             3262, 3266, 3270, 3274, 3275, 3279, 3283, 3287, 3289, 3293,
1800              
1801             /* 801-900 */
1802             3296, 3300, 3303, 3307, 3311, 3315, 3319, 3321, 3324, 3327,
1803             3330, 3334, 3338, 3340, 3342, 3346, 3350, 3354, 3358, 3361,
1804             3365, 3369, 3373, 3377, 3381, 3385, 3389, 3393, 3394, 3398,
1805             3402, 3406, 3410, 3413, 3417, 3421, 3425, 3429, 3433, 3435,
1806             3439, 3443, 3446, 3450, 3453, 3457, 3458, 3461, 3464, 3468,
1807             3472, 3476, 3478, 3481, 3485, 3489, 3493, 3497, 3501, 3505,
1808             3507, 3511, 3514, 3517, 3521, 3524, 3525, 3527, 3529, 3533,
1809             3536, 3540, 3541, 3545, 3548, 3551, 3555, 3559, 3563, 3567,
1810             3569, 3570, 3574, 3576, 3578, 3582, 3586, 3590, 3593, 3596,
1811             3600, 3604, 3608, 3612, 3616, 3620, 3623, 3626, 3630, 3632,
1812              
1813             /* 901-1000 */
1814             3636, 3640, 3643, 3646, 3648, 3652, 3656, 3660, 3664, 3667,
1815             3669, 3671, 3675, 3679, 3683, 3687, 3689, 3693, 3694, 3695,
1816             3699, 3703, 3705, 3707, 3710, 3713, 3717, 3721, 3725, 3729,
1817             3733, 3736, 3740, 3744, 3748, 3752, 3754, 3757, 3759, 3763,
1818             3767, 3770, 3773, 3777, 3779, 3783, 3786, 3790, 3794, 3798,
1819             3801, 3805, 3809, 3813, 3817, 3821, 3825, 3827, 3831, 3835,
1820             3836, 3837, 3840, 3844, 3848, 3852, 3856, 3859, 3863, 3867,
1821             3869, 3871, 3875, 3879, 3883, 3887, 3890, 3894, 3898, 3901,
1822             3905, 3909, 3913, 3917, 3921, 3922, 3923, 3924, 3926, 3930,
1823             3932, 3936, 3938, 3940, 3944, 3948, 3952, 3956, 3959, 3963,
1824              
1825             /* 1001-1100 */
1826             3965, 3969, 3973, 3977, 3979, 3981, 3982, 3986, 3989, 3993,
1827             3997, 4001, 4004, 4006, 4009, 4012, 4016, 4020, 4024, 4026,
1828             4028, 4032, 4036, 4040, 4044, 4046, 4050, 4054, 4058, 4060,
1829             4062, 4063, 4064, 4068, 4071, 4075, 4077, 4081, 4083, 4087,
1830             4089, 4091, 4095, 4099, 4101, 4103, 4105, 4107, 4111, 4115,
1831             4119, 4123, 4127, 4129, 4131, 4135, 4139, 4141, 4143, 4145,
1832             4149, 4153, 4157, 4161, 4165, 4169, 4173, 4177, 4180, 4183,
1833             4187, 4191, 4195, 4198, 4201, 4205, 4209, 4212, 4213, 4216,
1834             4217, 4221, 4223, 4226, 4230, 4234, 4236, 4240, 4244, 4248,
1835             4252, 4256, 4258, 4262, 4264, 4266, 4268, 4270, 4272, 4276,
1836              
1837             /* 1101-1200 */
1838             4279, 4283, 4285, 4287, 4289, 4293, 4295, 4299, 4300, 4301,
1839             4305, 4309, 4313, 4317, 4319, 4323, 4325, 4329, 4331, 4333,
1840             4335, 4337, 4341, 4345, 4349, 4351, 4353, 4357, 4361, 4365,
1841             4367, 4369, 4373, 4377, 4381, 4383, 4387, 4389, 4391, 4395,
1842             4399, 4403, 4407, 4411, 4413, 4414, 4415, 4418, 4419, 4421,
1843             4423, 4427, 4429, 4431, 4433, 4435, 4437, 4439, 4443, 4446,
1844             4450, 4452, 4456, 4458, 4460, 4462, 4466, 4469, 4473, 4477,
1845             4481, 4483, 4487, 4489, 4491, 4493, 4497, 4499, 4501, 4504,
1846             4506, 4510, 4513, 4514, 4515, 4518, 4521, 4522, 4525, 4526,
1847             4527, 4530, 4533, 4534, 4537, 4541, 4542, 4543, 4544, 4545,
1848              
1849             /* 1201-1300 */
1850             4546, 4547, 4550, 4553, 4554, 4555, 4558, 4561, 4564, 4567,
1851             4568, 4571, 4574, 4575, 4578, 4581, 4582, 4585, 4586, 4588,
1852             4590, 4592, 4596, 4598, 4602, 4604, 4608, 4612, 4613, 4616,
1853             4619, 4622, 4623, 4624, 4625, 4626, 4629, 4632, 4633, 4636,
1854             4639, 4640, 4641, 4642, 4643, 4644, 4645, 4648, 4649, 4650,
1855             4651, 4652, 4653, 4656, 4657, 4660, 4661, 4664, 4667, 4670,
1856             4671, 4674, 4675, 4676, 4677, 4678, 4681, 4682, 4683, 4684,
1857             4687, 4688, 4689, 4692, 4693, 4696, 4697, 4700, 4701, 4702,
1858             4703, 4704, 4707, 4708, 4711, 4712, 4715, 4716, 4717, 4718,
1859             4719, 4720, 4721, 4722, 4723, 4726, 4729, 4730, 4733, 4736,
1860              
1861             /* 1301-(NFLS+NFPL) */
1862             4737, 4740, 4741, 4742, 4745, 4746, 4749, 4752, 4753
1863             };
1864              
1865             /* Amplitude coefficients (microarcsec); indexed using the nc array. */
1866             static const double a[] = {
1867              
1868             /* 1-105 */
1869             -6844318.44, 9205236.26,1328.67,1538.18, 205833.11,
1870             153041.79, -3309.73, 853.32,2037.98, -2301.27,
1871             81.46, 120.56, -20.39, -15.22, 1.73, -1.61, -0.10, 0.11,
1872             -0.02, -0.02, -523908.04, 573033.42,-544.75,-458.66,
1873             12814.01, 11714.49, 198.97,-290.91, 155.74,-143.27,
1874             -2.75, -1.03, -1.27, -1.16, 0.00, -0.01, -90552.22,
1875             97846.69, 111.23, 137.41,2187.91,2024.68, 41.44, -51.26,
1876             26.92, -24.46, -0.46, -0.28, -0.22, -0.20, 82168.76,
1877             -89618.24, -27.64, -29.05, -2004.36, -1837.32,
1878             -36.07, 48.00, -24.43, 22.41, 0.47, 0.24, 0.20, 0.18,
1879             58707.02,7387.02, 470.05,-192.40, 164.33, -1312.21,
1880             -179.73, -28.93, -17.36, -1.83, -0.50, 3.57, 0.00, 0.13,
1881             -20557.78, 22438.42, -20.84, -17.40, 501.82, 459.68,
1882             59.20, -67.30, 6.08, -5.61, -1.36, -1.19, 28288.28,
1883             -674.99, -34.69, 35.80, -15.07,-632.54, -11.19, 0.78, -8.41,
1884             0.17, 0.01, 0.07, -15406.85, 20069.50, 15.12,
1885              
1886             /* 106-219 */
1887             31.80, 448.76, 344.50, -5.77, 1.41, 4.59, -5.02, 0.17,
1888             0.24, -11991.74, 12902.66, 32.46, 36.70, 288.49,
1889             268.14, 5.70, -7.06, 3.57, -3.23, -0.06, -0.04,
1890             -8584.95, -9592.72, 4.42, -13.20,-214.50, 192.06,
1891             23.87, 29.83, 2.54, 2.40, 0.60, -0.48,5095.50,
1892             -6918.22, 7.19, 3.92,-154.91,-113.94, 2.86, -1.04,
1893             -1.52, 1.73, -0.07, -0.10, -4910.93, -5331.13,
1894             0.76, 0.40,-119.21, 109.81, 2.16, 3.20, 1.46, 1.33,
1895             0.04, -0.02, -6245.02,-123.48, -6.68, -8.20, -2.76,
1896             139.64, 2.71, 0.15, 1.86,2511.85, -3323.89, 1.07,
1897             -0.90, -74.33, -56.17, 1.16, -0.01, -0.75, 0.83, -0.02,
1898             -0.04,2307.58,3143.98, -7.52, 7.50, 70.31, -51.60, 1.46,
1899             0.16, -0.69, -0.79, 0.02, -0.05,2372.58,2554.51, 5.93,
1900             -6.60, 57.12, -53.05, -0.96, -1.24, -0.71, -0.64, -0.01,
1901             -2053.16,2636.13, 5.13, 7.80, 58.94, 45.91, -0.42,
1902             -0.12, 0.61, -0.66, 0.02, 0.03, -1825.49,
1903              
1904             /* 220-339 */
1905             -2423.59, 1.23, -2.00, -54.19, 40.82, -1.07, -1.02,
1906             0.54, 0.61, -0.04, 0.04,2521.07,-122.28, -5.97, 2.90,
1907             -2.73, -56.37, -0.82, 0.13, -0.75, -1534.09,1645.01,
1908             6.29, 6.80, 36.78, 34.30, 0.92, -1.25, 0.46, -0.41,
1909             -0.02, -0.01,1898.27, 47.70, -0.72, 2.50, 1.07, -42.45,
1910             -0.94, 0.02, -0.56, -1292.02, -1387.00, 0.00,
1911             0.00, -31.01, 28.89, 0.68, 0.00, 0.38, 0.35, -0.01,
1912             -0.01, -1234.96,1323.81, 5.21, 5.90, 29.60, 27.61,
1913             0.74, -1.22, 0.37, -0.33, -0.02, -0.01,1137.48,
1914             -1233.89, -0.04, -0.30, -27.59, -25.43, -0.61, 1.00,
1915             -0.34, 0.31, 0.01, 0.01,-813.13, -1075.60, 0.40,
1916             0.30, -24.05, 18.18, -0.40, -0.01, 0.24, 0.27, -0.01,
1917             0.01,1163.22, -60.90, -2.94, 1.30, -1.36, -26.01, -0.58,
1918             0.07, -0.35,1029.70, -55.55, -2.63, 1.10, -1.25, -23.02,
1919             -0.52, 0.06, -0.31,-556.26, 852.85, 3.16, -4.48, 19.06,
1920             12.44, -0.81, -0.27, 0.17, -0.21, 0.00, 0.02,-603.52,
1921              
1922             /* 340-467 */
1923             -800.34, 0.44, 0.10, -17.90, 13.49, -0.08, -0.01, 0.18,
1924             0.20, -0.01, 0.01,-628.24, 684.99, -0.64, -0.50, 15.32,
1925             14.05, 3.18, -4.19, 0.19, -0.17, -0.09, -0.07,-866.48,
1926             -16.26, 0.52, -1.30, -0.36, 19.37, 0.43, -0.01, 0.26,
1927             -512.37, 695.54, -1.47, -1.40, 15.55, 11.46, -0.16, 0.03,
1928             0.15, -0.17, 0.01, 0.01, 506.65, 643.75, 2.54, -2.62,
1929             14.40, -11.33, -0.77, -0.06, -0.15, -0.16, 0.00, 0.01,
1930             664.57, 16.81, -0.40, 1.00, 0.38, -14.86, -3.71, -0.09,
1931             -0.20, 405.91, 522.11, 0.99, -1.50, 11.67, -9.08, -0.25,
1932             -0.02, -0.12, -0.13,-305.78, 326.60, 1.75, 1.90, 7.30,
1933             6.84, 0.20, -0.04, 300.99,-325.03, -0.44, -0.50, -7.27,
1934             -6.73, -1.01, 0.01, 0.00, 0.08, 0.00, 0.02, 438.51,
1935             10.47, -0.56, -0.20, 0.24, -9.81, -0.24, 0.01, -0.13,
1936             -264.02, 335.24, 0.99, 1.40, 7.49, 5.90, -0.27, -0.02,
1937             284.09, 307.03, 0.32, -0.40, 6.87, -6.35, -0.99, -0.01,
1938             -250.54, 327.11, 0.08, 0.40, 7.31, 5.60, -0.30, 230.72,
1939              
1940             /* 468-595 */
1941             -304.46, 0.08, -0.10, -6.81, -5.16, 0.27, 229.78, 304.17,
1942             -0.60, 0.50, 6.80, -5.14, 0.33, 0.01, 256.30,-276.81,
1943             -0.28, -0.40, -6.19, -5.73, -0.14, 0.01,-212.82, 269.45,
1944             0.84, 1.20, 6.02, 4.76, 0.14, -0.02, 196.64, 272.05,
1945             -0.84, 0.90, 6.08, -4.40, 0.35, 0.02, 188.95, 272.22,
1946             -0.12, 0.30, 6.09, -4.22, 0.34,-292.37, -5.10, -0.32,
1947             -0.40, -0.11, 6.54, 0.14, 0.01, 161.79,-220.67, 0.24,
1948             0.10, -4.93, -3.62, -0.08, 261.54, -19.94, -0.95, 0.20,
1949             -0.45, -5.85, -0.13, 0.02, 142.16,-190.79, 0.20, 0.10,
1950             -4.27, -3.18, -0.07, 187.95, -4.11, -0.24, 0.30, -0.09,
1951             -4.20, -0.09, 0.01, 0.00, 0.00, -79.08, 167.90, 0.04,
1952             0.00, 3.75, 1.77, 121.98, 131.04, -0.08, 0.10, 2.93,
1953             -2.73, -0.06,-172.95, -8.11, -0.40, -0.20, -0.18, 3.87,
1954             0.09, 0.01,-160.15, -55.30, -14.04, 13.90, -1.23, 3.58,
1955             0.40, 0.31,-115.40, 123.20, 0.60, 0.70, 2.75, 2.58,
1956             0.08, -0.01,-168.26, -2.00, 0.20, -0.20, -0.04, 3.76,
1957              
1958             /* 596-723 */
1959             0.08,-114.49, 123.20, 0.32, 0.40, 2.75, 2.56, 0.07,
1960             -0.01, 112.14, 120.70, 0.28, -0.30, 2.70, -2.51, -0.07,
1961             -0.01, 161.34, 4.03, 0.20, 0.20, 0.09, -3.61, -0.08,
1962             91.31, 126.64, -0.40, 0.40, 2.83, -2.04, -0.04, 0.01,
1963             105.29, 112.90, 0.44, -0.50, 2.52, -2.35, -0.07, -0.01,
1964             98.69,-106.20, -0.28, -0.30, -2.37, -2.21, -0.06, 0.01,
1965             86.74,-112.94, -0.08, -0.20, -2.53, -1.94, -0.05,-134.81,
1966             3.51, 0.20, -0.20, 0.08, 3.01, 0.07, 79.03, 107.31,
1967             -0.24, 0.20, 2.40, -1.77, -0.04, 0.01, 132.81, -10.77,
1968             -0.52, 0.10, -0.24, -2.97, -0.07, 0.01,-130.31, -0.90,
1969             0.04, 0.00, 0.00, 2.91, -78.56, 85.32, 0.00, 0.00,
1970             1.91, 1.76, 0.04, 0.00, 0.00, -41.53, 89.10, 0.02,
1971             0.00, 1.99, 0.93, 66.03, -71.00, -0.20, -0.20, -1.59,
1972             -1.48, -0.04, 60.50, 64.70, 0.36, -0.40, 1.45, -1.35,
1973             -0.04, -0.01, -52.27, -70.01, 0.00, 0.00, -1.57, 1.17,
1974             0.03, -52.95, 66.29, 0.32, 0.40, 1.48, 1.18, 0.04,
1975              
1976             /* 724-851 */
1977             -0.01, 51.02, 67.25, 0.00, 0.00, 1.50, -1.14, -0.03,
1978             -55.66, -60.92, 0.16, -0.20, -1.36, 1.24, 0.03, -54.81,
1979             -59.20, -0.08, 0.20, -1.32, 1.23, 0.03, 51.32, -55.60,
1980             0.00, 0.00, -1.24, -1.15, -0.03, 48.29, 51.80, 0.20,
1981             -0.20, 1.16, -1.08, -0.03, -45.59, -49.00, -0.12, 0.10,
1982             -1.10, 1.02, 0.03, 40.54, -52.69, -0.04, -0.10, -1.18,
1983             -0.91, -0.02, -40.58, -49.51, -1.00, 1.00, -1.11, 0.91,
1984             0.04, 0.02, -43.76, 46.50, 0.36, 0.40, 1.04, 0.98,
1985             0.03, -0.01, 62.65, -5.00, -0.24, 0.00, -0.11, -1.40,
1986             -0.03, 0.01, -38.57, 49.59, 0.08, 0.10, 1.11, 0.86,
1987             0.02, -33.22, -44.04, 0.08, -0.10, -0.98, 0.74, 0.02,
1988             37.15, -39.90, -0.12, -0.10, -0.89, -0.83, -0.02, 36.68,
1989             -39.50, -0.04, -0.10, -0.88, -0.82, -0.02, -53.22, -3.91,
1990             -0.20, 0.00, -0.09, 1.19, 0.03, 32.43, -42.19, -0.04,
1991             -0.10, -0.94, -0.73, -0.02, -51.00, -2.30, -0.12, -0.10,
1992             0.00, 1.14, -29.53, -39.11, 0.04, 0.00, -0.87, 0.66,
1993              
1994             /* 852-979 */
1995             0.02, 28.50, -38.92, -0.08, -0.10, -0.87, -0.64, -0.02,
1996             26.54, 36.95, -0.12, 0.10, 0.83, -0.59, -0.01, 26.54,
1997             34.59, 0.04, -0.10, 0.77, -0.59, -0.02, 28.35, -32.55,
1998             -0.16, 0.20, -0.73, -0.63, -0.01, -28.00, 30.40, 0.00,
1999             0.00, 0.68, 0.63, 0.01, -27.61, 29.40, 0.20, 0.20,
2000             0.66, 0.62, 0.02, 40.33, 0.40, -0.04, 0.10, 0.00,
2001             -0.90, -23.28, 31.61, -0.08, -0.10, 0.71, 0.52, 0.01,
2002             37.75, 0.80, 0.04, 0.10, 0.00, -0.84, 23.66, 25.80,
2003             0.00, 0.00, 0.58, -0.53, -0.01, 21.01, -27.91, 0.00,
2004             0.00, -0.62, -0.47, -0.01, -34.81, 2.89, 0.04, 0.00,
2005             0.00, 0.78, -23.49, -25.31, 0.00, 0.00, -0.57, 0.53,
2006             0.01, -23.47, 25.20, 0.16, 0.20, 0.56, 0.52, 0.02,
2007             19.58, 27.50, -0.12, 0.10, 0.62, -0.44, -0.01, -22.67,
2008             -24.40, -0.08, 0.10, -0.55, 0.51, 0.01, -19.97, 25.00,
2009             0.12, 0.20, 0.56, 0.45, 0.01, 21.28, -22.80, -0.08,
2010             -0.10, -0.51, -0.48, -0.01, -30.47, 0.91, 0.04, 0.00,
2011              
2012             /* 980-1107 */
2013             0.00, 0.68, 18.58, 24.00, 0.04, -0.10, 0.54, -0.42,
2014             -0.01, -18.02, 24.40, -0.04, -0.10, 0.55, 0.40, 0.01,
2015             17.74, 22.50, 0.08, -0.10, 0.50, -0.40, -0.01, -19.41,
2016             20.70, 0.08, 0.10, 0.46, 0.43, 0.01, -18.64, 20.11,
2017             0.00, 0.00, 0.45, 0.42, 0.01, -16.75, 21.60, 0.04,
2018             0.10, 0.48, 0.37, 0.01, -18.42, -20.00, 0.00, 0.00,
2019             -0.45, 0.41, 0.01, -26.77, 1.41, 0.08, 0.00, 0.00,
2020             0.60, -26.17, -0.19, 0.00, 0.00, 0.00, 0.59, -15.52,
2021             20.51, 0.00, 0.00, 0.46, 0.35, 0.01, -25.42, -1.91,
2022             -0.08, 0.00, -0.04, 0.57, 0.45, -17.42, 18.10, 0.00,
2023             0.00, 0.40, 0.39, 0.01, 16.39, -17.60, -0.08, -0.10,
2024             -0.39, -0.37, -0.01, -14.37, 18.91, 0.00, 0.00, 0.42,
2025             0.32, 0.01, 23.39, -2.40, -0.12, 0.00, 0.00, -0.52,
2026             14.32, -18.50, -0.04, -0.10, -0.41, -0.32, -0.01, 15.69,
2027             17.08, 0.00, 0.00, 0.38, -0.35, -0.01, -22.99, 0.50,
2028             0.04, 0.00, 0.00, 0.51, 0.00, 0.00, 14.47, -17.60,
2029              
2030             /* 1108-1235 */
2031             -0.01, 0.00, -0.39, -0.32, -13.33, 18.40, -0.04, -0.10,
2032             0.41, 0.30, 22.47, -0.60, -0.04, 0.00, 0.00, -0.50,
2033             -12.78, -17.41, 0.04, 0.00, -0.39, 0.29, 0.01, -14.10,
2034             -15.31, 0.04, 0.00, -0.34, 0.32, 0.01, 11.98, 16.21,
2035             -0.04, 0.00, 0.36, -0.27, -0.01, 19.65, -1.90, -0.08,
2036             0.00, 0.00, -0.44, 19.61, -1.50, -0.08, 0.00, 0.00,
2037             -0.44, 13.41, -14.30, -0.04, -0.10, -0.32, -0.30, -0.01,
2038             -13.29, 14.40, 0.00, 0.00, 0.32, 0.30, 0.01, 11.14,
2039             -14.40, -0.04, 0.00, -0.32, -0.25, -0.01, 12.24, -13.38,
2040             0.04, 0.00, -0.30, -0.27, -0.01, 10.07, -13.81, 0.04,
2041             0.00, -0.31, -0.23, -0.01, 10.46, 13.10, 0.08, -0.10,
2042             0.29, -0.23, -0.01, 16.55, -1.71, -0.08, 0.00, 0.00,
2043             -0.37, 9.75, -12.80, 0.00, 0.00, -0.29, -0.22, -0.01,
2044             9.11, 12.80, 0.00, 0.00, 0.29, -0.20, 0.00, 0.00,
2045             -6.44, -13.80, 0.00, 0.00, -0.31, 0.14, -9.19, -12.00,
2046             0.00, 0.00, -0.27, 0.21, -10.30, 10.90, 0.08, 0.10,
2047              
2048             /* 1236-1363 */
2049             0.24, 0.23, 0.01, 14.92, -0.80, -0.04, 0.00, 0.00,
2050             -0.33, 10.02, -10.80, 0.00, 0.00, -0.24, -0.22, -0.01,
2051             -9.75, 10.40, 0.04, 0.00, 0.23, 0.22, 0.01, 9.67,
2052             -10.40, -0.04, 0.00, -0.23, -0.22, -0.01, -8.28, -11.20,
2053             0.04, 0.00, -0.25, 0.19, 13.32, -1.41, -0.08, 0.00,
2054             0.00, -0.30, 8.27, 10.50, 0.04, 0.00, 0.23, -0.19,
2055             0.00, 0.00, 13.13, 0.00, 0.00, 0.00, 0.00, -0.29,
2056             -12.93, 0.70, 0.04, 0.00, 0.00, 0.29, 7.91, -10.20,
2057             0.00, 0.00, -0.23, -0.18, -7.84, -10.00, -0.04, 0.00,
2058             -0.22, 0.18, 7.44, 9.60, 0.00, 0.00, 0.21, -0.17,
2059             -7.64, 9.40, 0.08, 0.10, 0.21, 0.17, 0.01, -11.38,
2060             0.60, 0.04, 0.00, 0.00, 0.25, -7.48, 8.30, 0.00,
2061             0.00, 0.19, 0.17, -10.98, -0.20, 0.00, 0.00, 0.00,
2062             0.25, 10.98, 0.20, 0.00, 0.00, 0.00, -0.25, 7.40,
2063             -7.90, -0.04, 0.00, -0.18, -0.17, -6.09, 8.40, -0.04,
2064             0.00, 0.19, 0.14, -6.94, -7.49, 0.00, 0.00, -0.17,
2065              
2066             /* 1364-1491 */
2067             0.16, 6.92, 7.50, 0.04, 0.00, 0.17, -0.15, 6.20,
2068             8.09, 0.00, 0.00, 0.18, -0.14, -6.12, 7.80, 0.04,
2069             0.00, 0.17, 0.14, 5.85, -7.50, 0.00, 0.00, -0.17,
2070             -0.13, -6.48, 6.90, 0.08, 0.10, 0.15, 0.14, 0.01,
2071             6.32, 6.90, 0.00, 0.00, 0.15, -0.14, 5.61, -7.20,
2072             0.00, 0.00, -0.16, -0.13, 9.07, 0.00, 0.00, 0.00,
2073             0.00, -0.20, 5.25, 6.90, 0.00, 0.00, 0.15, -0.12,
2074             -8.47, -0.40, 0.00, 0.00, 0.00, 0.19, 6.32, -5.39,
2075             -1.11, 1.10, -0.12, -0.14, 0.02, 0.02, 5.73, -6.10,
2076             -0.04, 0.00, -0.14, -0.13, 4.70, 6.60, -0.04, 0.00,
2077             0.15, -0.11, -4.90, -6.40, 0.00, 0.00, -0.14, 0.11,
2078             -5.33, 5.60, 0.04, 0.10, 0.13, 0.12, 0.01, -4.81,
2079             6.00, 0.04, 0.00, 0.13, 0.11, 5.13, 5.50, 0.04,
2080             0.00, 0.12, -0.11, 4.50, 5.90, 0.00, 0.00, 0.13,
2081             -0.10, -4.22, 6.10, 0.00, 0.00, 0.14, -4.53, 5.70,
2082             0.00, 0.00, 0.13, 0.10, 4.18, 5.70, 0.00, 0.00,
2083              
2084             /* 1492-1619 */
2085             0.13, -4.75, -5.19, 0.00, 0.00, -0.12, 0.11, -4.06,
2086             5.60, 0.00, 0.00, 0.13, -3.98, 5.60, -0.04, 0.00,
2087             0.13, 4.02, -5.40, 0.00, 0.00, -0.12, 4.49, -4.90,
2088             -0.04, 0.00, -0.11, -0.10, -3.62, -5.40, -0.16, 0.20,
2089             -0.12, 0.00, 0.01, 4.38, 4.80, 0.00, 0.00, 0.11,
2090             -6.40, -0.10, 0.00, 0.00, 0.00, 0.14, -3.98, 5.00,
2091             0.04, 0.00, 0.11, -3.82, -5.00, 0.00, 0.00, -0.11,
2092             -3.71, 5.07, 0.00, 0.00, 0.11, 4.14, 4.40, 0.00,
2093             0.00, 0.10, -6.01, -0.50, -0.04, 0.00, 0.00, 0.13,
2094             -4.04, 4.39, 0.00, 0.00, 0.10, 3.45, -4.72, 0.00,
2095             0.00, -0.11, 3.31, 4.71, 0.00, 0.00, 0.11, 3.26,
2096             -4.50, 0.00, 0.00, -0.10, -3.26, -4.50, 0.00, 0.00,
2097             -0.10, -3.34, -4.40, 0.00, 0.00, -0.10, -3.74, -4.00,
2098             3.70, 4.00, 3.34, -4.30, 3.30, -4.30, -3.66, 3.90,
2099             0.04, 3.66, 3.90, 0.04, -3.62, -3.90, -3.61, 3.90,
2100             -0.20, 5.30, 0.00, 0.00, 0.12, 3.06, 4.30, 3.30,
2101              
2102             /* 1620-1747 */
2103             4.00, 0.40, 0.20, 3.10, 4.10, -3.06, 3.90, -3.30,
2104             -3.60, -3.30, 3.36, 0.01, 3.14, 3.40, -4.57, -0.20,
2105             0.00, 0.00, 0.00, 0.10, -2.70, -3.60, 2.94, -3.20,
2106             -2.90, 3.20, 2.47, -3.40, 2.55, -3.30, 2.80, -3.08,
2107             2.51, 3.30, -4.10, 0.30, -0.12, -0.10, 4.10, 0.20,
2108             -2.74, 3.00, 2.46, 3.23, -3.66, 1.20, -0.20, 0.20,
2109             3.74, -0.40, -2.51, -2.80, -3.74, 2.27, -2.90, 0.00,
2110             0.00, -2.50, 2.70, -2.51, 2.60, -3.50, 0.20, 3.38,
2111             -2.22, -2.50, 3.26, -0.40, 1.95, -2.60, 3.22, -0.40,
2112             -0.04, -1.79, -2.60, 1.91, 2.50, 0.74, 3.05, -0.04,
2113             0.08, 2.11, -2.30, -2.11, 2.20, -1.87, -2.40, 2.03,
2114             -2.20, -2.03, 2.20, 2.98, 0.00, 0.00, 2.98, -1.71,
2115             2.40, 2.94, -0.10, -0.12, 0.10, 1.67, 2.40, -1.79,
2116             2.30, -1.79, 2.20, -1.67, 2.20, 1.79, -2.00, 1.87,
2117             -1.90, 1.63, -2.10, -1.59, 2.10, 1.55, -2.10, -1.55,
2118             2.10, -2.59, -0.20, -1.75, -1.90, -1.75, 1.90, -1.83,
2119              
2120             /* 1748-1875 */
2121             -1.80, 1.51, 2.00, -1.51, -2.00, 1.71, 1.80, 1.31,
2122             2.10, -1.43, 2.00, 1.43, 2.00, -2.43, -1.51, 1.90,
2123             -1.47, 1.90, 2.39, 0.20, -2.39, 1.39, 1.90, 1.39,
2124             -1.80, 1.47, -1.60, 1.47, -1.60, 1.43, -1.50, -1.31,
2125             1.60, 1.27, -1.60, -1.27, 1.60, 1.27, -1.60, 2.03,
2126             1.35, 1.50, -1.39, -1.40, 1.95, -0.20, -1.27, 1.49,
2127             1.19, 1.50, 1.27, 1.40, 1.15, 1.50, 1.87, -0.10,
2128             -1.12, -1.50, 1.87, -1.11, -1.50, -1.11, -1.50, 0.00,
2129             0.00, 1.19, 1.40, 1.27, -1.30, -1.27, -1.30, -1.15,
2130             1.40, -1.23, 1.30, -1.23, -1.30, 1.22, -1.29, 1.07,
2131             -1.40, 1.75, -0.20, -1.03, -1.40, -1.07, 1.20, -1.03,
2132             1.15, 1.07, 1.10, 1.51, -1.03, 1.10, 1.03, -1.10,
2133             0.00, 0.00, -1.03, -1.10, 0.91, -1.20, -0.88, -1.20,
2134             -0.88, 1.20, -0.95, 1.10, -0.95, -1.10, 1.43, -1.39,
2135             0.95, -1.00, -0.95, 1.00, -0.80, 1.10, 0.91, -1.00,
2136             -1.35, 0.88, 1.00, -0.83, 1.00, -0.91, 0.90, 0.91,
2137              
2138             /* 1876-2003 */
2139             0.90, 0.88, -0.90, -0.76, -1.00, -0.76, 1.00, 0.76,
2140             1.00, -0.72, 1.00, 0.84, -0.90, 0.84, 0.90, 1.23,
2141             0.00, 0.00, -0.52, -1.10, -0.68, 1.00, 1.19, -0.20,
2142             1.19, 0.76, 0.90, 1.15, -0.10, 1.15, -0.10, 0.72,
2143             -0.90, -1.15, -1.15, 0.68, 0.90, -0.68, 0.90, -1.11,
2144             0.00, 0.00, 0.20, 0.79, 0.80, -1.11, -0.10, 0.00,
2145             0.00, -0.48, -1.00, -0.76, -0.80, -0.72, -0.80, -1.07,
2146             -0.10, 0.64, 0.80, -0.64, -0.80, 0.64, 0.80, 0.40,
2147             0.60, 0.52, -0.50, -0.60, -0.80, -0.71, 0.70, -0.99,
2148             0.99, 0.56, 0.80, -0.56, 0.80, 0.68, -0.70, 0.68,
2149             0.70, -0.95, -0.64, 0.70, 0.64, 0.70, -0.60, 0.70,
2150             -0.60, -0.70, -0.91, -0.10, -0.51, 0.76, -0.91, -0.56,
2151             0.70, 0.88, 0.88, -0.63, -0.60, 0.55, -0.60, -0.80,
2152             0.80, -0.80, -0.52, 0.60, 0.52, 0.60, 0.52, -0.60,
2153             -0.48, 0.60, 0.48, 0.60, 0.48, 0.60, -0.76, 0.44,
2154             -0.60, 0.52, -0.50, -0.52, 0.50, 0.40, 0.60, -0.40,
2155              
2156             /* 2004-2131 */
2157             -0.60, 0.40, -0.60, 0.72, -0.72, -0.51, -0.50, -0.48,
2158             0.50, 0.48, -0.50, -0.48, 0.50, -0.48, 0.50, 0.48,
2159             -0.50, -0.48, -0.50, -0.68, -0.68, 0.44, 0.50, -0.64,
2160             -0.10, -0.64, -0.10, -0.40, 0.50, 0.40, 0.50, 0.40,
2161             0.50, 0.00, 0.00, -0.40, -0.50, -0.36, -0.50, 0.36,
2162             -0.50, 0.60, -0.60, 0.40, -0.40, 0.40, 0.40, -0.40,
2163             0.40, -0.40, 0.40, -0.56, -0.56, 0.36, -0.40, -0.36,
2164             0.40, 0.36, -0.40, -0.36, -0.40, 0.36, 0.40, 0.36,
2165             0.40, -0.52, 0.52, 0.52, 0.32, 0.40, -0.32, 0.40,
2166             -0.32, 0.40, -0.32, 0.40, 0.32, -0.40, -0.32, -0.40,
2167             0.32, -0.40, 0.28, -0.40, -0.28, 0.40, 0.28, -0.40,
2168             0.28, 0.40, 0.48, -0.48, 0.48, 0.36, -0.30, -0.36,
2169             -0.30, 0.00, 0.00, 0.20, 0.40, -0.44, 0.44, -0.44,
2170             -0.44, -0.44, -0.44, 0.32, -0.30, 0.32, 0.30, 0.24,
2171             0.30, -0.12, -0.10, -0.28, 0.30, 0.28, 0.30, 0.28,
2172             0.30, 0.28, -0.30, 0.28, -0.30, 0.28, -0.30, 0.28,
2173              
2174             /* 2132-2259 */
2175             0.30, -0.28, 0.30, 0.40, 0.40, -0.24, 0.30, 0.24,
2176             -0.30, 0.24, -0.30, -0.24, -0.30, 0.24, 0.30, 0.24,
2177             -0.30, -0.24, 0.30, 0.24, -0.30, -0.24, -0.30, 0.24,
2178             -0.30, 0.24, 0.30, -0.24, 0.30, -0.24, 0.30, 0.20,
2179             -0.30, 0.20, -0.30, 0.20, -0.30, 0.20, 0.30, 0.20,
2180             -0.30, 0.20, -0.30, 0.20, 0.30, 0.20, 0.30, -0.20,
2181             -0.30, 0.20, -0.30, 0.20, -0.30, -0.36, -0.36, -0.36,
2182             -0.04, 0.30, 0.12, -0.10, -0.32, -0.24, 0.20, 0.24,
2183             0.20, 0.20, -0.20, -0.20, -0.20, -0.20, -0.20, 0.20,
2184             0.20, 0.20, -0.20, 0.20, 0.20, 0.20, 0.20, -0.20,
2185             -0.20, 0.00, 0.00, -0.20, -0.20, -0.20, 0.20, -0.20,
2186             0.20, 0.20, -0.20, -0.20, -0.20, 0.20, 0.20, 0.20,
2187             0.20, 0.20, -0.20, 0.20, -0.20, 0.28, 0.28, 0.28,
2188             0.28, 0.28, 0.28, -0.28, 0.28, 0.12, 0.00, 0.24,
2189             0.16, -0.20, 0.16, -0.20, 0.16, -0.20, 0.16, 0.20,
2190             -0.16, 0.20, 0.16, 0.20, -0.16, 0.20, -0.16, 0.20,
2191              
2192             /* 2260-2387 */
2193             -0.16, 0.20, 0.16, -0.20, 0.16, 0.20, 0.16, -0.20,
2194             -0.16, 0.20, -0.16, -0.20, -0.16, 0.20, 0.16, 0.20,
2195             0.16, -0.20, 0.16, -0.20, 0.16, 0.20, 0.16, 0.20,
2196             0.16, 0.20, -0.16, -0.20, 0.16, 0.20, -0.16, 0.20,
2197             0.16, 0.20, -0.16, -0.20, 0.16, -0.20, 0.16, -0.20,
2198             -0.16, -0.20, 0.24, -0.24, -0.24, 0.24, 0.24, 0.12,
2199             0.20, 0.12, 0.20, -0.12, -0.20, 0.12, -0.20, 0.12,
2200             -0.20, -0.12, 0.20, -0.12, 0.20, -0.12, -0.20, 0.12,
2201             0.20, 0.12, 0.20, 0.12, -0.20, -0.12, 0.20, 0.12,
2202             -0.20, -0.12, 0.20, 0.12, 0.20, 0.00, 0.00, -0.12,
2203             0.20, -0.12, 0.20, 0.12, -0.20, -0.12, 0.20, 0.12,
2204             0.20, 0.00, -0.21, -0.20, 0.00, 0.00, 0.20, -0.20,
2205             -0.20, -0.20, 0.20, -0.16, -0.10, 0.00, 0.17, 0.16,
2206             0.16, 0.16, 0.16, -0.16, 0.16, 0.16, -0.16, 0.16,
2207             -0.16, 0.16, 0.12, 0.10, 0.12, -0.10, -0.12, 0.10,
2208             -0.12, 0.10, 0.12, -0.10, -0.12, 0.12, -0.12, 0.12,
2209              
2210             /* 2388-2515 */
2211             -0.12, 0.12, -0.12, -0.12, -0.12, -0.12, -0.12, -0.12,
2212             -0.12, 0.12, 0.12, 0.12, 0.12, -0.12, -0.12, 0.12,
2213             0.12, 0.12, -0.12, 0.12, -0.12, -0.12, -0.12, 0.12,
2214             -0.12, -0.12, 0.12, 0.00, 0.11, 0.11,-122.67, 164.70,
2215             203.78, 273.50, 3.58, 2.74, 6.18, -4.56, 0.00, -0.04,
2216             0.00, -0.07, 57.44, -77.10, 95.82, 128.60, -1.77, -1.28,
2217             2.85, -2.14, 82.14, 89.50, 0.00, 0.00, 2.00, -1.84,
2218             -0.04, 47.73, -64.10, 23.79, 31.90, -1.45, -1.07, 0.69,
2219             -0.53, -46.38, 50.50, 0.00, 0.00, 1.13, 1.04, 0.02,
2220             -18.38, 0.00, 63.80, 0.00, 0.00, 0.41, 0.00, -1.43,
2221             59.07, 0.00, 0.00, 0.00, 0.00, -1.32, 57.28, 0.00,
2222             0.00, 0.00, 0.00, -1.28, -48.65, 0.00, -1.15, 0.00,
2223             0.00, 1.09, 0.00, 0.03, -18.30, 24.60, -17.30, -23.20,
2224             0.56, 0.41, -0.51, 0.39, -16.91, 26.90, 8.43, 13.30,
2225             0.60, 0.38, 0.31, -0.19, 1.23, -1.70, -19.13, -25.70,
2226             -0.03, -0.03, -0.58, 0.43, -0.72, 0.90, -17.34, -23.30,
2227              
2228             /* 2516-2643 */
2229             0.03, 0.02, -0.52, 0.39, -19.49, -21.30, 0.00, 0.00,
2230             -0.48, 0.44, 0.01, 20.57, -20.10, 0.64, 0.70, -0.45,
2231             -0.46, 0.00, -0.01, 4.89, 5.90, -16.55, 19.90, 0.14,
2232             -0.11, 0.44, 0.37, 18.22, 19.80, 0.00, 0.00, 0.44,
2233             -0.41, -0.01, 4.89, -5.30, -16.51, -18.00, -0.11, -0.11,
2234             -0.41, 0.37, -17.86, 0.00, 17.10, 0.00, 0.00, 0.40,
2235             0.00, -0.38, 0.32, 0.00, 24.42, 0.00, 0.00, -0.01,
2236             0.00, -0.55, -23.79, 0.00, 0.00, 0.00, 0.00, 0.53,
2237             14.72, -16.00, -0.32, 0.00, -0.36, -0.33, -0.01, 0.01,
2238             3.34, -4.50, 11.86, 15.90, -0.11, -0.07, 0.35, -0.27,
2239             -3.26, 4.40, 11.62, 15.60, 0.09, 0.07, 0.35, -0.26,
2240             -19.53, 0.00, 5.09, 0.00, 0.00, 0.44, 0.00, -0.11,
2241             -13.48, 14.70, 0.00, 0.00, 0.33, 0.30, 0.01, 10.86,
2242             -14.60, 3.18, 4.30, -0.33, -0.24, 0.09, -0.07, -11.30,
2243             -15.10, 0.00, 0.00, -0.34, 0.25, 0.01, 2.03, -2.70,
2244             10.82, 14.50, -0.07, -0.05, 0.32, -0.24, 17.46, 0.00,
2245              
2246             /* 2644-2771 */
2247             0.00, 0.00, 0.00, -0.39, 16.43, 0.00, 0.52, 0.00,
2248             0.00, -0.37, 0.00, -0.01, 9.35, 0.00, 13.29, 0.00,
2249             0.00, -0.21, 0.00, -0.30, -10.42, 11.40, 0.00, 0.00,
2250             0.25, 0.23, 0.01, 0.44, 0.50, -10.38, 11.30, 0.02,
2251             -0.01, 0.25, 0.23, -14.64, 0.00, 0.00, 0.00, 0.00,
2252             0.33, 0.56, 0.80, -8.67, 11.70, 0.02, -0.01, 0.26,
2253             0.19, 13.88, 0.00, -2.47, 0.00, 0.00, -0.31, 0.00,
2254             0.06, -1.99, 2.70, 7.72, 10.30, 0.06, 0.04, 0.23,
2255             -0.17, -0.20, 0.00, 13.05, 0.00, 0.00, 0.00, 0.00,
2256             -0.29, 6.92, -9.30, 3.34, 4.50, -0.21, -0.15, 0.10,
2257             -0.07, -6.60, 0.00, 10.70, 0.00, 0.00, 0.15, 0.00,
2258             -0.24, -8.04, -8.70, 0.00, 0.00, -0.19, 0.18, -10.58,
2259             0.00, -3.10, 0.00, 0.00, 0.24, 0.00, 0.07, -7.32,
2260             8.00, -0.12, -0.10, 0.18, 0.16, 1.63, 1.70, 6.96,
2261             -7.60, 0.03, -0.04, -0.17, -0.16, -3.62, 0.00, 9.86,
2262             0.00, 0.00, 0.08, 0.00, -0.22, 0.20, -0.20, -6.88,
2263              
2264             /* 2772-2899 */
2265             -7.50, 0.00, 0.00, -0.17, 0.15, -8.99, 0.00, 4.02,
2266             0.00, 0.00, 0.20, 0.00, -0.09, -1.07, 1.40, -5.69,
2267             -7.70, 0.03, 0.02, -0.17, 0.13, 6.48, -7.20, -0.48,
2268             -0.50, -0.16, -0.14, -0.01, 0.01, 5.57, -7.50, 1.07,
2269             1.40, -0.17, -0.12, 0.03, -0.02, 8.71, 0.00, 3.54,
2270             0.00, 0.00, -0.19, 0.00, -0.08, 0.40, 0.00, 9.27,
2271             0.00, 0.00, -0.01, 0.00, -0.21, -6.13, 6.70, -1.19,
2272             -1.30, 0.15, 0.14, -0.03, 0.03, 5.21, -5.70, -2.51,
2273             -2.60, -0.13, -0.12, -0.06, 0.06, 5.69, -6.20, -0.12,
2274             -0.10, -0.14, -0.13, -0.01, 2.03, -2.70, 4.53, 6.10,
2275             -0.06, -0.05, 0.14, -0.10, 5.01, 5.50, -2.51, 2.70,
2276             0.12, -0.11, 0.06, 0.06, -1.91, 2.60, -4.38, -5.90,
2277             0.06, 0.04, -0.13, 0.10, 4.65, -6.30, 0.00, 0.00,
2278             -0.14, -0.10, -5.29, 5.70, 0.00, 0.00, 0.13, 0.12,
2279             -2.23, -4.00, -4.65, 4.20, -0.09, 0.05, 0.10, 0.10,
2280             -4.53, 6.10, 0.00, 0.00, 0.14, 0.10, 2.47, 2.70,
2281              
2282             /* 2900-3027 */
2283             -4.46, 4.90, 0.06, -0.06, 0.11, 0.10, -5.05, 5.50,
2284             0.84, 0.90, 0.12, 0.11, 0.02, -0.02, 4.97, -5.40,
2285             -1.71, 0.00, -0.12, -0.11, 0.00, 0.04, -0.99, -1.30,
2286             4.22, -5.70, -0.03, 0.02, -0.13, -0.09, 0.99, 1.40,
2287             4.22, -5.60, 0.03, -0.02, -0.13, -0.09, -4.69, -5.20,
2288             0.00, 0.00, -0.12, 0.10, -3.42, 0.00, 6.09, 0.00,
2289             0.00, 0.08, 0.00, -0.14, -4.65, -5.10, 0.00, 0.00,
2290             -0.11, 0.10, 0.00, 0.00, -4.53, -5.00, 0.00, 0.00,
2291             -0.11, 0.10, -2.43, -2.70, -3.82, 4.20, -0.06, 0.05,
2292             0.10, 0.09, 0.00, 0.00, -4.53, 4.90, 0.00, 0.00,
2293             0.11, 0.10, -4.49, -4.90, 0.00, 0.00, -0.11, 0.10,
2294             2.67, -2.90, -3.62, -3.90, -0.06, -0.06, -0.09, 0.08,
2295             3.94, -5.30, 0.00, 0.00, -0.12, -3.38, 3.70, -2.78,
2296             -3.10, 0.08, 0.08, -0.07, 0.06, 3.18, -3.50, -2.82,
2297             -3.10, -0.08, -0.07, -0.07, 0.06, -5.77, 0.00, 1.87,
2298             0.00, 0.00, 0.13, 0.00, -0.04, 3.54, -4.80, -0.64,
2299              
2300             /* 3028-3155 */
2301             -0.90, -0.11, 0.00, -0.02, -3.50, -4.70, 0.68, -0.90,
2302             -0.11, 0.00, -0.02, 5.49, 0.00, 0.00, 0.00, 0.00,
2303             -0.12, 1.83, -2.50, 2.63, 3.50, -0.06, 0.00, 0.08,
2304             3.02, -4.10, 0.68, 0.90, -0.09, 0.00, 0.02, 0.00,
2305             0.00, 5.21, 0.00, 0.00, 0.00, 0.00, -0.12, -3.54,
2306             3.80, 2.70, 3.60, -1.35, 1.80, 0.08, 0.00, 0.04,
2307             -2.90, 3.90, 0.68, 0.90, 0.09, 0.00, 0.02, 0.80,
2308             -1.10, -2.78, -3.70, -0.02, 0.00, -0.08, 4.10, 0.00,
2309             -2.39, 0.00, 0.00, -0.09, 0.00, 0.05, -1.59, 2.10,
2310             2.27, 3.00, 0.05, 0.00, 0.07, -2.63, 3.50, -0.48,
2311             -0.60, -2.94, -3.20, -2.94, 3.20, 2.27, -3.00, -1.11,
2312             -1.50, -0.07, 0.00, -0.03, -0.56, -0.80, -2.35, 3.10,
2313             0.00, -0.60, -3.42, 1.90, -0.12, -0.10, 2.63, -2.90,
2314             2.51, 2.80, -0.64, 0.70, -0.48, -0.60, 2.19, -2.90,
2315             0.24, -0.30, 2.15, 2.90, 2.15, -2.90, 0.52, 0.70,
2316             2.07, -2.80, -3.10, 0.00, 1.79, 0.00, 0.00, 0.07,
2317              
2318             /* 3156-3283 */
2319             0.00, -0.04, 0.88, 0.00, -3.46, 2.11, 2.80, -0.36,
2320             0.50, 3.54, -0.20, -3.50, -1.39, 1.50, -1.91, -2.10,
2321             -1.47, 2.00, 1.39, 1.90, 2.07, -2.30, 0.91, 1.00,
2322             1.99, -2.70, 3.30, 0.00, 0.60, -0.44, -0.70, -1.95,
2323             2.60, 2.15, -2.40, -0.60, -0.70, 3.30, 0.84, 0.00,
2324             -3.10, -3.10, 0.00, -0.72, -0.32, 0.40, -1.87, -2.50,
2325             1.87, -2.50, 0.32, 0.40, -0.24, 0.30, -1.87, -2.50,
2326             -0.24, -0.30, 1.87, -2.50, -2.70, 0.00, 1.55, 2.03,
2327             2.20, -2.98, -1.99, -2.20, 0.12, -0.10, -0.40, 0.50,
2328             1.59, 2.10, 0.00, 0.00, -1.79, 2.00, -1.03, 1.40,
2329             -1.15, -1.60, 0.32, 0.50, 1.39, -1.90, 2.35, -1.27,
2330             1.70, 0.60, 0.80, -0.32, -0.40, 1.35, -1.80, 0.44,
2331             0.00, 2.23, -0.84, 0.90, -1.27, -1.40, -1.47, 1.60,
2332             -0.28, -0.30, -0.28, 0.40, -1.27, -1.70, 0.28, -0.40,
2333             -1.43, -1.50, 0.00, 0.00, -1.27, -1.70, 2.11, -0.32,
2334             -0.40, -1.23, 1.60, 1.19, -1.30, -0.72, -0.80, 0.72,
2335              
2336             /* 3284-3411 */
2337             -0.80, -1.15, -1.30, -1.35, -1.50, -1.19, -1.60, -0.12,
2338             0.20, 1.79, 0.00, -0.88, -0.28, 0.40, 1.11, 1.50,
2339             -1.83, 0.00, 0.56, -0.12, 0.10, -1.27, -1.40, 0.00,
2340             0.00, 1.15, 1.50, -0.12, 0.20, 1.11, 1.50, 0.36,
2341             -0.50, -1.07, -1.40, -1.11, 1.50, 1.67, 0.00, 0.80,
2342             -1.11, 0.00, 1.43, 1.23, -1.30, -0.24, -1.19, -1.30,
2343             -0.24, 0.20, -0.44, -0.90, -0.95, 1.10, 1.07, -1.40,
2344             1.15, -1.30, 1.03, -1.10, -0.56, -0.60, -0.68, 0.90,
2345             -0.76, -1.00, -0.24, -0.30, 0.95, -1.30, 0.56, 0.70,
2346             0.84, -1.10, -0.56, 0.00, -1.55, 0.91, -1.30, 0.28,
2347             0.30, 0.16, -0.20, 0.95, 1.30, 0.40, -0.50, -0.88,
2348             -1.20, 0.95, -1.10, -0.48, -0.50, 0.00, 0.00, -1.07,
2349             1.20, 0.44, -0.50, 0.95, 1.10, 0.00, 0.00, 0.92,
2350             -1.30, 0.95, 1.00, -0.52, 0.60, 1.59, 0.24, -0.40,
2351             0.91, 1.20, 0.84, -1.10, -0.44, -0.60, 0.84, 1.10,
2352             -0.44, 0.60, -0.44, 0.60, -0.84, -1.10, -0.80, 0.00,
2353              
2354             /* 3412-3539 */
2355             1.35, 0.76, 0.20, -0.91, -1.00, 0.20, -0.30, -0.91,
2356             -1.20, -0.95, 1.00, -0.48, -0.50, 0.88, 1.00, 0.48,
2357             -0.50, -0.95, -1.10, 0.20, -0.20, -0.99, 1.10, -0.84,
2358             1.10, -0.24, -0.30, 0.20, -0.30, 0.84, 1.10, -1.39,
2359             0.00, -0.28, -0.16, 0.20, 0.84, 1.10, 0.00, 0.00,
2360             1.39, 0.00, 0.00, -0.95, 1.00, 1.35, -0.99, 0.00,
2361             0.88, -0.52, 0.00, -1.19, 0.20, 0.20, 0.76, -1.00,
2362             0.00, 0.00, 0.76, 1.00, 0.00, 0.00, 0.76, 1.00,
2363             -0.76, 1.00, 0.00, 0.00, 1.23, 0.76, 0.80, -0.32,
2364             0.40, -0.72, 0.80, -0.40, -0.40, 0.00, 0.00, -0.80,
2365             -0.90, -0.68, 0.90, -0.16, -0.20, -0.16, -0.20, 0.68,
2366             -0.90, -0.36, 0.50, -0.56, -0.80, 0.72, -0.90, 0.44,
2367             -0.60, -0.48, -0.70, -0.16, 0.00, -1.11, 0.32, 0.00,
2368             -1.07, 0.60, -0.80, -0.28, -0.40, -0.64, 0.00, 0.91,
2369             1.11, 0.64, -0.90, 0.76, -0.80, 0.00, 0.00, -0.76,
2370             -0.80, 1.03, 0.00, -0.36, -0.64, -0.70, 0.36, -0.40,
2371              
2372             /* 3540-3667 */
2373             1.07, 0.36, -0.50, -0.52, -0.70, 0.60, 0.00, 0.88,
2374             0.95, 0.00, 0.48, 0.16, -0.20, 0.60, 0.80, 0.16,
2375             -0.20, -0.60, -0.80, 0.00, -1.00, 0.12, 0.20, 0.16,
2376             -0.20, 0.68, 0.70, 0.59, -0.80, -0.99, -0.56, -0.60,
2377             0.36, -0.40, -0.68, -0.70, -0.68, -0.70, -0.36, -0.50,
2378             -0.44, 0.60, 0.64, 0.70, -0.12, 0.10, -0.52, 0.60,
2379             0.36, 0.40, 0.00, 0.00, 0.95, -0.84, 0.00, 0.44,
2380             0.56, 0.60, 0.32, -0.30, 0.00, 0.00, 0.60, 0.70,
2381             0.00, 0.00, 0.60, 0.70, -0.12, -0.20, 0.52, -0.70,
2382             0.00, 0.00, 0.56, 0.70, -0.12, 0.10, -0.52, -0.70,
2383             0.00, 0.00, 0.88, -0.76, 0.00, -0.44, 0.00, 0.00,
2384             -0.52, -0.70, 0.52, -0.70, 0.36, -0.40, -0.44, -0.50,
2385             0.00, 0.00, 0.60, 0.60, 0.84, 0.00, 0.12, -0.24,
2386             0.00, 0.80, -0.56, 0.60, -0.32, -0.30, 0.48, -0.50,
2387             0.28, -0.30, -0.48, -0.50, 0.12, 0.20, 0.48, -0.60,
2388             0.48, 0.60, -0.12, 0.20, 0.24, 0.00, 0.76, -0.52,
2389              
2390             /* 3668-3795 */
2391             -0.60, -0.52, 0.60, 0.48, -0.50, -0.24, -0.30, 0.12,
2392             -0.10, 0.48, 0.60, 0.52, -0.20, 0.36, 0.40, -0.44,
2393             0.50, -0.24, -0.30, -0.48, -0.60, -0.44, -0.60, -0.12,
2394             0.10, 0.76, 0.76, 0.20, -0.20, 0.48, 0.50, 0.40,
2395             -0.50, -0.24, -0.30, 0.44, -0.60, 0.44, -0.60, 0.36,
2396             0.00, -0.64, 0.72, 0.00, -0.12, 0.00, -0.10, -0.40,
2397             -0.60, -0.20, -0.20, -0.44, 0.50, -0.44, 0.50, 0.20,
2398             0.20, -0.44, -0.50, 0.20, -0.20, -0.20, 0.20, -0.44,
2399             -0.50, 0.64, 0.00, 0.32, -0.36, 0.50, -0.20, -0.30,
2400             0.12, -0.10, 0.48, 0.50, -0.12, 0.30, -0.36, -0.50,
2401             0.00, 0.00, 0.48, 0.50, -0.48, 0.50, 0.68, 0.00,
2402             -0.12, 0.56, -0.40, 0.44, -0.50, -0.12, -0.10, 0.24,
2403             0.30, -0.40, 0.40, 0.64, 0.00, -0.24, 0.64, 0.00,
2404             -0.20, 0.00, 0.00, 0.44, -0.50, 0.44, 0.50, -0.12,
2405             0.20, -0.36, -0.50, 0.12, 0.00, 0.64, -0.40, 0.50,
2406             0.00, 0.10, 0.00, 0.00, -0.40, 0.50, 0.00, 0.00,
2407              
2408             /* 3796-3923 */
2409             -0.40, -0.50, 0.56, 0.00, 0.28, 0.00, 0.10, 0.36,
2410             0.50, 0.00, -0.10, 0.36, -0.50, 0.36, 0.50, 0.00,
2411             -0.10, 0.24, -0.20, -0.36, -0.40, 0.16, 0.20, 0.40,
2412             -0.40, 0.00, 0.00, -0.36, -0.50, -0.36, -0.50, -0.32,
2413             -0.50, -0.12, 0.10, 0.20, 0.20, -0.36, 0.40, -0.60,
2414             0.60, 0.28, 0.00, 0.52, 0.12, -0.10, 0.40, 0.40,
2415             0.00, -0.50, 0.20, -0.20, -0.32, 0.40, 0.16, 0.20,
2416             -0.16, 0.20, 0.32, 0.40, 0.56, 0.00, -0.12, 0.32,
2417             -0.40, -0.16, -0.20, 0.00, 0.00, 0.40, 0.40, -0.40,
2418             -0.40, -0.40, 0.40, -0.36, 0.40, 0.12, 0.10, 0.00,
2419             0.10, 0.36, 0.40, 0.00, -0.10, 0.36, 0.40, -0.36,
2420             0.40, 0.00, 0.10, 0.32, 0.00, 0.44, 0.12, 0.20,
2421             0.28, -0.40, 0.00, 0.00, 0.36, 0.40, 0.32, -0.40,
2422             -0.16, 0.12, 0.10, 0.32, -0.40, 0.20, 0.30, -0.24,
2423             0.30, 0.00, 0.10, 0.32, 0.40, 0.00, -0.10, -0.32,
2424             -0.40, -0.32, 0.40, 0.00, 0.10, -0.52, -0.52, 0.52,
2425              
2426             /* 3924-4051 */
2427             0.32, -0.40, 0.00, 0.00, 0.32, 0.40, 0.32, -0.40,
2428             0.00, 0.00, -0.32, -0.40, -0.32, 0.40, 0.32, 0.40,
2429             0.00, 0.00, 0.32, 0.40, 0.00, 0.00, -0.32, -0.40,
2430             0.00, 0.00, 0.32, 0.40, 0.16, 0.20, 0.32, -0.30,
2431             -0.16, 0.00, -0.48, -0.20, 0.20, -0.28, -0.30, 0.28,
2432             -0.40, 0.00, 0.00, 0.28, -0.40, 0.00, 0.00, 0.28,
2433             -0.40, 0.00, 0.00, -0.28, -0.40, 0.28, 0.40, -0.28,
2434             -0.40, -0.48, -0.20, 0.20, 0.24, 0.30, 0.44, 0.00,
2435             0.16, 0.24, 0.30, 0.16, -0.20, 0.24, 0.30, -0.12,
2436             0.20, 0.20, 0.30, -0.16, 0.20, 0.00, 0.00, 0.44,
2437             -0.32, 0.30, 0.24, 0.00, -0.36, 0.36, 0.00, 0.24,
2438             0.12, -0.20, 0.20, 0.30, -0.12, 0.00, -0.28, 0.30,
2439             -0.24, 0.30, 0.12, 0.10, -0.28, -0.30, -0.28, 0.30,
2440             0.00, 0.00, -0.28, -0.30, 0.00, 0.00, -0.28, -0.30,
2441             0.00, 0.00, 0.28, 0.30, 0.00, 0.00, -0.28, -0.30,
2442             -0.28, 0.30, 0.00, 0.00, -0.28, -0.30, 0.00, 0.00,
2443              
2444             /* 4052-4179 */
2445             0.28, 0.30, 0.00, 0.00, -0.28, 0.30, 0.28, -0.30,
2446             -0.28, 0.30, 0.40, 0.40, -0.24, 0.30, 0.00, -0.10,
2447             0.16, 0.00, 0.36, -0.20, 0.30, -0.12, -0.10, -0.24,
2448             -0.30, 0.00, 0.00, -0.24, 0.30, -0.24, 0.30, 0.00,
2449             0.00, -0.24, 0.30, -0.24, 0.30, 0.24, -0.30, 0.00,
2450             0.00, 0.24, -0.30, 0.00, 0.00, 0.24, 0.30, 0.24,
2451             -0.30, 0.24, 0.30, -0.24, 0.30, -0.24, 0.30, -0.20,
2452             0.20, -0.16, -0.20, 0.00, 0.00, -0.32, 0.20, 0.00,
2453             0.10, 0.20, -0.30, 0.20, -0.20, 0.12, 0.20, -0.16,
2454             0.20, 0.16, 0.20, 0.20, 0.30, 0.20, 0.30, 0.00,
2455             0.00, -0.20, 0.30, 0.00, 0.00, 0.20, 0.30, -0.20,
2456             -0.30, -0.20, -0.30, 0.20, -0.30, 0.00, 0.00, 0.20,
2457             0.30, 0.00, 0.00, 0.20, 0.30, 0.00, 0.00, 0.20,
2458             0.30, 0.00, 0.00, 0.20, 0.30, 0.00, 0.00, 0.20,
2459             -0.30, 0.00, 0.00, -0.20, -0.30, 0.00, 0.00, -0.20,
2460             0.30, 0.00, 0.00, -0.20, 0.30, 0.00, 0.00, 0.36,
2461              
2462             /* 4180-4307 */
2463             0.00, 0.00, 0.36, 0.12, 0.10, -0.24, 0.20, 0.12,
2464             -0.20, -0.16, -0.20, -0.13, 0.10, 0.22, 0.21, 0.20,
2465             0.00, -0.28, 0.32, 0.00, -0.12, -0.20, -0.20, 0.12,
2466             -0.10, 0.12, 0.10, -0.20, 0.20, 0.00, 0.00, -0.32,
2467             0.32, 0.00, 0.00, 0.32, 0.32, 0.00, 0.00, -0.24,
2468             -0.20, 0.24, 0.20, 0.20, 0.00, -0.24, 0.00, 0.00,
2469             -0.24, -0.20, 0.00, 0.00, 0.24, 0.20, -0.24, -0.20,
2470             0.00, 0.00, -0.24, 0.20, 0.16, -0.20, 0.12, 0.10,
2471             0.20, 0.20, 0.00, -0.10, -0.12, 0.10, -0.16, -0.20,
2472             -0.12, -0.10, -0.16, 0.20, 0.20, 0.20, 0.00, 0.00,
2473             -0.20, 0.20, -0.20, 0.20, -0.20, 0.20, -0.20, 0.20,
2474             0.20, -0.20, -0.20, -0.20, 0.00, 0.00, -0.20, 0.20,
2475             0.20, 0.00, -0.20, 0.00, 0.00, -0.20, 0.20, -0.20,
2476             0.20, -0.20, -0.20, -0.20, -0.20, 0.00, 0.00, 0.20,
2477             0.20, 0.20, 0.20, 0.12, -0.20, -0.12, -0.10, 0.28,
2478             -0.28, 0.16, -0.20, 0.00, -0.10, 0.00, 0.10, -0.16,
2479              
2480             /* 4308-4435 */
2481             0.20, 0.00, -0.10, -0.16, -0.20, 0.00, -0.10, 0.16,
2482             -0.20, 0.16, -0.20, 0.00, 0.00, 0.16, 0.20, -0.16,
2483             0.20, 0.00, 0.00, 0.16, 0.20, 0.16, -0.20, 0.16,
2484             -0.20, -0.16, 0.20, 0.16, -0.20, 0.00, 0.00, 0.16,
2485             0.20, 0.00, 0.00, 0.16, 0.20, 0.00, 0.00, -0.16,
2486             -0.20, 0.16, -0.20, -0.16, -0.20, 0.00, 0.00, -0.16,
2487             -0.20, 0.00, 0.00, -0.16, 0.20, 0.00, 0.00, 0.16,
2488             -0.20, 0.16, 0.20, 0.16, 0.20, 0.00, 0.00, -0.16,
2489             -0.20, 0.00, 0.00, -0.16, -0.20, 0.00, 0.00, 0.16,
2490             0.20, 0.16, 0.20, 0.00, 0.00, 0.16, 0.20, 0.16,
2491             -0.20, 0.16, 0.20, 0.00, 0.00, -0.16, 0.20, 0.00,
2492             0.10, 0.12, -0.20, 0.12, -0.20, 0.00, -0.10, 0.00,
2493             -0.10, 0.12, 0.20, 0.00, -0.10, -0.12, 0.20, -0.15,
2494             0.20, -0.24, 0.24, 0.00, 0.00, 0.24, 0.24, 0.12,
2495             -0.20, -0.12, -0.20, 0.00, 0.00, 0.12, 0.20, 0.12,
2496             -0.20, 0.12, 0.20, 0.12, 0.20, 0.12, 0.20, 0.12,
2497              
2498             /* 4436-4563 */
2499             -0.20, -0.12, 0.20, 0.00, 0.00, 0.12, 0.20, 0.12,
2500             0.00, -0.20, 0.00, 0.00, -0.12, -0.20, 0.12, -0.20,
2501             0.00, 0.00, 0.12, 0.20, -0.12, 0.20, -0.12, 0.20,
2502             0.12, -0.20, 0.00, 0.00, 0.12, 0.20, 0.20, 0.00,
2503             0.12, 0.00, 0.00, -0.12, 0.20, 0.00, 0.00, -0.12,
2504             -0.20, 0.00, 0.00, -0.12, -0.20, -0.12, -0.20, 0.00,
2505             0.00, 0.12, -0.20, 0.12, -0.20, 0.12, 0.20, -0.12,
2506             -0.20, 0.00, 0.00, 0.12, -0.20, 0.12, -0.20, 0.12,
2507             0.20, 0.12, 0.00, 0.20, -0.12, -0.20, 0.00, 0.00,
2508             0.12, 0.20, -0.16, 0.00, 0.16, -0.20, 0.20, 0.00,
2509             0.00, -0.20, 0.00, 0.00, -0.20, 0.20, 0.00, 0.00,
2510             0.20, 0.20, -0.20, 0.00, 0.00, -0.20, 0.12, 0.00,
2511             -0.16, 0.20, 0.00, 0.00, 0.20, 0.12, -0.10, 0.00,
2512             0.10, 0.16, -0.16, -0.16, -0.16, -0.16, -0.16, 0.00,
2513             0.00, -0.16, 0.00, 0.00, -0.16, -0.16, -0.16, 0.00,
2514             0.00, -0.16, 0.00, 0.00, 0.16, 0.00, 0.00, 0.16,
2515              
2516             /* 4564-4691 */
2517             0.00, 0.00, 0.16, 0.16, 0.00, 0.00, -0.16, 0.00,
2518             0.00, -0.16, -0.16, 0.00, 0.00, 0.16, 0.00, 0.00,
2519             -0.16, -0.16, 0.00, 0.00, -0.16, -0.16, 0.12, 0.10,
2520             0.12, -0.10, 0.12, 0.10, 0.00, 0.00, 0.12, 0.10,
2521             -0.12, 0.10, 0.00, 0.00, 0.12, 0.10, 0.12, -0.10,
2522             0.00, 0.00, -0.12, -0.10, 0.00, 0.00, 0.12, 0.10,
2523             0.12, 0.00, 0.00, 0.12, 0.00, 0.00, -0.12, 0.00,
2524             0.00, 0.12, 0.12, 0.12, 0.12, 0.12, 0.00, 0.00,
2525             0.12, 0.00, 0.00, 0.12, 0.12, 0.00, 0.00, 0.12,
2526             0.00, 0.00, 0.12, -0.12, -0.12, 0.12, 0.12, -0.12,
2527             -0.12, 0.00, 0.00, 0.12, -0.12, 0.12, 0.12, -0.12,
2528             -0.12, 0.00, 0.00, -0.12, -0.12, 0.00, 0.00, -0.12,
2529             0.12, 0.00, 0.00, 0.12, 0.00, 0.00, 0.12, 0.00,
2530             0.00, 0.12, -0.12, 0.00, 0.00, -0.12, 0.12, -0.12,
2531             -0.12, 0.12, 0.00, 0.00, 0.12, 0.12, 0.12, -0.12,
2532             0.00, 0.00, -0.12, -0.12, -0.12, 0.00, 0.00, -0.12,
2533              
2534             /* 4692-NA */
2535             -0.12, 0.00, 0.00, 0.12, 0.12, 0.00, 0.00, -0.12,
2536             -0.12, -0.12, -0.12, 0.12, 0.00, 0.00, 0.12, -0.12,
2537             0.00, 0.00, -0.12, -0.12, 0.00, 0.00, 0.12, -0.12,
2538             -0.12, -0.12, -0.12, 0.12, 0.12, -0.12, -0.12, 0.00,
2539             0.00, -0.12, 0.00, 0.00, -0.12, 0.12, 0.00, 0.00,
2540             0.12, 0.00, 0.00, -0.12, -0.12, 0.00, 0.00, -0.12,
2541             -0.12, 0.12, 0.00, 0.00, 0.12, 0.12, 0.00, 0.00,
2542             0.12, 0.00, 0.00, 0.12, 0.12, 0.08, 0.00, 0.04
2543             };
2544              
2545             /* Number of amplitude coefficients */
2546             static const int NA = (int) (sizeof a / sizeof (double));
2547              
2548             /* Amplitude usage: X or Y, sin or cos, power of T. */
2549             static const int jaxy[] = {0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1};
2550             static const int jasc[] = {0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0};
2551             static const int japt[] = {0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4};
2552              
2553             /* Miscellaneous */
2554             double t, w, pt[MAXPT+1], fa[14], xypr[2], xypl[2], xyls[2], arg,
2555             sc[2];
2556             int jpt, i, j, jxy, ialast, ifreq, m, ia, jsc;
2557              
2558             /* ------------------------------------------------------------------ */
2559              
2560             /* Interval between fundamental date J2000.0 and given date (JC). */
2561 0           t = ((date1 - ERFA_DJ00) + date2) / ERFA_DJC;
2562              
2563             /* Powers of T. */
2564             w = 1.0;
2565 0 0         for (jpt = 0; jpt <= MAXPT; jpt++) {
2566 0           pt[jpt] = w;
2567 0           w *= t;
2568             }
2569              
2570             /* Initialize totals in X and Y: polynomial, luni-solar, planetary. */
2571 0 0         for (jxy = 0; jxy < 2; jxy++) {
2572 0           xypr[jxy] = 0.0;
2573 0           xyls[jxy] = 0.0;
2574 0           xypl[jxy] = 0.0;
2575             }
2576              
2577             /* --------------------------------- */
2578             /* Fundamental arguments (IERS 2003) */
2579             /* --------------------------------- */
2580              
2581             /* Mean anomaly of the Moon. */
2582 0           fa[0] = eraFal03(t);
2583              
2584             /* Mean anomaly of the Sun. */
2585 0           fa[1] = eraFalp03(t);
2586              
2587             /* Mean argument of the latitude of the Moon. */
2588 0           fa[2] = eraFaf03(t);
2589              
2590             /* Mean elongation of the Moon from the Sun. */
2591 0           fa[3] = eraFad03(t);
2592              
2593             /* Mean longitude of the ascending node of the Moon. */
2594 0           fa[4] = eraFaom03(t);
2595              
2596             /* Planetary longitudes, Mercury through Neptune. */
2597 0           fa[5] = eraFame03(t);
2598 0           fa[6] = eraFave03(t);
2599 0           fa[7] = eraFae03(t);
2600 0           fa[8] = eraFama03(t);
2601 0           fa[9] = eraFaju03(t);
2602 0           fa[10] = eraFasa03(t);
2603 0           fa[11] = eraFaur03(t);
2604 0           fa[12] = eraFane03(t);
2605              
2606             /* General accumulated precession in longitude. */
2607 0           fa[13] = eraFapa03(t);
2608              
2609             /* -------------------------------------- */
2610             /* Polynomial part of precession-nutation */
2611             /* -------------------------------------- */
2612              
2613 0 0         for (jxy = 0; jxy < 2; jxy++) {
2614 0 0         for (j = MAXPT; j >= 0; j--) {
2615 0           xypr[jxy] += xyp[jxy][j] * pt[j];
2616             }
2617             }
2618              
2619             /* ---------------------------------- */
2620             /* Nutation periodic terms, planetary */
2621             /* ---------------------------------- */
2622              
2623             /* Work backwards through the coefficients per frequency list. */
2624             ialast = NA;
2625 0 0         for (ifreq = NFPL-1; ifreq >= 0; ifreq--) {
2626              
2627             /* Obtain the argument functions. */
2628             arg = 0.0;
2629 0 0         for (i = 0; i < 14; i++) {
2630 0           m = mfapl[ifreq][i];
2631 0 0         if (m != 0) arg += (double)m * fa[i];
2632             }
2633 0           sc[0] = sin(arg);
2634 0           sc[1] = cos(arg);
2635              
2636             /* Work backwards through the amplitudes at this frequency. */
2637 0           ia = nc[ifreq+NFLS];
2638 0 0         for (i = ialast; i >= ia; i--) {
2639              
2640             /* Coefficient number (0 = 1st). */
2641 0           j = i-ia;
2642              
2643             /* X or Y. */
2644 0           jxy = jaxy[j];
2645              
2646             /* Sin or cos. */
2647 0           jsc = jasc[j];
2648              
2649             /* Power of T. */
2650 0           jpt = japt[j];
2651              
2652             /* Accumulate the component. */
2653 0           xypl[jxy] += a[i-1] * sc[jsc] * pt[jpt];
2654             }
2655 0           ialast = ia-1;
2656             }
2657              
2658             /* ----------------------------------- */
2659             /* Nutation periodic terms, luni-solar */
2660             /* ----------------------------------- */
2661              
2662             /* Continue working backwards through the number of coefficients list. */
2663 0 0         for (ifreq = NFLS-1; ifreq >= 0; ifreq--) {
2664              
2665             /* Obtain the argument functions. */
2666             arg = 0.0;
2667 0 0         for (i = 0; i < 5; i++) {
2668 0           m = mfals[ifreq][i];
2669 0 0         if (m != 0) arg += (double)m * fa[i];
2670             }
2671 0           sc[0] = sin(arg);
2672 0           sc[1] = cos(arg);
2673              
2674             /* Work backwards through the amplitudes at this frequency. */
2675 0           ia = nc[ifreq];
2676 0 0         for (i = ialast; i >= ia; i--) {
2677              
2678             /* Coefficient number (0 = 1st). */
2679 0           j = i-ia;
2680              
2681             /* X or Y. */
2682 0           jxy = jaxy[j];
2683              
2684             /* Sin or cos. */
2685 0           jsc = jasc[j];
2686              
2687             /* Power of T. */
2688 0           jpt = japt[j];
2689              
2690             /* Accumulate the component. */
2691 0           xyls[jxy] += a[i-1] * sc[jsc] * pt[jpt];
2692             }
2693 0           ialast = ia-1;
2694             }
2695              
2696             /* ------------------------------------ */
2697             /* Results: CIP unit vector components */
2698             /* ------------------------------------ */
2699              
2700 0           *x = ERFA_DAS2R * (xypr[0] + (xyls[0] + xypl[0]) / 1e6);
2701 0           *y = ERFA_DAS2R * (xypr[1] + (xyls[1] + xypl[1]) / 1e6);
2702              
2703 0           return;
2704              
2705             }
2706             /*----------------------------------------------------------------------
2707             **
2708             **
2709             ** Copyright (C) 2013-2020, NumFOCUS Foundation.
2710             ** All rights reserved.
2711             **
2712             ** This library is derived, with permission, from the International
2713             ** Astronomical Union's "Standards of Fundamental Astronomy" library,
2714             ** available from http://www.iausofa.org.
2715             **
2716             ** The ERFA version is intended to retain identical functionality to
2717             ** the SOFA library, but made distinct through different function and
2718             ** file names, as set out in the SOFA license conditions. The SOFA
2719             ** original has a role as a reference standard for the IAU and IERS,
2720             ** and consequently redistribution is permitted only in its unaltered
2721             ** state. The ERFA version is not subject to this restriction and
2722             ** therefore can be included in distributions which do not support the
2723             ** concept of "read only" software.
2724             **
2725             ** Although the intent is to replicate the SOFA API (other than
2726             ** replacement of prefix names) and results (with the exception of
2727             ** bugs; any that are discovered will be fixed), SOFA is not
2728             ** responsible for any errors found in this version of the library.
2729             **
2730             ** If you wish to acknowledge the SOFA heritage, please acknowledge
2731             ** that you are using a library derived from SOFA, rather than SOFA
2732             ** itself.
2733             **
2734             **
2735             ** TERMS AND CONDITIONS
2736             **
2737             ** Redistribution and use in source and binary forms, with or without
2738             ** modification, are permitted provided that the following conditions
2739             ** are met:
2740             **
2741             ** 1 Redistributions of source code must retain the above copyright
2742             ** notice, this list of conditions and the following disclaimer.
2743             **
2744             ** 2 Redistributions in binary form must reproduce the above copyright
2745             ** notice, this list of conditions and the following disclaimer in
2746             ** the documentation and/or other materials provided with the
2747             ** distribution.
2748             **
2749             ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
2750             ** the International Astronomical Union nor the names of its
2751             ** contributors may be used to endorse or promote products derived
2752             ** from this software without specific prior written permission.
2753             **
2754             ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
2755             ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2756             ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
2757             ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
2758             ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
2759             ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
2760             ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
2761             ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
2762             ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2763             ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
2764             ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2765             ** POSSIBILITY OF SUCH DAMAGE.
2766             **
2767             */