Astro-PAL
view release on metacpan or search on metacpan
erfasrc/src/s06.c view on Meta::CPAN
**
** Copyright (C) 2013-2020, NumFOCUS Foundation.
** Derived, with permission, from the SOFA library. See notes at end of file.
*/
{
/* Time since J2000.0, in Julian centuries */
double t;
/* Miscellaneous */
int i, j;
double a, w0, w1, w2, w3, w4, w5;
/* Fundamental arguments */
double fa[8];
/* Returned value */
double s;
/* --------------------- */
/* The series for s+XY/2 */
/* --------------------- */
typedef struct {
int nfa[8]; /* coefficients of l,l',F,D,Om,LVe,LE,pA */
double s, c; /* sine and cosine coefficients */
} TERM;
/* Polynomial coefficients */
static const double sp[] = {
/* 1-6 */
94.00e-6,
3808.65e-6,
-122.68e-6,
-72574.11e-6,
27.98e-6,
15.62e-6
};
/* Terms of order t^0 */
static const TERM s0[] = {
/* 1-10 */
{{ 0, 0, 0, 0, 1, 0, 0, 0}, -2640.73e-6, 0.39e-6 },
{{ 0, 0, 0, 0, 2, 0, 0, 0}, -63.53e-6, 0.02e-6 },
{{ 0, 0, 2, -2, 3, 0, 0, 0}, -11.75e-6, -0.01e-6 },
{{ 0, 0, 2, -2, 1, 0, 0, 0}, -11.21e-6, -0.01e-6 },
{{ 0, 0, 2, -2, 2, 0, 0, 0}, 4.57e-6, 0.00e-6 },
{{ 0, 0, 2, 0, 3, 0, 0, 0}, -2.02e-6, 0.00e-6 },
{{ 0, 0, 2, 0, 1, 0, 0, 0}, -1.98e-6, 0.00e-6 },
{{ 0, 0, 0, 0, 3, 0, 0, 0}, 1.72e-6, 0.00e-6 },
{{ 0, 1, 0, 0, 1, 0, 0, 0}, 1.41e-6, 0.01e-6 },
{{ 0, 1, 0, 0, -1, 0, 0, 0}, 1.26e-6, 0.01e-6 },
/* 11-20 */
{{ 1, 0, 0, 0, -1, 0, 0, 0}, 0.63e-6, 0.00e-6 },
{{ 1, 0, 0, 0, 1, 0, 0, 0}, 0.63e-6, 0.00e-6 },
{{ 0, 1, 2, -2, 3, 0, 0, 0}, -0.46e-6, 0.00e-6 },
{{ 0, 1, 2, -2, 1, 0, 0, 0}, -0.45e-6, 0.00e-6 },
{{ 0, 0, 4, -4, 4, 0, 0, 0}, -0.36e-6, 0.00e-6 },
{{ 0, 0, 1, -1, 1, -8, 12, 0}, 0.24e-6, 0.12e-6 },
{{ 0, 0, 2, 0, 0, 0, 0, 0}, -0.32e-6, 0.00e-6 },
{{ 0, 0, 2, 0, 2, 0, 0, 0}, -0.28e-6, 0.00e-6 },
{{ 1, 0, 2, 0, 3, 0, 0, 0}, -0.27e-6, 0.00e-6 },
{{ 1, 0, 2, 0, 1, 0, 0, 0}, -0.26e-6, 0.00e-6 },
/* 21-30 */
{{ 0, 0, 2, -2, 0, 0, 0, 0}, 0.21e-6, 0.00e-6 },
{{ 0, 1, -2, 2, -3, 0, 0, 0}, -0.19e-6, 0.00e-6 },
{{ 0, 1, -2, 2, -1, 0, 0, 0}, -0.18e-6, 0.00e-6 },
{{ 0, 0, 0, 0, 0, 8,-13, -1}, 0.10e-6, -0.05e-6 },
{{ 0, 0, 0, 2, 0, 0, 0, 0}, -0.15e-6, 0.00e-6 },
{{ 2, 0, -2, 0, -1, 0, 0, 0}, 0.14e-6, 0.00e-6 },
{{ 0, 1, 2, -2, 2, 0, 0, 0}, 0.14e-6, 0.00e-6 },
{{ 1, 0, 0, -2, 1, 0, 0, 0}, -0.14e-6, 0.00e-6 },
{{ 1, 0, 0, -2, -1, 0, 0, 0}, -0.14e-6, 0.00e-6 },
{{ 0, 0, 4, -2, 4, 0, 0, 0}, -0.13e-6, 0.00e-6 },
/* 31-33 */
{{ 0, 0, 2, -2, 4, 0, 0, 0}, 0.11e-6, 0.00e-6 },
{{ 1, 0, -2, 0, -3, 0, 0, 0}, -0.11e-6, 0.00e-6 },
{{ 1, 0, -2, 0, -1, 0, 0, 0}, -0.11e-6, 0.00e-6 }
};
/* Terms of order t^1 */
static const TERM s1[] = {
/* 1 - 3 */
{{ 0, 0, 0, 0, 2, 0, 0, 0}, -0.07e-6, 3.57e-6 },
{{ 0, 0, 0, 0, 1, 0, 0, 0}, 1.73e-6, -0.03e-6 },
{{ 0, 0, 2, -2, 3, 0, 0, 0}, 0.00e-6, 0.48e-6 }
};
/* Terms of order t^2 */
static const TERM s2[] = {
/* 1-10 */
{{ 0, 0, 0, 0, 1, 0, 0, 0}, 743.52e-6, -0.17e-6 },
{{ 0, 0, 2, -2, 2, 0, 0, 0}, 56.91e-6, 0.06e-6 },
{{ 0, 0, 2, 0, 2, 0, 0, 0}, 9.84e-6, -0.01e-6 },
{{ 0, 0, 0, 0, 2, 0, 0, 0}, -8.85e-6, 0.01e-6 },
{{ 0, 1, 0, 0, 0, 0, 0, 0}, -6.38e-6, -0.05e-6 },
{{ 1, 0, 0, 0, 0, 0, 0, 0}, -3.07e-6, 0.00e-6 },
{{ 0, 1, 2, -2, 2, 0, 0, 0}, 2.23e-6, 0.00e-6 },
{{ 0, 0, 2, 0, 1, 0, 0, 0}, 1.67e-6, 0.00e-6 },
{{ 1, 0, 2, 0, 2, 0, 0, 0}, 1.30e-6, 0.00e-6 },
{{ 0, 1, -2, 2, -2, 0, 0, 0}, 0.93e-6, 0.00e-6 },
/* 11-20 */
{{ 1, 0, 0, -2, 0, 0, 0, 0}, 0.68e-6, 0.00e-6 },
{{ 0, 0, 2, -2, 1, 0, 0, 0}, -0.55e-6, 0.00e-6 },
{{ 1, 0, -2, 0, -2, 0, 0, 0}, 0.53e-6, 0.00e-6 },
{{ 0, 0, 0, 2, 0, 0, 0, 0}, -0.27e-6, 0.00e-6 },
{{ 1, 0, 0, 0, 1, 0, 0, 0}, -0.27e-6, 0.00e-6 },
{{ 1, 0, -2, -2, -2, 0, 0, 0}, -0.26e-6, 0.00e-6 },
{{ 1, 0, 0, 0, -1, 0, 0, 0}, -0.25e-6, 0.00e-6 },
{{ 1, 0, 2, 0, 1, 0, 0, 0}, 0.22e-6, 0.00e-6 },
{{ 2, 0, 0, -2, 0, 0, 0, 0}, -0.21e-6, 0.00e-6 },
{{ 2, 0, -2, 0, -1, 0, 0, 0}, 0.20e-6, 0.00e-6 },
/* 21-25 */
( run in 2.345 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )