diff --git a/README-headless.md b/README-headless.md index 5e183bf9..04e6d353 100644 --- a/README-headless.md +++ b/README-headless.md @@ -118,13 +118,19 @@ provided by SuperNOVAS over the upstream NOVAS C 3.1 code: `equinox` argument was changing from 1 to 0, and back to 1 again with the date being held the same. This affected routines downstream also, such as `sidereal_time()`. - - Fixes accuracy bug in `ecl2equ_vec()`, `equ2ecl_vec()`, `geo_posvel()`, `place()`, and `sidereal_time()`, which - returned a cached value for the other accuracy if the other input parameters are the same as a prior call, - except the accuracy. + - Fixes accuracy switch bug in `cio_basis()`, `cio_location()`, `ecl2equ`, `equ2ecl_vec()`, `geo_posvel()`, + `place()`, and `sidereal_time()`. All these functions returned a cached value for the other accuracy if the other + input parameters are the same as a prior call, except the accuracy. + - Fix bug in `equ2ecl_vec()` and `ecl2equ_vec()` whereby a query with `coord_sys = 2` (GCRS) has overwritten the + cached mean obliquity value for `coord_sys = 0` (mean equinox of date). As a result, a subsequent call with + `coord_sys = 0` and the same date as before would return the results GCRS coordinates instead of the + requested mean equinox of date coordinates. + - The use of `fmod()` in NOVAS C 3.1 led to the wrong results when the numerator was negative and the result was - not turned into a proper remainder. This affected the calculation of the mean anomaly in `solsys3.c` (line 261) - for dates prior to J2000. + not turned into a proper remainder. This affected the calculation of the mean anomaly in `solsys3.c` (line 261) + and the fundamental arguments calculted in `fund_args()` and `ee_ct()` for dates prior to J2000. Less + critically, it also was the reason `cal_date()` did not work for negative JD values. ----------------------------------------------------------------------------- diff --git a/README.md b/README.md index 1459d7c1..1bc3565c 100644 --- a/README.md +++ b/README.md @@ -130,13 +130,19 @@ provided by SuperNOVAS over the upstream NOVAS C 3.1 code: `equinox` argument was changing from 1 to 0, and back to 1 again with the date being held the same. This affected routines downstream also, such as `sidereal_time()`. - - Fixes accuracy bug in `ecl2equ_vec()`, `equ2ecl_vec()`, `geo_posvel()`, `place()`, and `sidereal_time()`, which - returned a cached value for the other accuracy if the other input parameters are the same as a prior call, - except the accuracy. + - Fixes accuracy switch bug in `cio_basis()`, `cio_location()`, `ecl2equ`, `equ2ecl_vec()`, `geo_posvel()`, + `place()`, and `sidereal_time()`. All these functions returned a cached value for the other accuracy if the other + input parameters are the same as a prior call, except the accuracy. + - Fix bug in `equ2ecl_vec()` and `ecl2equ_vec()` whereby a query with `coord_sys = 2` (GCRS) has overwritten the + cached mean obliquity value for `coord_sys = 0` (mean equinox of date). As a result, a subsequent call with + `coord_sys = 0` and the same date as before would return the results GCRS coordinates instead of the + requested mean equinox of date coordinates. + - The use of `fmod()` in NOVAS C 3.1 led to the wrong results when the numerator was negative and the result was - not turned into a proper remainder. This affected the calculation of the mean anomaly in `solsys3.c` (line 261) - for dates prior to J2000. + not turned into a proper remainder. This affected the calculation of the mean anomaly in `solsys3.c` (line 261) + and the fundamental arguments calculted in `fund_args()` and `ee_ct()` for dates prior to J2000. Less + critically, it also was the reason `cal_date()` did not work for negative JD values. ----------------------------------------------------------------------------- diff --git a/include/novas.h b/include/novas.h index c362d641..153cb3c8 100644 --- a/include/novas.h +++ b/include/novas.h @@ -750,8 +750,8 @@ int place_cirs(double jd_tt, const object *source, enum novas_accuracy accuracy, double refract_astro(const on_surface *location, enum novas_refraction_model ref_option, double zd_calc); -int light_time2(double jd_tdb, const object *ss_object, const double *pos_obs, double tlight0, enum novas_accuracy accuracy, double *pos, - double *vel, double *tlight); +int light_time2(double jd_tdb, const object *ss_object, const double *pos_obs, double tlight0, enum novas_accuracy accuracy, double *prel, + double *vsb, double *tlight); double tt2tdb(double jd_tt); diff --git a/src/novas.c b/src/novas.c index 7007a8eb..5e17cb6e 100644 --- a/src/novas.c +++ b/src/novas.c @@ -196,6 +196,8 @@ static int time_equals(double jd1, double jd2) { * @author Attila Kovacs */ int j2000_to_tod(double jd_tdb, enum novas_accuracy accuracy, const double *in, double *out) { + double v[3]; + if(!in || !out) { errno = EINVAL; return -1; @@ -206,13 +208,8 @@ int j2000_to_tod(double jd_tdb, enum novas_accuracy accuracy, const double *in, return -1; } - if(!time_equals(jd_tdb, JD_J2000)) { - double v[3]; - precession(JD_J2000, in, jd_tdb, v); - nutation(jd_tdb, NUTATE_MEAN_TO_TRUE, accuracy, v, out); - - } - else if(out != in) memcpy(out, in, XYZ_VECTOR_SIZE); + precession(JD_J2000, in, jd_tdb, v); + nutation(jd_tdb, NUTATE_MEAN_TO_TRUE, accuracy, v, out); return 0; } @@ -242,13 +239,8 @@ int tod_to_j2000(double jd_tdb, enum novas_accuracy accuracy, const double *in, return -1; } - if(time_equals(jd_tdb, JD_J2000)) { - if(out != in) memcpy(out, in, XYZ_VECTOR_SIZE); - } - else { - nutation(jd_tdb, NUTATE_TRUE_TO_MEAN, accuracy, in, out); - precession(jd_tdb, out, JD_J2000, out); - } + nutation(jd_tdb, NUTATE_TRUE_TO_MEAN, accuracy, in, out); + precession(jd_tdb, out, JD_J2000, out); return 0; } @@ -377,7 +369,6 @@ int cirs_to_gcrs(double jd_tdb, enum novas_accuracy accuracy, const double *in, short rs; int i, error; - if(!in || !out) { errno = EINVAL; return -1; @@ -1179,7 +1170,7 @@ short place(double jd_tt, const object *cel_object, const observer *location, do static double peb[3], veb[3], psb[3]; enum novas_observer_place loc; - double x, jd_tdb, pog[3] = { }, vog[3] = { }, pob[3], vob[3], pos[3] = { 0 }, vel[3], t_light, frlimb; + double x, jd_tdb, pog[3] = { }, vog[3] = { }, pob[3], vob[3], pos[3] = { 0 }, vel[3], t_light, d_sb, frlimb; observer obs; int i, error = 0; @@ -1272,23 +1263,23 @@ short place(double jd_tt, const object *cel_object, const observer *location, do // Get position of star wrt observer (corrected for parallax). bary2obs(pos, pob, pos, &t_light); output->dis = 0.0; + d_sb = vlen(pos); } else { - // Observed object is solar system body. - double jd[2] = { jd_tdb }; - double t_light0; - - // Get position of body wrt barycenter of solar system. - error = ephemeris(jd, cel_object, NOVAS_BARYCENTER, accuracy, pos, vel); - if(error) return (error + 10); - - // Get position of body wrt observer, and true (Euclidian) distance. - bary2obs(pos, pob, pos, &t_light0); + int k; // Get position of body wrt observer, antedated for light-time. - error = light_time2(jd_tdb, cel_object, pob, t_light0, accuracy, pos, vel, &t_light); + error = light_time2(jd_tdb, cel_object, pob, 0.0, accuracy, pos, vel, &t_light); if(error) return (error + 50); + // Calculate distance to Sun. + d_sb = 0.0; + for(k = 3; --k >= 0; ) { + double d = psb[k] - (pob[k] + pos[k]); + d_sb += d * d; + } + d_sb = sqrt(d_sb); + // AK: Fix for antedating distance and velocities... output->dis = t_light * C_AUDAY; } @@ -1313,22 +1304,24 @@ short place(double jd_tt, const object *cel_object, const observer *location, do // --------------------------------------------------------------------- // Compute radial velocity (all vectors in ICRS). // --------------------------------------------------------------------- - rad_vel(cel_object, pos, vel, vob, vdist(pob, peb), vdist(pob, psb), vdist(pos, psb), &output->rv); + rad_vel(cel_object, pos, vel, vob, vdist(pob, peb), vdist(pob, psb), d_sb, &output->rv); // --------------------------------------------------------------------- // Transform, if necessary, to output coordinate system. // --------------------------------------------------------------------- switch(coord_sys) { - case (NOVAS_TOD): + case (NOVAS_TOD): { // Transform to equator and equinox of date. gcrs_to_tod(jd_tdb, accuracy, pos, pos); break; + } - case (NOVAS_CIRS): + case (NOVAS_CIRS): { // Transform to equator and CIO of date. error = gcrs_to_cirs(jd_tdb, accuracy, pos, pos); if(error) return error + 80; break; + } default: // Nothing else to do. @@ -1370,8 +1363,8 @@ int equ2gal(double rai, double deci, double *glon, double *glat) { // AK: Transposed compared to NOVAS C 3.1 for dot product handling. static const double ag[3][3] = { // { -0.0548755604, -0.8734370902, -0.4838350155 }, // - { +0.4941094279, -0.4448296300, +0.7469822445 }, // - { -0.8676661490, -0.1980763734, +0.4559837762 } }; + { +0.4941094279, -0.4448296300, +0.7469822445 }, // + { -0.8676661490, -0.1980763734, +0.4559837762 } }; if(!glon || !glat) { errno = EINVAL; @@ -1406,14 +1399,14 @@ int equ2gal(double rai, double deci, double *glon, double *glat) { } /** - * Convert right ascension and declination to ecliptic longitude and latitude. To convert ICRS RA and dec to - * ecliptic coordinates (mean ecliptic and equinox of J2000.0), set 'coord_sys' to NOVAS_ICRS_EQUATOR (2); in + * Convert right ascension and declination to ecliptic longitude and latitude. To convert GCRS RA and dec to + * ecliptic coordinates (mean ecliptic and equinox of J2000.0), set 'coord_sys' to NOVAS_GCRS_EQUATOR (2); in * this case the value of 'jd_tt' can be set to anything, since J2000.0 is assumed. Otherwise, all input * coordinates are dynamical at 'jd_tt'. * - * @param jd_tt [day] Terrestrial Time (TT) based Julian date. (Unused if 'coord_sys' is NOVAS_ICRS_EQUATOR [2]) - * @param coord_sys The astrometric reference system of the coordinates. If 'coord_sys' is NOVAS_ICRS_EQUATOR (2), - * the input ICRS coordinates are converted to J2000 ecliptic coordinates. + * @param jd_tt [day] Terrestrial Time (TT) based Julian date. (Unused if 'coord_sys' is NOVAS_GCRS_EQUATOR [2]) + * @param coord_sys The astrometric reference system of the coordinates. If 'coord_sys' is NOVAS_GCRS_EQUATOR (2), + * the input GCRS coordinates are converted to J2000 ecliptic coordinates. * @param accuracy NOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1) * @param ra [h] Right ascension in hours, referred to specified equator and equinox of date. * @param dec [deg] Declination in degrees, referred to specified equator and equinox of date. @@ -1424,7 +1417,7 @@ int equ2gal(double rai, double deci, double *glon, double *glat) { short equ2ecl(double jd_tt, enum novas_equator_type coord_sys, enum novas_accuracy accuracy, double ra, double dec, double *elon, double *elat) { - double r, d, cosd, pos[3], xyproj, e; + double r, d, cosd, pos[3], xyproj; int error; // Form position vector in equatorial system from input coordinates. @@ -1443,30 +1436,26 @@ short equ2ecl(double jd_tt, enum novas_equator_type coord_sys, enum novas_accura // Decompose ecliptic vector into ecliptic longitude and latitude. xyproj = sqrt(pos[0] * pos[0] + pos[1] * pos[1]); - if(xyproj > 0.0) e = atan2(pos[1], pos[0]); - else e = 0.0; - - *elon = e / DEGREE; + *elon = (xyproj > 0.0) ? atan2(pos[1], pos[0]) / DEGREE : 0.0; if(*elon < 0.0) *elon += DEG360; - e = atan2(pos[2], xyproj); - *elat = e / DEGREE; + *elat = atan2(pos[2], xyproj) / DEGREE; return 0; } /** * Converts an equatorial position vector to an ecliptic position vector. To convert ICRS RA and dec to - * ecliptic coordinates (mean ecliptic and equinox of J2000.0), set 'coord_sys' to NOVAS_ICRS_EQUATOR (2); + * ecliptic coordinates (mean ecliptic and equinox of J2000.0), set 'coord_sys' to NOVAS_GCRS_EQUATOR (2); * in this case the value of 'jd_tt' can be set to anything, since J2000.0 is assumed. Otherwise, all input * coordinates are dynamical at 'jd_tt'. * - * @param jd_tt [day] Terrestrial Time (TT) based Julian date. (Unused if 'coord_sys' is NOVAS_ICRS_EQUATOR [2]) + * @param jd_tt [day] Terrestrial Time (TT) based Julian date. (Unused if 'coord_sys' is NOVAS_GCRS_EQUATOR [2]) * @param coord_sys The astrometric reference system type of the coordinates. * @param accuracy NOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1) * @param pos1 Position vector, referred to specified equator and equinox of date. * @param[out] pos2 Position vector, referred to specified ecliptic and equinox of date. It can be the same - * vector as the input. If 'coord_sys' is NOVAS_ICRS_EQUATOR (2), the input ICRS coordinates + * vector as the input. If 'coord_sys' is NOVAS_GCRS_EQUATOR (2), the input GCRS coordinates * are converted to J2000 ecliptic coordinates. * @return 0 if successful, -1 if either vector argument is NULL or the accuracy is invalid, or else 1 * if the value of 'coord_sys' is invalid. @@ -1496,7 +1485,7 @@ short equ2ecl_vec(double jd_tt, enum novas_equator_type coord_sys, enum novas_ac memcpy(pos0, pos1, sizeof(pos0)); - if(!time_equals(jd_tt, t_last) || accuracy != acc_last) { + if(!oblm || !time_equals(jd_tt, t_last) || accuracy != acc_last) { const double jd_tdb = jd_tt + tt2tdb(jd_tt) / DAY; // TDB date e_tilt(jd_tdb, accuracy, &oblm, &oblt, NULL, NULL, NULL); t_last = jd_tt; @@ -1507,18 +1496,18 @@ short equ2ecl_vec(double jd_tt, enum novas_equator_type coord_sys, enum novas_ac break; } - case NOVAS_GCRS_EQUATOR: /* Input: ICRS */ { + case NOVAS_GCRS_EQUATOR: /* Input: GCRS */{ static enum novas_accuracy acc_2000 = -1; static double ob2000; frame_tie(pos1, TIE_ICRS_TO_J2000, pos0); if(accuracy != acc_2000) { - e_tilt(JD_J2000, accuracy, &ob2000, NULL, NULL, NULL, NULL); + ob2000 = mean_obliq(JD_J2000); acc_2000 = accuracy; } - obl = ob2000 * DEGREE; + obl = ob2000 * ARCSEC; break; } @@ -1527,7 +1516,7 @@ short equ2ecl_vec(double jd_tt, enum novas_equator_type coord_sys, enum novas_ac } c = cos(obl); - s = sin (obl); + s = sin(obl); // Rotate position vector to ecliptic system. pos2[0] = pos0[0]; @@ -1539,10 +1528,10 @@ short equ2ecl_vec(double jd_tt, enum novas_equator_type coord_sys, enum novas_ac /** * Converts an ecliptic position vector to an equatorial position vector. To convert ecliptic coordinates - * (mean ecliptic and equinox of J2000.0) to ICRS RA and dec to, set 'coord_sys' to NOVAS_ICRS_EQUATOR (2); in this case the value of + * (mean ecliptic and equinox of J2000.0) to GCRS RA and dec to, set 'coord_sys' to NOVAS_GCRS_EQUATOR (2); in this case the value of * 'jd_tt' can be set to anything, since J2000.0 is assumed. Otherwise, all input coordinates are dynamical at 'jd_tt'. * - * @param jd_tt [day] Terrestrial Time (TT) based Julian date. (Unused if 'coord_sys' is NOVAS_ICRS_EQUATOR [2]) + * @param jd_tt [day] Terrestrial Time (TT) based Julian date. (Unused if 'coord_sys' is NOVAS_GCRS_EQUATOR [2]) * @param coord_sys The astrometric reference system type of the coordinates * @param accuracy NOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1) * @param pos1 Position vector, referred to specified ecliptic and equinox of date. @@ -1568,12 +1557,13 @@ short ecl2equ_vec(double jd_tt, enum novas_equator_type coord_sys, enum novas_ac // Get obliquity, depending upon the "system" of the input coordinates. switch(coord_sys) { - static enum novas_accuracy acc_last = -1; - static double t_last = 0.0, ob2000, oblm, oblt; - case NOVAS_MEAN_EQUATOR: // Output: mean equator and equinox of date - case NOVAS_TRUE_EQUATOR: // Output: true equator and equinox of date - if(!time_equals(jd_tt, t_last) || accuracy != acc_last) { + case NOVAS_MEAN_EQUATOR: // Output: mean equator and equinox of date + case NOVAS_TRUE_EQUATOR: { // Output: true equator and equinox of date + static enum novas_accuracy acc_last = -1; + static double t_last = 0.0, oblm, oblt; + + if(!oblm || !time_equals(jd_tt, t_last) || accuracy != acc_last) { const double jd_tdb = jd_tt + tt2tdb(jd_tt) / DAY; // TDB date e_tilt(jd_tdb, accuracy, &oblm, &oblt, NULL, NULL, NULL); t_last = jd_tt; @@ -1582,14 +1572,18 @@ short ecl2equ_vec(double jd_tt, enum novas_equator_type coord_sys, enum novas_ac obl = (coord_sys == NOVAS_MEAN_EQUATOR ? oblm : oblt) * DEGREE; break; + } + + case NOVAS_GCRS_EQUATOR: { // Output: GCRS + static double ob2000; - case NOVAS_GCRS_EQUATOR: /* Output: ICRS */ if(ob2000 == 0.0) { - e_tilt(JD_J2000, accuracy, &oblm, NULL, NULL, NULL, NULL); - ob2000 = oblm; + ob2000 = mean_obliq(JD_J2000); } - obl = ob2000 * DEGREE; + + obl = ob2000 * ARCSEC; break; + } default: return 1; @@ -2712,7 +2706,7 @@ int terra(const on_surface *location, double lst, double *pos, double *vel) { int e_tilt(double jd_tdb, enum novas_accuracy accuracy, double *mobl, double *tobl, double *ee, double *dpsi, double *deps) { static enum novas_accuracy acc_last = -1; static double jd_last = 0; - static double d_psi, d_eps, mean_ob, true_ob, eq_eq; + static double d_psi, d_eps, mean_ob, true_ob, c_terms; if(accuracy != NOVAS_FULL_ACCURACY && accuracy != NOVAS_REDUCED_ACCURACY) { errno = EINVAL; @@ -2725,30 +2719,17 @@ int e_tilt(double jd_tdb, enum novas_accuracy accuracy, double *mobl, double *to if(!time_equals(jd_tdb, jd_last) || (accuracy != acc_last)) { // Compute time in Julian centuries from epoch J2000.0. const double t = (jd_tdb - JD_J2000) / JULIAN_CENTURY_DAYS; - double dp, de, c_terms; - nutation_angles(t, accuracy, &dp, &de); + nutation_angles(t, accuracy, &d_psi, &d_eps); // Obtain complementary terms for equation of the equinoxes in arcseconds. c_terms = ee_ct(jd_tdb, 0.0, accuracy) / ARCSEC; - // Apply observed celestial pole offsets. - d_psi = dp + PSI_COR; - d_eps = de + EPS_COR; - - // Compute mean obliquity of the ecliptic in arcseconds. - mean_ob = mean_obliq(jd_tdb); - - // Compute true obliquity of the ecliptic in arcseconds. - true_ob = mean_ob + d_eps; - - // Convert obliquity values to degrees. - mean_ob /= 3600.0; - true_ob /= 3600.0; + // Compute mean obliquity of the ecliptic in degrees. + mean_ob = mean_obliq(jd_tdb) / 3600.0; - // Compute equation of the equinoxes in seconds of time. - eq_eq = d_psi * cos(mean_ob * DEGREE) + c_terms; - eq_eq /= 15.0; + // Compute true obliquity of the ecliptic in degrees. + true_ob = mean_ob + d_eps / 3600.0; // Reset the values of the last Julian date and last mode. jd_last = jd_tdb; @@ -2756,9 +2737,9 @@ int e_tilt(double jd_tdb, enum novas_accuracy accuracy, double *mobl, double *to } // Set output values. - if(dpsi) *dpsi = d_psi; - if(deps) *deps = d_eps; - if(ee) *ee = eq_eq; + if(dpsi) *dpsi = d_psi + PSI_COR; + if(deps) *deps = d_eps + EPS_COR; + if(ee) *ee = (d_psi * cos(mean_ob * DEGREE) + c_terms) / 15.0; if(mobl) *mobl = mean_ob; if(tobl) *tobl = true_ob; @@ -2811,7 +2792,7 @@ int e_tilt(double jd_tdb, enum novas_accuracy accuracy, double *mobl, double *to */ short cel_pole(double tjd, enum novas_pole_offset_type type, double dpole1, double dpole2) { switch(type) { - case (POLE_OFFSETS_DPSI_DEPS): + case POLE_OFFSETS_DPSI_DEPS: // Angular coordinates of modeled pole referred to mean ecliptic of // date, that is,delta-delta-psi and delta-delta-epsilon. @@ -2819,17 +2800,13 @@ short cel_pole(double tjd, enum novas_pole_offset_type type, double dpole1, doub EPS_COR = dpole2 * 1.0e-3; break; - case (POLE_OFFSETS_X_Y): { + case POLE_OFFSETS_X_Y: { // Components of modeled pole unit vector referred to GCRS axes, that is, dx and dy. - const double dx = dpole1; - const double dy = dpole2; - const double t = (tjd - JD_J2000) / JULIAN_CENTURY_DAYS; // Compute sin_e of mean obliquity of date. - const double mean_ob = mean_obliq(tjd); - const double sin_e = sin(mean_ob * ARCSEC); + const double sin_e = sin(mean_obliq(tjd) * ARCSEC); // The following algorithm, to transform dx and dy to // delta-delta-psi and delta-delta-epsilon, is from eqs. (7)-(9) of the @@ -2837,10 +2814,10 @@ short cel_pole(double tjd, enum novas_pole_offset_type type, double dpole1, doub // // Trivial model of pole trajectory in GCRS allows computation of dz. const double x = (2004.190 * t) * ARCSEC; - const double dz = -(x + 0.5 * x * x * x) * dx; + const double dz = -(x + 0.5 * x * x * x) * dpole1; // Form pole offset vector (observed - modeled) in GCRS. - double dp[3] = { dx * MAS, dy * MAS, dz * MAS }; + double dp[3] = { dpole1 * MAS, dpole2 * MAS, dz * MAS }; // Precess pole offset vector to mean equator and equinox of date. frame_tie(dp, TIE_ICRS_TO_J2000, dp); @@ -2896,77 +2873,79 @@ short cel_pole(double tjd, enum novas_pole_offset_type type, double dpole1, doub double ee_ct(double jd_high, double jd_low, enum novas_accuracy accuracy) { // Argument coefficients for t^0. - const char ke0_t[33][14] = { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 0, 2, -2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 0, 2, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 0, 2, -2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 1, 2, -2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 1, 2, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 0, 4, -4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 0, 1, -1, 1, 0, -8, 12, 0, 0, 0, 0, 0, 0 }, // - { 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 1, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 1, -2, 2, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 1, -2, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 0, 0, 0, 0, 0, 8, -13, 0, 0, 0, 0, 0, -1 }, // - { 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 2, 0, -2, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 1, 0, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 1, 2, -2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 1, 0, 0, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 0, 4, -2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 0, 0, 2, -2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 1, 0, -2, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // - { 1, 0, -2, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; + const char ke0_t[33][14] = { // + { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 0, 2, -2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 0, 2, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 0, 2, -2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 1, 2, -2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 1, 2, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 0, 4, -4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 0, 1, -1, 1, 0, -8, 12, 0, 0, 0, 0, 0, 0 }, // + { 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 1, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 1, -2, 2, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 1, -2, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 0, 0, 0, 0, 0, 8, -13, 0, 0, 0, 0, 0, -1 }, // + { 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 2, 0, -2, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 1, 0, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 1, 2, -2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 1, 0, 0, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 0, 4, -2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 0, 0, 2, -2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 1, 0, -2, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // + { 1, 0, -2, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; // Argument coefficients for t^1. //const char ke1[14] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // Sine and cosine coefficients for t^0. - const float se0_t[33][2] = { { +2640.96e-6, -0.39e-6 }, // - { +63.52e-6, -0.02e-6 }, // - { +11.75e-6, +0.01e-6 }, // - { +11.21e-6, +0.01e-6 }, // - { -4.55e-6, +0.00e-6 }, // - { +2.02e-6, +0.00e-6 }, // - { +1.98e-6, +0.00e-6 }, // - { -1.72e-6, +0.00e-6 }, // - { -1.41e-6, -0.01e-6 }, // - { -1.26e-6, -0.01e-6 }, // - { -0.63e-6, +0.00e-6 }, // - { -0.63e-6, +0.00e-6 }, // - { +0.46e-6, +0.00e-6 }, // - { +0.45e-6, +0.00e-6 }, // - { +0.36e-6, +0.00e-6 }, // - { -0.24e-6, -0.12e-6 }, // - { +0.32e-6, +0.00e-6 }, // - { +0.28e-6, +0.00e-6 }, // - { +0.27e-6, +0.00e-6 }, // - { +0.26e-6, +0.00e-6 }, // - { -0.21e-6, +0.00e-6 }, // - { +0.19e-6, +0.00e-6 }, // - { +0.18e-6, +0.00e-6 }, // - { -0.10e-6, +0.05e-6 }, // - { +0.15e-6, +0.00e-6 }, // - { -0.14e-6, +0.00e-6 }, // - { +0.14e-6, +0.00e-6 }, // - { -0.14e-6, +0.00e-6 }, // - { +0.14e-6, +0.00e-6 }, // - { +0.13e-6, +0.00e-6 }, // - { -0.11e-6, +0.00e-6 }, // - { +0.11e-6, +0.00e-6 }, // - { +0.11e-6, +0.00e-6 } }; + const float se0_t[33][2] = { // + { +2640.96e-6, -0.39e-6 }, // + { +63.52e-6, -0.02e-6 }, // + { +11.75e-6, +0.01e-6 }, // + { +11.21e-6, +0.01e-6 }, // + { -4.55e-6, +0.00e-6 }, // + { +2.02e-6, +0.00e-6 }, // + { +1.98e-6, +0.00e-6 }, // + { -1.72e-6, +0.00e-6 }, // + { -1.41e-6, -0.01e-6 }, // + { -1.26e-6, -0.01e-6 }, // + { -0.63e-6, +0.00e-6 }, // + { -0.63e-6, +0.00e-6 }, // + { +0.46e-6, +0.00e-6 }, // + { +0.45e-6, +0.00e-6 }, // + { +0.36e-6, +0.00e-6 }, // + { -0.24e-6, -0.12e-6 }, // + { +0.32e-6, +0.00e-6 }, // + { +0.28e-6, +0.00e-6 }, // + { +0.27e-6, +0.00e-6 }, // + { +0.26e-6, +0.00e-6 }, // + { -0.21e-6, +0.00e-6 }, // + { +0.19e-6, +0.00e-6 }, // + { +0.18e-6, +0.00e-6 }, // + { -0.10e-6, +0.05e-6 }, // + { +0.15e-6, +0.00e-6 }, // + { -0.14e-6, +0.00e-6 }, // + { +0.14e-6, +0.00e-6 }, // + { -0.14e-6, +0.00e-6 }, // + { +0.14e-6, +0.00e-6 }, // + { +0.13e-6, +0.00e-6 }, // + { -0.11e-6, +0.00e-6 }, // + { +0.11e-6, +0.00e-6 }, // + { +0.11e-6, +0.00e-6 } }; // Sine and cosine coefficients for t^1. const double se1[2] = // @@ -3173,7 +3152,7 @@ short geo_posvel(double jd_tt, double ut1_to_tt, enum novas_accuracy accuracy, c static enum novas_accuracy acc_last = -1; static double gast; - double gmst, x1, x2, x3, x4, eqeq, pos1[3], vel1[3], jd_tdb, jd_ut1; + double gmst, eqeq, pos1[3], vel1[3], jd_tdb, jd_ut1; if(!obs || pos == vel) { errno = EINVAL; @@ -3188,7 +3167,7 @@ short geo_posvel(double jd_tt, double ut1_to_tt, enum novas_accuracy accuracy, c switch(obs->where) { - case (NOVAS_OBSERVER_AT_GEOCENTER): // Observer at geocenter. Trivial case. + case NOVAS_OBSERVER_AT_GEOCENTER: // Observer at geocenter. Trivial case. if(pos) memset(pos, 0, XYZ_VECTOR_SIZE); if(vel) memset(vel, 0, XYZ_VECTOR_SIZE); return 0; @@ -3196,13 +3175,12 @@ short geo_posvel(double jd_tt, double ut1_to_tt, enum novas_accuracy accuracy, c // Other two cases: Get geocentric position and velocity vectors of // observer wrt equator and equinox of date. - case (NOVAS_OBSERVER_ON_EARTH): // Observer on surface of Earth. - + case NOVAS_OBSERVER_ON_EARTH: // Observer on surface of Earth. // Compute UT1 and sidereal time. jd_ut1 = jd_tt - (ut1_to_tt / DAY); if(!time_equals(jd_ut1, t_last) || accuracy != acc_last) { sidereal_time(jd_ut1, 0.0, ut1_to_tt, NOVAS_MEAN_EQUINOX, EROT_ERA, accuracy, &gmst); - e_tilt(jd_tdb, accuracy, &x1, &x2, &eqeq, &x3, &x4); + e_tilt(jd_tdb, accuracy, NULL, NULL, &eqeq, NULL, NULL); gast = gmst + eqeq / 3600.0; t_last = jd_ut1; acc_last = accuracy; @@ -3212,7 +3190,7 @@ short geo_posvel(double jd_tt, double ut1_to_tt, enum novas_accuracy accuracy, c terra(&obs->on_surf, gast, pos1, vel1); break; - case (NOVAS_OBSERVER_IN_EARTH_ORBIT): { // Observer on near-earth spacecraft. + case NOVAS_OBSERVER_IN_EARTH_ORBIT: { // Observer on near-earth spacecraft. int i; double ivu = DAY / AU_KM; @@ -3251,10 +3229,10 @@ short geo_posvel(double jd_tt, double ut1_to_tt, enum novas_accuracy accuracy, c * components in AU. * @param tlight0 [day] First approximation to light-time, in days (can be set to 0.0 if unknown). * @param accuracy NOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1) - * @param[out] pos [AU] Position 3-vector of body, with respect to origin at observer (or - * the geocenter), referred to ICRS axes, components in AU. - * @param[out] vel [AU/day] Velocity 3-vector of body, with respect to origin at observer (or - * the geocenter), referred to ICRS axes, components in AU/day. + * @param[out] prel [AU] Position 3-vector of body, relative to observer (or the geocenter), referred to ICRS axes, + * components in AU. + * @param[out] vsb [AU/day] Velocity 3-vector of body, with respect to the Solar-system barycenter, + * referred to ICRS axes, components in AU/day. * @param[out] tlight [day] Calculated light time * * @return 0 if successful, -1 if any of the pointer arguments is NULL or if the output vectors @@ -3266,13 +3244,13 @@ short geo_posvel(double jd_tt, double ut1_to_tt, enum novas_accuracy accuracy, c * @since 1.0 * @author Attila Kovacs */ -int light_time2(double jd_tdb, const object *ss_object, const double *pos_obs, double tlight0, enum novas_accuracy accuracy, double *pos, - double *vel, double *tlight) { +int light_time2(double jd_tdb, const object *ss_object, const double *pos_obs, double tlight0, enum novas_accuracy accuracy, double *prel, + double *vsb, double *tlight) { int iter = 0; - double tol, jd[2] = { }, t1, t2; + double tol, jd[2] = { }; - if(!ss_object || !pos_obs || pos == pos_obs || vel == pos_obs || pos == vel) { + if(!ss_object || !pos_obs || prel == pos_obs || vsb == pos_obs || prel == vsb) { errno = EINVAL; return -1; } @@ -3286,31 +3264,29 @@ int light_time2(double jd_tdb, const object *ss_object, const double *pos_obs, d tol = 1.0e-12; jd[0] = floor(jd_tdb); - t1 = jd_tdb - jd[0]; - t2 = t1 - tlight0; + jd[1] = jd_tdb - jd[0]; } else { tol = 1.0e-9; - t1 = jd_tdb; - t2 = jd_tdb - tlight0; + jd[0] = jd_tdb; } // Iterate to obtain correct light-time (usually converges rapidly). for(iter = 0; iter < 10; iter++) { int error; - double t3; + double dt = 0.0; - jd[1] = t2; - error = ephemeris(jd, ss_object, 0, accuracy, pos, vel); - if(error != 0) return (error + 10); + error = ephemeris(jd, ss_object, NOVAS_BARYCENTER, accuracy, prel, vsb); + bary2obs(prel, pos_obs, prel, tlight); - bary2obs(pos, pos_obs, pos, tlight); + if(error != 0) return (error + 10); - t3 = t1 - *tlight; - if(fabs(t3 - t2) <= tol) return 0; + dt = *tlight - tlight0; + if(fabs(dt) <= tol) return 0; - t2 = t3; + jd[1] -= dt; + tlight0 = *tlight; } return 1; @@ -3705,7 +3681,7 @@ int rad_vel(const object *cel_object, const double *pos, const double *vel, cons double d_obj_sun, double *rv) { static double c2 = C * C, toms = AU / DAY, toms2 = (AU / DAY) * (AU / DAY); - double v[3], ra, dec, radvel, posmag, uk[3], v2, vo2, r, phigeo, phisun, rel, rar, dcr, cosdec, du[3], zc, kv, zb1, kvobs, zobs1; + double v[3], posmag, uk[3], v2, vo2, r, phigeo, phisun, rel, kv, zb1, kvobs, zobs1; int i; if(!cel_object || !pos || !vel || !vel_obs || !rv) { @@ -3716,20 +3692,6 @@ int rad_vel(const object *cel_object, const double *pos, const double *vel, cons // Initialize variables needed for radial velocity calculation. memcpy(v, vel, sizeof(v)); - if(cel_object->type == NOVAS_DISTANT_OBJECT) { - /* Data for objects outside the solar system. */ - ra = cel_object->star.ra; - dec = cel_object->star.dec; - radvel = cel_object->star.radialvelocity; - - if(cel_object->star.parallax <= 0.0) memset(v, 0, sizeof(v)); - } - else { - ra = 0.0; - dec = 0.0; - radvel = 0.0; - } - // Compute length of position vector = distance to object in AU. posmag = vlen(pos); @@ -3762,30 +3724,36 @@ int rad_vel(const object *cel_object, const double *pos, const double *vel, cons // Complete radial velocity calculation. switch(cel_object->type) { - case 2: // Objects outside the solar system. + case NOVAS_DISTANT_OBJECT: { + // Objects outside the solar system. // For stars, update barycentric radial velocity measure for change // in view angle. - rar = ra * HOURANGLE; - dcr = dec * DEGREE; - cosdec = cos(dcr); - du[0] = uk[0] - (cosdec * cos(rar)); - du[1] = uk[1] - (cosdec * sin(rar)); - du[2] = uk[2] - sin(dcr); + const double ra = cel_object->star.ra * HOURANGLE; + const double dec = cel_object->star.dec * DEGREE; + const double cosdec = cos(dec); + const double radvel = cel_object->star.radialvelocity; + + double du[3], zc; + + if(cel_object->star.parallax <= 0.0) memset(v, 0, sizeof(v)); + + du[0] = uk[0] - (cosdec * cos(ra)); + du[1] = uk[1] - (cosdec * sin(ra)); + du[2] = uk[2] - sin(dec); zc = radvel * 1.0e3 + vdot(v, du) * toms; // Compute observed radial velocity measure of a star (inverse of // Lindegren & Dravins eq. (41)). zb1 = 1.0 + zc / C; - kvobs = vdot(uk, vel_obs) * toms; - zobs1 = zb1 * rel / (1.0 + kvobs / C); break; + } - case NOVAS_MAJOR_PLANET: /* Objects in the solar system */ + /* Objects in the solar system */ + case NOVAS_MAJOR_PLANET: case NOVAS_MINOR_PLANET: - default: // Compute solar potential at object, if within solar system. r = d_obj_sun * AU; - phisun = ((r > 1.0e8) && (r < 1.0e16)) ? GS / r : 0.0; + phisun = (r > 1e8 && r < 1e16) ? GS / r : 0.0; // Compute observed radial velocity measure of a planet or other // object -- including a nearby star -- where kinematic barycentric @@ -3794,10 +3762,16 @@ int rad_vel(const object *cel_object, const double *pos, const double *vel, cons // communication (2006)). kv = vdot(uk, vel) * toms; zb1 = (1.0 + kv / C) / (1.0 - phisun / c2 - 0.5 * v2 / c2); - kvobs = vdot(uk, vel_obs) * toms; - zobs1 = zb1 * rel / (1.0 + kvobs / C); + break; + + default: + errno = EBADR; + return -1; } + kvobs = vdot(uk, vel_obs) * toms; + zobs1 = zb1 * rel / (1.0 + kvobs / C); + // Convert observed radial velocity measure to kilometers/second. *rv = (zobs1 - 1.0) * C / 1000.0; @@ -3809,6 +3783,14 @@ int rad_vel(const object *cel_object, const double *pos, const double *vel, cons * another. Unlike the original NOVAS routine, this routine works * for any pairing of the time arguments. * + * NOTE: + *
    + *
  1. Unlike the original NOVAS C 3.1 version, this one does not require that one + * of the time arguments must be J2000. You can precess from any date to + * any other date, and the intermediate epoch of J2000 will be handled internally + * as needed.
  2. + *
+ * * REFERENCES: *
    *
  1. Explanatory Supplement To The Astronomical Almanac, pp. 103-104.
  2. @@ -4076,13 +4058,13 @@ int fund_args(double t, novas_fundamental_args *a) { } a->l = 485868.249036 + t * 1717915923.2178; - a->l1 = 1287104.79305 + t * 129596581.0481; + a->l1 = 1287104.793048 + t * 129596581.0481; a->F = 335779.526232 + t * 1739527262.8478; - a->D = 1072260.70369 + t * 1602961601.2090; + a->D = 1072260.703692 + t * 1602961601.2090; a->Omega = 450160.398036 - t * 6962890.5431; - // higher order terms (for uas precision) only if |t| > 0.001 - if(fabs(t) > 1e-3) { + // higher order terms (for 0.1 uas precision) only if |t| > 0.0001 + if(fabs(t) > 1e-4) { const double t2 = t * t; a->l += t2 * (31.8792 + t * (0.051635 + t * (-0.00024470))); a->l1 += t2 * (-0.5532 + t * (0.000136 + t * (-0.00001149))); @@ -4160,7 +4142,7 @@ double planet_lon(double t, enum novas_planet planet) { double accum_prec(double t) { // General precession in longitude (Simon et al. 1994), equivalent // to 5028.8200 arcsec/cy at J2000. - return remainder((0.024380407358 + 0.000005391235 * t) * t, TWOPI); + return remainder((0.000005391235 * t + 0.024380407358) * t, TWOPI); } /** @@ -4649,11 +4631,9 @@ short cio_location(double jd_tdb, enum novas_accuracy accuracy, double *ra_cio, */ short cio_basis(double jd_tdb, double ra_cio, enum novas_cio_location_type ref_sys, enum novas_accuracy accuracy, double *x, double *y, double *z) { - static enum novas_cio_location_type ref_sys_last = -1; - static double t_last = 0.0, ra_last; - static double xx[3], yy[3], zz[3]; - - + static enum novas_accuracy acc_last = -1; + static double t_last = 0.0; + static double zz[3]; if(!x || !y || !z) { errno = EINVAL; @@ -4666,18 +4646,11 @@ short cio_basis(double jd_tdb, double ra_cio, enum novas_cio_location_type ref_s } // Compute unit vector z toward celestial pole. - if(ra_cio != ra_last || !time_equals(jd_tdb, t_last) || (ref_sys != ref_sys_last)) { + if(!zz[2] || !time_equals(jd_tdb, t_last) || (accuracy != acc_last)) { const double z0[3] = { 0.0, 0.0, 1.0 }; tod_to_gcrs(jd_tdb, accuracy, z0, zz); t_last = jd_tdb; - ra_last = ra_cio; - ref_sys_last = ref_sys; - } - else { - memcpy(x, xx, sizeof(xx)); - memcpy(y, yy, sizeof(yy)); - memcpy(z, zz, sizeof(zz)); - return 0; + acc_last = accuracy; } // Now compute unit vectors x and y. Method used depends on the @@ -4685,35 +4658,46 @@ short cio_basis(double jd_tdb, double ra_cio, enum novas_cio_location_type ref_s ra_cio *= HOURANGLE; switch(ref_sys) { - double sinra, cosra, xmag; - case CIO_VS_GCRS: + case CIO_VS_GCRS: { // Compute vector x toward CIO in GCRS. - sinra = sin(ra_cio); - cosra = cos(ra_cio); - xx[0] = zz[2] * cosra; - xx[1] = zz[2] * sinra; - xx[2] = -zz[0] * cosra - zz[1] * sinra; + const double sinra = sin(ra_cio); + const double cosra = cos(ra_cio); + double l; + + x[0] = zz[2] * cosra; + x[1] = zz[2] * sinra; + x[2] = -zz[0] * cosra - zz[1] * sinra; // Normalize vector x. - xmag = vlen(xx); - xx[0] /= xmag; - xx[1] /= xmag; - xx[2] /= xmag; + l = vlen(x); + x[0] /= l; + x[1] /= l; + x[2] /= l; + break; + } - case CIO_VS_EQUINOX: + case CIO_VS_EQUINOX: { + static double last_ra = 0.0; + static double xx[3] = { 0.0, 0.0, 1.0 }; - // Construct unit vector toward CIO in equator-and-equinox-of-date - // system. - xx[0] = cos(ra_cio); - xx[1] = sin(ra_cio); - xx[2] = 0.0; + if(xx[2] || fabs(ra_cio - last_ra) > 1e-12) { + // Construct unit vector toward CIO in equator-and-equinox-of-date + // system. + xx[0] = cos(ra_cio); + xx[1] = sin(ra_cio); + xx[2] = 0.0; + + // Rotate the vector into the GCRS to form unit vector x. + tod_to_gcrs(jd_tdb, accuracy, xx, xx); + } + + memcpy(x, xx, sizeof(xx)); - // Rotate the vector into the GCRS to form unit vector x. - tod_to_gcrs(jd_tdb, accuracy, xx, xx); break; + } default: // Invalid value of 'ref_sys'. @@ -4724,13 +4708,11 @@ short cio_basis(double jd_tdb, double ra_cio, enum novas_cio_location_type ref_s } // Compute unit vector y orthogonal to x and z (y = z cross x). - yy[0] = zz[1] * xx[2] - zz[2] * xx[1]; - yy[1] = zz[2] * xx[0] - zz[0] * xx[2]; - yy[2] = zz[0] * xx[1] - zz[1] * xx[0]; + y[0] = zz[1] * x[2] - zz[2] * x[1]; + y[1] = zz[2] * x[0] - zz[0] * x[2]; + y[2] = zz[0] * x[1] - zz[1] * x[0]; - // Load the x, y, and z arrays. - memcpy(x, xx, sizeof(xx)); - memcpy(y, yy, sizeof(yy)); + // Load the z array. memcpy(z, zz, sizeof(zz)); return 0; diff --git a/src/nutation.c b/src/nutation.c index 592c0d8d..d0e06bd5 100644 --- a/src/nutation.c +++ b/src/nutation.c @@ -54,7 +54,8 @@ void iau2000a(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { // Luni-Solar argument multipliers: // L L' F D Om - static const char nals_t[678][5] = { { 0, 0, 0, 0, 1 }, // + static const char nals_t[678][5] = { // + { 0, 0, 0, 0, 1 }, // { 0, 0, 2, -2, 2 }, // { 0, 0, 2, 0, 2 }, // { 0, 0, 0, 0, 2 }, // @@ -1419,7 +1420,8 @@ void iau2000a(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { //Planetary argument multipliers: // L L' F D Om Me Ve E Ma Ju Sa Ur Ne pre - static const char napl_t[687][14] = { { 0, 0, 0, 0, 0, 0, 0, 8, -16, 4, 5, 0, 0, 0 }, // + static const char napl_t[687][14] = { // + { 0, 0, 0, 0, 0, 0, 0, 8, -16, 4, 5, 0, 0, 0 }, // { 0, 0, 0, 0, 0, 0, 0, -8, 16, -4, -5, 0, 0, 2 }, // { 0, 0, 0, 0, 0, 0, 0, 8, -16, 4, 5, 0, 0, 2 }, // { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, 2 }, // @@ -2112,7 +2114,8 @@ void iau2000a(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { // Each row of coefficients in 'cpl_t' belongs with the corresponding // row of fundamental-argument multipliers in 'napl_t'. - static const short cpl_t[687][4] = { { 1440, 0, 0, 0 }, // + static const short cpl_t[687][4] = { + { 1440, 0, 0, 0 }, // { 56, -117, -42, -40 }, // { 125, -43, 0, -54 }, // { 0, 5, 0, 0 }, // @@ -2800,16 +2803,14 @@ void iau2000a(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { { 3, 0, 0, -1 }, // { 3, 0, 0, -1 } }; - novas_fundamental_args a; - double dp, de, factor, dpsils, depsls, dpsipl, depspl; - - int i; + // Convert from 0.1 microarcsec units to radians. + const double factor = 1.0e-7 * ASEC2RAD; // Interval between fundamental epoch J2000.0 and given date. const double t = ((jd_tt_high - T0) + jd_tt_low) / 36525.0; // Planetary longitudes, Mercury through Neptune, wrt mean dynamical - // ecliptic and equinox of J2000, with high order terms omitted + // ecliptic and equinox of J2000 // (Simon et al. 1994, 5.8.1-5.8.8). const double alme = planet_lon(t, NOVAS_MERCURY); const double alve = planet_lon(t, NOVAS_VENUS); @@ -2820,20 +2821,18 @@ void iau2000a(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { const double alur = planet_lon(t, NOVAS_URANUS); const double alne = planet_lon(t, NOVAS_NEPTUNE); - // General precession in longitude (Simon et al. 1994), equivalent // to 5028.8200 arcsec/cy at J2000. const double apa = accum_prec(t); + novas_fundamental_args a; + double dpsils = 0.0, depsls = 0.0, dpsipl = 0.0, depspl = 0.0; + int i; + // Compute fundamental arguments from Simon et al. (1994), in radians. fund_args(t, &a); // ** Luni-solar nutation. ** - - // Initialize the nutation values. - dp = 0.0; - de = 0.0; - // Summation of luni-solar nutation series (in reverse order). for(i = 677; i >= 0; i--) { const char *n = &nals_t[i][0]; @@ -2852,31 +2851,20 @@ void iau2000a(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { carg = cos(arg); // Term. - dp += (c[0] + c[1] * t) * sarg + c[2] * carg; - de += (c[3] + c[4] * t) * carg + c[5] * sarg; + dpsils += (c[0] + c[1] * t) * sarg + c[2] * carg; + depsls += (c[3] + c[4] * t) * carg + c[5] * sarg; } - // Convert from 0.1 microarcsec units to radians. - factor = 1.0e-7 * ASEC2RAD; - dpsils = dp * factor; - depsls = de * factor; - - // ** Planetary nutation. ** - // Initialize the nutation values. - dp = 0.0; - de = 0.0; - // Summation of planetary nutation series (in reverse order). - for(i = 686; --i >= 0; ) { + for(i = 686; i >= 0; i--) { const char *n = &napl_t[i][0]; const short *c = &cpl_t[i][0]; // Argument and functions. double arg = 0.0, sarg, carg; - if(n[0]) arg += n[0] * a.l; if(n[1]) arg += n[1] * a.l1; if(n[2]) arg += n[2] * a.F; @@ -2896,16 +2884,13 @@ void iau2000a(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { carg = cos(arg); // Term. - dp += c[0] * sarg + c[1] * carg; - de += c[2] * sarg + c[3] * carg; + dpsipl += c[0] * sarg + c[1] * carg; + depspl += c[2] * sarg + c[3] * carg; } - dpsipl = dp * factor; - depspl = de * factor; - // Total: Add planetary and luni-solar components. - *dpsi = dpsipl + dpsils; - *deps = depspl + depsls; + *dpsi = (dpsils + dpsipl) * factor; + *deps = (depsls + depspl) * factor; return; } @@ -2948,7 +2933,8 @@ void iau2000b(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { // Luni-Solar argument multipliers: // L L' F D Om - static const char nals_t[77][5] = { { 0, 0, 0, 0, 1 }, // + static const char nals_t[77][5] = { // + { 0, 0, 0, 0, 1 }, // { 0, 0, 2, -2, 2 }, // { 0, 0, 2, 0, 2 }, // { 0, 0, 0, 0, 2 }, // @@ -3031,7 +3017,8 @@ void iau2000b(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { // Each row of coefficients in 'cls_t' belongs with the corresponding // row of fundamental-argument multipliers in 'nals_t'. - static const int32_t cls_t[77][6] = { { -172064161, -174666, 33386, 92052331, 9086, 15377 }, // + static const int32_t cls_t[77][6] = { // + { -172064161, -174666, 33386, 92052331, 9086, 15377 }, // { -13170906, -1675, -13696, 5730336, -3015, -4587 }, // { -2276413, -234, 2796, 978459, -485, 1374 }, // { 2074554, 207, -698, -897492, 470, -291 }, // @@ -3109,21 +3096,21 @@ void iau2000b(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { { 1405, 0, 4, -610, 0, 2 }, // { 1290, 0, 0, -556, 0, 0 } }; - const double dpplan = -0.000135; - const double deplan = 0.000388; - - double dp, de, factor, dpsils, depsls, dpsipl, depspl; - novas_fundamental_args a; + const double dpplan = -0.000135 * ASEC2RAD; + const double deplan = 0.000388 * ASEC2RAD; // Interval between fundamental epoch J2000.0 and given date. const double t = ((jd_tt_high - T0) + jd_tt_low) / 36525.0; + // Convert from 0.1 microarcsec units to radians. + const double factor = 1.0e-7 * ASEC2RAD; + + double dpsils = 0.0, depsls = 0.0; + novas_fundamental_args a; + // ** Luni-solar nutation. ** fund_args(t, &a); - // Initialize the nutation values. - dp = 0.0; - de = 0.0; // Summation of luni-solar nutation series (in reverse order) for(i = 76; --i >= 0; ) { @@ -3144,24 +3131,13 @@ void iau2000b(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { carg = cos(arg); // Term. - dp += (c[0] + c[1] * t) * sarg + c[2] * carg; - de += (c[3] + c[4] * t) * carg + c[5] * sarg; + dpsils += (c[0] + c[1] * t) * sarg + c[2] * carg; + depsls += (c[3] + c[4] * t) * carg + c[5] * sarg; } - // Convert from 0.1 microarcsec units to radians. - factor = 1.0e-7 * ASEC2RAD; - dpsils = dp * factor; - depsls = de * factor; - - // ** Planetary nutation. ** - - // Fixed terms to allow for long-period nutation, in radians. - dpsipl = dpplan * ASEC2RAD; - depspl = deplan * ASEC2RAD; - // Total: Add planetary and luni-solar components. - *dpsi = dpsipl + dpsils; - *deps = depspl + depsls; + *dpsi = dpsils * factor + dpplan; + *deps = depsls * factor + deplan; return; } @@ -3208,7 +3184,8 @@ void nu2000k(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { // Luni-Solar argument multipliers: // L L' F D Om - static const char nals_t[323][5] = { { 0, 0, 0, 0, 1 }, // + static const char nals_t[323][5] = { // + { 0, 0, 0, 0, 1 }, // { 0, 0, 2, -2, 2 }, // { 0, 0, 2, 0, 2 }, // { 0, 0, 0, 0, 2 }, // @@ -3537,7 +3514,8 @@ void nu2000k(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { // Each row of coefficients in 'cls_t' belongs with the corresponding // row of fundamental-argument multipliers in 'nals_t'. - static const int32_t cls_t[323][6] = { { -172064161, -174666, 33386, 92052331, 9086, 15377 }, // + static const int32_t cls_t[323][6] = { // + { -172064161, -174666, 33386, 92052331, 9086, 15377 }, // { -13170906, -1675, -13696, 5730336, -3015, -4587 }, // { -2276413, -234, 2796, 978459, -485, 1374 }, // { 2074554, 207, -698, -897492, 470, -291 }, // @@ -3863,7 +3841,8 @@ void nu2000k(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { // Planetary argument multipliers: // L L' F D Om Me Ve E Ma Ju Sa Ur Ne pre - static const char napl_t[165][14] = { { 0, 0, 0, 0, 0, 0, 0, 8, -16, 4, 5, 0, 0, 0 }, // + static const char napl_t[165][14] = { // + { 0, 0, 0, 0, 0, 0, 0, 8, -16, 4, 5, 0, 0, 0 }, // { 0, 0, 0, 0, 0, 0, 0, -8, 16, -4, -5, 0, 0, 2 }, // { 0, 0, 0, 0, 0, 0, 0, 8, -16, 4, 5, 0, 0, 2 }, // { 0, 0, 1, -1, 1, 0, 0, 3, -8, 3, 0, 0, 0, 0 }, // @@ -4034,7 +4013,8 @@ void nu2000k(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { // Each row of coefficients in 'cpl_t' belongs with the corresponding // row of fundamental-argument multipliers in 'napl_t'. - static const short cpl_t[165][4] = { { 1440, 0, 0, 0 }, // + static const short cpl_t[165][4] = { // + { 1440, 0, 0, 0 }, // { 56, -117, -42, -40 }, // { 125, -43, 0, -54 }, // { -114, 0, 0, 61 }, // @@ -4200,15 +4180,13 @@ void nu2000k(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { { 126, -63, -27, -55 }, // { -126, -63, -27, 55 } }; - novas_fundamental_args a; - - double dp, de, arg, sarg, carg, factor, dpsils, depsls, dpsipl, depspl; - - int i; // Interval between fundamental epoch J2000.0 and given date. const double t = ((jd_tt_high - T0) + jd_tt_low) / 36525.0; + // Convert from 0.1 microarcsec units to radians. + const double factor = 1.0e-7 * ASEC2RAD; + // Planetary longitudes, Mercury through Neptune, wrt mean dynamical // ecliptic and equinox of J2000, with high order terms omitted // (Simon et al. 1994, 5.8.1-5.8.8). @@ -4226,15 +4204,17 @@ void nu2000k(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { // to 5028.8200 arcsec/cy at J2000. const double apa = accum_prec(t); + novas_fundamental_args a; + + double arg, sarg, carg, dpsils = 0.0, depsls = 0.0, dpsipl = 0.0, depspl = 0.0; + + int i; + + // Compute fundamental arguments from Simon et al. (1994), in radians. fund_args(t, &a); // ** Luni-solar nutation. ** - - // Initialize the nutation values. - dp = 0.0; - de = 0.0; - // Summation of luni-solar nutation series (in reverse order). for(i = 322; i >= 0; i--) { const char *n = &nals_t[i][0]; @@ -4252,21 +4232,13 @@ void nu2000k(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { carg = cos(arg); // Term. - dp += (c[0] + c[1] * t) * sarg + c[2] * carg; - de += (c[3] + c[4] * t) * carg + c[5] * sarg; + dpsils += (c[0] + c[1] * t) * sarg + c[2] * carg; + depsls += (c[3] + c[4] * t) * carg + c[5] * sarg; } - // Convert from 0.1 microarcsec units to radians. - factor = 1.0e-7 * ASEC2RAD; - dpsils = dp * factor; - depsls = de * factor; // ** Planetary nutation. ** - // Initialize the nutation values. - dp = 0.0; - de = 0.0; - // Summation of planetary nutation series (in reverse order). for(i = 164; i >= 0; i--) { const char *n = &napl_t[i][0]; @@ -4293,16 +4265,14 @@ void nu2000k(double jd_tt_high, double jd_tt_low, double *dpsi, double *deps) { carg = cos(arg); // Term. - dp += c[0] * sarg + c[1] * carg; - de += c[2] * sarg + c[3] * carg; + dpsipl += c[0] * sarg + c[1] * carg; + depspl += c[2] * sarg + c[3] * carg; } - dpsipl = dp * factor; - depspl = de * factor; // Total: Add planetary and luni-solar components. - *dpsi = dpsipl + dpsils; - *deps = depspl + depsls; + *dpsi = (dpsipl + dpsils) * factor; + *deps = (depspl + depsls) * factor; return; } diff --git a/src/solsys3.c b/src/solsys3.c index 17f69c9d..c7caf54c 100644 --- a/src/solsys3.c +++ b/src/solsys3.c @@ -117,9 +117,7 @@ short earth_sun_calc(double jd_tdb, enum novas_planet body, enum novas_origin or // 'obl' is the obliquity of ecliptic at epoch J2000.0 in degrees. static const double obl = 23.4392794444; - - static double tlast; - static double tmass, a[3][4], b[3][4], vbary[3]; + static double tmass, a[3][4], b[3][4]; // Initialize constants. // Initial value of 'tmass' is mass of Sun plus four inner planets. @@ -129,14 +127,14 @@ short earth_sun_calc(double jd_tdb, enum novas_planet body, enum novas_origin or return -1; } - if(!tlast) { + if(!tmass) { const double oblr = obl * TWOPI / 360.0; const double se = sin(oblr); const double ce = cos(oblr); tmass = 1.0 + 5.977e-6; - for(i = 0; i < 4; i++) { + for(i = 4; --i >= 0; ) { // Compute sine and cosine of orbital angles. const double si = sin(pj[i]); const double ci = cos(pj[i]); @@ -164,8 +162,6 @@ short earth_sun_calc(double jd_tdb, enum novas_planet body, enum novas_origin or tmass += 1.0 / pm[i]; } - - tlast = -1e100; } // Check if input Julian date is within range (within 3 centuries of J2000). @@ -178,13 +174,13 @@ short earth_sun_calc(double jd_tdb, enum novas_planet body, enum novas_origin or } else if((body == 2) || (body == NOVAS_EARTH)) { /* Earth */ double p[3][3]; - for(i = 0; i < 3; i++) { + for(i = 3; --i >= 0; ) { const double qjd = jd_tdb + (double) (i - 1) * 0.1; - double ras, decs, diss, pos1[3]; + double ras, decs, diss; sun_eph(qjd, &ras, &decs, &diss); - radec2vector(ras, decs, diss, pos1); - precession(qjd, pos1, T0, position); + radec2vector(ras, decs, diss, position); + precession(qjd, position, T0, position); p[i][0] = -position[0]; p[i][1] = -position[1]; p[i][2] = -position[2]; @@ -200,16 +196,17 @@ short earth_sun_calc(double jd_tdb, enum novas_planet body, enum novas_origin or // Solar system barycenter coordinates are computed from Keplerian // approximations of the coordinates of the four largest planets. if(origin == NOVAS_BARYCENTER) { - static double pbary[3]; + static double tlast; + static double pbary[3], vbary[3]; if(fabs(jd_tdb - tlast) >= 1.0e-06) { - - for(i = 0; i < 3; i++) - pbary[i] = vbary[i] = 0.0; + memset(pbary, 0, sizeof(pbary)); + memset(vbary, 0, sizeof(vbary)); // The following loop cycles once for each of the four planets. - for(i = 0; i < 4; i++) { - double pplan[3], vplan[3], f; + for(i = 4; --i >= 0; ) { + // Compute mass factor and add in to total displacement. + const double f = 1.0 / (pm[i] * tmass); // Compute mean longitude, mean anomaly, and eccentric anomaly. const double e = pe[i]; @@ -221,24 +218,16 @@ short earth_sun_calc(double jd_tdb, enum novas_planet body, enum novas_origin or // Compute velocity factor. const double anr = pn[i] / (1.0 - e * cosu); + int k; - // Compute planet's position and velocity wrt eq & eq J2000. - pplan[0] = a[0][i] * (cosu - e) + b[0][i] * sinu; - pplan[1] = a[1][i] * (cosu - e) + b[1][i] * sinu; - pplan[2] = a[2][i] * (cosu - e) + b[2][i] * sinu; - vplan[0] = anr * (-a[0][i] * sinu + b[0][i] * cosu); - vplan[1] = anr * (-a[1][i] * sinu + b[1][i] * cosu); - vplan[2] = anr * (-a[2][i] * sinu + b[2][i] * cosu); + for (k = 3; --k >= 0; ) { + // Compute planet's position and velocity wrt eq & eq J2000. + const double p = a[k][i] * (cosu - e) + b[k][i] * sinu; + const double v = anr * (-a[k][i] * sinu + b[k][i] * cosu); - // Compute mass factor and add in to total displacement. - f = 1.0 / (pm[i] * tmass); - - pbary[0] += pplan[0] * f; - pbary[1] += pplan[1] * f; - pbary[2] += pplan[2] * f; - vbary[0] += vplan[0] * f; - vbary[1] += vplan[1] * f; - vbary[2] += vplan[2] * f; + pbary[k] += f * p; + vbary[k] += f * v; + } } tlast = jd_tdb; @@ -332,71 +321,71 @@ short earth_sun_calc_hp(const double jd_tdb[2], enum novas_planet body, enum nov * @sa earth_sun_calc() */ void sun_eph(double jd, double *ra, double *dec, double *dis) { - short i; + struct sun_con { + int l; + int r; + float alpha; + double nu; + }; double sum_lon = 0.0; double sum_r = 0.0; const double factor = 1.0e-07; double u, lon, t, emean, sin_lon; - struct sun_con { - float l; - float r; - float alpha; - float nu; - }; + int i; static const struct sun_con con[50] = { - { 403406.0, 0.0, 4.721964, 1.621043 }, // - { 195207.0, -97597.0, 5.937458, 62830.348067 }, // - { 119433.0, -59715.0, 1.115589, 62830.821524 }, // - { 112392.0, -56188.0, 5.781616, 62829.634302 }, // - { 3891.0, -1556.0, 5.5474, 125660.5691 }, // - { 2819.0, -1126.0, 1.5120, 125660.9845 }, // - { 1721.0, -861.0, 4.1897, 62832.4766 }, // - { 0.0, 941.0, 1.163, 0.813 }, // - { 660.0, -264.0, 5.415, 125659.310 }, // - { 350.0, -163.0, 4.315, 57533.850 }, // - { 334.0, 0.0, 4.553, -33.931 }, // - { 314.0, 309.0, 5.198, 777137.715 }, // - { 268.0, -158.0, 5.989, 78604.191 }, // - { 242.0, 0.0, 2.911, 5.412 }, // - { 234.0, -54.0, 1.423, 39302.098 }, // - { 158.0, 0.0, 0.061, -34.861 }, // - { 132.0, -93.0, 2.317, 115067.698 }, // - { 129.0, -20.0, 3.193, 15774.337 }, // - { 114.0, 0.0, 2.828, 5296.670 }, // - { 99.0, -47.0, 0.52, 58849.27 }, // - { 93.0, 0.0, 4.65, 5296.11 }, // - { 86.0, 0.0, 4.35, -3980.70 }, // - { 78.0, -33.0, 2.75, 52237.69 }, // - { 72.0, -32.0, 4.50, 55076.47 }, // - { 68.0, 0.0, 3.23, 261.08 }, // - { 64.0, -10.0, 1.22, 15773.85 }, // - { 46.0, -16.0, 0.14, 188491.03 }, // - { 38.0, 0.0, 3.44, -7756.55 }, // - { 37.0, 0.0, 4.37, 264.89 }, // - { 32.0, -24.0, 1.14, 117906.27 }, // - { 29.0, -13.0, 2.84, 55075.75 }, // - { 28.0, 0.0, 5.96, -7961.39 }, // - { 27.0, -9.0, 5.09, 188489.81 }, - { 27.0, 0.0, 1.72, 2132.19 }, // - { 25.0, -17.0, 2.56, 109771.03 }, // - { 24.0, -11.0, 1.92, 54868.56 }, // - { 21.0, 0.0, 0.09, 25443.93 }, // - { 21.0, 31.0, 5.98, -55731.43 }, // - { 20.0, -10.0, 4.03, 60697.74 }, // - { 18.0, 0.0, 4.27, 2132.79 }, // - { 17.0, -12.0, 0.79, 109771.63 }, // - { 14.0, 0.0, 4.24, -7752.82 }, // - { 13.0, -5.0, 2.01, 188491.91 }, // - { 13.0, 0.0, 2.65, 207.81 }, // - { 13.0, 0.0, 4.98, 29424.63 }, // - { 12.0, 0.0, 0.93, -7.99 }, // - { 10.0, 0.0, 2.21, 46941.14 }, // - { 10.0, 0.0, 3.59, -68.29 }, // - { 10.0, 0.0, 1.50, 21463.25 }, // - { 10.0, -9.0, 2.55, 157208.40 } }; + { 403406, 0, 4.721964, 1.621043 }, // + { 195207, -97597, 5.937458, 62830.348067 }, // + { 119433, -59715, 1.115589, 62830.821524 }, // + { 112392, -56188, 5.781616, 62829.634302 }, // + { 3891, -1556, 5.5474, 125660.5691 }, // + { 2819, -1126, 1.5120, 125660.9845 }, // + { 1721, -861, 4.1897, 62832.4766 }, // + { 0, 941, 1.163, 0.813 }, // + { 660, -264, 5.415, 125659.310 }, // + { 350, -163, 4.315, 57533.850 }, // + { 334, 0, 4.553, -33.931 }, // + { 314, 309, 5.198, 777137.715 }, // + { 268, -158, 5.989, 78604.191 }, // + { 242, 0, 2.911, 5.412 }, // + { 234, -54, 1.423, 39302.098 }, // + { 158, 0, 0.061, -34.861 }, // + { 132, -93, 2.317, 115067.698 }, // + { 129, -20, 3.193, 15774.337 }, // + { 114, 0, 2.828, 5296.670 }, // + { 99, -47, 0.52, 58849.27 }, // + { 93, 0, 4.65, 5296.11 }, // + { 86, 0, 4.35, -3980.70 }, // + { 78, -33, 2.75, 52237.69 }, // + { 72, -32, 4.50, 55076.47 }, // + { 68, 0, 3.23, 261.08 }, // + { 64, -10, 1.22, 15773.85 }, // + { 46, -16, 0.14, 188491.03 }, // + { 38, 0, 3.44, -7756.55 }, // + { 37, 0, 4.37, 264.89 }, // + { 32, -24, 1.14, 117906.27 }, // + { 29, -13, 2.84, 55075.75 }, // + { 28, 0, 5.96, -7961.39 }, // + { 27, -9, 5.09, 188489.81 }, + { 27, 0, 1.72, 2132.19 }, // + { 25, -17, 2.56, 109771.03 }, // + { 24, -11, 1.92, 54868.56 }, // + { 21, 0, 0.09, 25443.93 }, // + { 21, 31, 5.98, -55731.43 }, // + { 20, -10, 4.03, 60697.74 }, // + { 18, 0, 4.27, 2132.79 }, // + { 17, -12, 0.79, 109771.63 }, // + { 14, 0, 4.24, -7752.82 }, // + { 13, -5, 2.01, 188491.91 }, // + { 13, 0, 2.65, 207.81 }, // + { 13, 0, 4.98, 29424.63 }, // + { 12, 0, 0.93, -7.99 }, // + { 10, 0, 2.21, 46941.14 }, // + { 10, 0, 3.59, -68.29 }, // + { 10, 0, 1.50, 21463.25 }, // + { 10, -9, 2.55, 157208.40 } }; // Define the time units 'u', measured in units of 10000 Julian years // from J2000.0, and 't', measured in Julian centuries from J2000.0. @@ -404,10 +393,11 @@ void sun_eph(double jd, double *ra, double *dec, double *dis) { t = u * 100.0; // Compute longitude and distance terms from the series. - for(i = 0; i < 50; i++) { - const double arg = con[i].alpha + con[i].nu * u; - sum_lon += con[i].l * sin(arg); - sum_r += con[i].r * cos(arg); + for(i = 50; --i >= 0; ) { + const struct sun_con *c = &con[i]; + const double arg = c->alpha + c->nu * u; + sum_lon += c->l * sin(arg); + if(c->r) sum_r += c->r * cos(arg); } // Compute longitude, latitude, and distance referred to mean equinox diff --git a/test/novasc3.1/cel2ter.out b/test/novasc3.1/cel2ter.out index c3063d05..6da4b827 100644 --- a/test/novasc3.1/cel2ter.out +++ b/test/novasc3.1/cel2ter.out @@ -1,35 +1,35 @@ --10000.0 22+20 S2 O0 A0: ERA GCRS -0.935838206 -0.093233508 0.339874044 +-10000.0 22+20 S2 O0 A0: ERA GCRS -0.935838202 -0.093233512 0.339874054 --10000.0 22+20 S2 O0 A0: GST GCRS -0.935838206 -0.093233508 0.339874044 +-10000.0 22+20 S2 O0 A0: GST GCRS -0.935838202 -0.093233512 0.339874054 --10000.0 16-20 S2 O0 A0: ERA GCRS -0.091982633 0.935627669 -0.340793280 +-10000.0 16-20 S2 O0 A0: ERA GCRS -0.091982636 0.935627673 -0.340793270 --10000.0 16-20 S2 O0 A0: GST GCRS -0.091982633 0.935627669 -0.340793280 +-10000.0 16-20 S2 O0 A0: GST GCRS -0.091982636 0.935627673 -0.340793270 - 0.0 22+20 S2 O0 A0: ERA GCRS 0.609782525 0.714977972 0.342011362 + 0.0 22+20 S2 O0 A0: ERA GCRS 0.609782519 0.714977972 0.342011372 - 0.0 22+20 S2 O0 A0: GST GCRS 0.609782525 0.714977972 0.342011362 + 0.0 22+20 S2 O0 A0: GST GCRS 0.609782519 0.714977972 0.342011372 - 0.0 16-20 S2 O0 A0: ERA GCRS 0.714974910 -0.609801067 -0.341984702 + 0.0 16-20 S2 O0 A0: ERA GCRS 0.714974915 -0.609801066 -0.341984692 - 0.0 16-20 S2 O0 A0: GST GCRS 0.714974910 -0.609801067 -0.341984702 + 0.0 16-20 S2 O0 A0: GST GCRS 0.714974915 -0.609801066 -0.341984692 - 10000.0 22+20 S2 O0 A0: ERA GCRS 0.055487009 -0.937259010 0.344189977 + 10000.0 22+20 S2 O0 A0: ERA GCRS 0.055487012 -0.937259006 0.344189987 - 10000.0 22+20 S2 O0 A0: GST GCRS 0.055487009 -0.937259010 0.344189977 + 10000.0 22+20 S2 O0 A0: GST GCRS 0.055487012 -0.937259006 0.344189987 - 10000.0 16-20 S2 O0 A0: ERA GCRS -0.937510303 -0.056762395 -0.343296463 + 10000.0 16-20 S2 O0 A0: ERA GCRS -0.937510307 -0.056762399 -0.343296453 - 10000.0 16-20 S2 O0 A0: GST GCRS -0.937510303 -0.056762395 -0.343296463 + 10000.0 16-20 S2 O0 A0: GST GCRS -0.937510307 -0.056762399 -0.343296453 - 10000.0 22+20 S2 O0 A0: ERA GCRS 0.055487009 -0.937259010 0.344189977 + 10000.0 22+20 S2 O0 A0: ERA GCRS 0.055487012 -0.937259006 0.344189987 - 10000.0 22+20 S2 O0 A0: GST GCRS 0.055487009 -0.937259010 0.344189977 + 10000.0 22+20 S2 O0 A0: GST GCRS 0.055487012 -0.937259006 0.344189987 - 10000.0 16-20 S2 O0 A0: ERA GCRS -0.937510303 -0.056762395 -0.343296463 + 10000.0 16-20 S2 O0 A0: ERA GCRS -0.937510307 -0.056762399 -0.343296453 - 10000.0 16-20 S2 O0 A0: GST GCRS -0.937510303 -0.056762395 -0.343296463 + 10000.0 16-20 S2 O0 A0: GST GCRS -0.937510307 -0.056762399 -0.343296453 -10000.0 22+20 S2 O0 A1: ERA GCRS -0.935838 -0.093234 0.339874 diff --git a/test/novasc3.1/cel_pole.out b/test/novasc3.1/cel_pole.out index 28b4c703..6035421d 100644 --- a/test/novasc3.1/cel_pole.out +++ b/test/novasc3.1/cel_pole.out @@ -1,16 +1,16 @@ --10000.0 A0: XY 16.415313 4.048559 16.415313 4.048559 -10000.0 A0: PE 16.415313 4.048559 16.413313 4.051559 - 0.0 A0: XY -13.933996 -5.766398 -13.933996 -5.766398 +-10000.0 A0: XY 16.415313 4.048559 16.410332 4.051572 0.0 A0: PE -13.931996 -5.769398 -13.933996 -5.766398 - 10000.0 A0: XY 10.600901 6.298105 10.600901 6.298105 + 0.0 A0: XY -13.931996 -5.769398 -13.937024 -5.766398 10000.0 A0: PE 10.602901 6.295105 10.600901 6.298105 - 10000.0 A0: XY 10.600901 6.298105 10.600901 6.298105 + 10000.0 A0: XY 10.602901 6.295105 10.597826 6.298093 10000.0 A0: PE 10.602901 6.295105 10.600901 6.298105 --10000.0 A1: XY 16.413324 4.051553 16.413324 4.051553 + 10000.0 A0: XY 10.602901 6.295105 10.597826 6.298093 -10000.0 A1: PE 16.415324 4.048553 16.413324 4.051553 - 0.0 A1: XY -13.933977 -5.766410 -13.933977 -5.766410 +-10000.0 A1: XY 16.415324 4.048553 16.410343 4.051566 0.0 A1: PE -13.931977 -5.769410 -13.933977 -5.766410 - 10000.0 A1: XY 10.600913 6.298092 10.600913 6.298092 + 0.0 A1: XY -13.931977 -5.769410 -13.937004 -5.766410 10000.0 A1: PE 10.602913 6.295092 10.600913 6.298092 - 10000.0 A1: XY 10.600913 6.298092 10.600913 6.298092 + 10000.0 A1: XY 10.602913 6.295092 10.597838 6.298080 10000.0 A1: PE 10.602913 6.295092 10.600913 6.298092 + 10000.0 A1: XY 10.602913 6.295092 10.597838 6.298080 diff --git a/test/novasc3.1/cio_basis.out b/test/novasc3.1/cio_basis.out index f13a89a7..1ad448b7 100644 --- a/test/novasc3.1/cio_basis.out +++ b/test/novasc3.1/cio_basis.out @@ -1,8 +1,8 @@ --10000.0 A0: 0.999996542 -0.000073008 0.002628939 0.000073039 0.999999997 -0.000011501 -0.002628938 0.000011693 0.999996544 - 0.0 A0: 0.999999998 0.000061979 0.000026952 -0.000061980 0.999999998 0.000027989 -0.000026950 -0.000027990 0.999999999 - 10000.0 A0: 0.999996406 -0.000047153 -0.002680630 0.000047093 0.999999999 -0.000022324 0.002680631 0.000022198 0.999996407 - 10000.0 A0: 0.999996406 -0.000047153 -0.002680630 0.000047093 0.999999999 -0.000022324 0.002680631 0.000022198 0.999996407 --10000.0 A1: 0.999997 -0.000073 0.002629 0.000073 1.000000 -0.000012 -0.002629 0.000012 0.999997 - 0.0 A1: 1.000000 0.000062 0.000027 -0.000062 1.000000 0.000028 -0.000027 -0.000028 1.000000 - 10000.0 A1: 0.999996 -0.000047 -0.002681 0.000047 1.000000 -0.000022 0.002681 0.000022 0.999996 - 10000.0 A1: 0.999996 -0.000047 -0.002681 0.000047 1.000000 -0.000022 0.002681 0.000022 0.999996 +-10000.0 A0: 2 0.999996544 -0.000000014 0.002628934 0.000000045 1.000000000 -0.000011678 -0.002628934 0.000011678 0.999996544 + 0.0 A0: 2 1.000000000 0.000000010 0.000026946 -0.000000011 1.000000000 0.000028005 -0.000026946 -0.000028005 0.999999999 + 10000.0 A0: 2 0.999996407 -0.000000007 -0.002680635 -0.000000052 1.000000000 -0.000022183 0.002680635 0.000022183 0.999996407 + 10000.0 A0: 2 0.999996407 -0.000000007 -0.002680635 -0.000000052 1.000000000 -0.000022183 0.002680635 0.000022183 0.999996407 +-10000.0 A1: 2 0.999997 -0.000000 0.002629 0.000000 1.000000 -0.000012 -0.002629 0.000012 0.999997 + 0.0 A1: 2 1.000000 0.000000 0.000027 -0.000000 1.000000 0.000028 -0.000027 -0.000028 1.000000 + 10000.0 A1: 2 0.999996 -0.000000 -0.002681 -0.000000 1.000000 -0.000022 0.002681 0.000022 0.999996 + 10000.0 A1: 2 0.999996 -0.000000 -0.002681 -0.000000 1.000000 -0.000022 0.002681 0.000022 0.999996 diff --git a/test/novasc3.1/cio_location.out b/test/novasc3.1/cio_location.out index 6964f7b2..ad8a1d0b 100644 --- a/test/novasc3.1/cio_location.out +++ b/test/novasc3.1/cio_location.out @@ -1,8 +1,8 @@ --10000.0 A0: 2 -0.023381867 2 -0.023381867 - 0.0 A0: 2 0.000000269 2 0.000000269 - 10000.0 A0: 2 0.023386268 2 0.023386268 - 10000.0 A0: 2 0.023386268 2 0.023386268 --10000.0 A1: 2 -0.023381867 2 -0.023381867 - 0.0 A1: 2 0.000000269 2 0.000000269 - 10000.0 A1: 2 0.023386268 2 0.023386268 - 10000.0 A1: 2 0.023386268 2 0.023386268 +-10000.0 A0: 2 -0.023103017 2 -0.023103017 + 0.0 A0: 2 -0.000236403 2 -0.000236403 + 10000.0 A0: 2 0.023566385 2 0.023566385 + 10000.0 A0: 2 0.023566385 2 0.023566385 +-10000.0 A1: 2 -0.023103017 2 -0.023103017 + 0.0 A1: 2 -0.000236402 2 -0.000236402 + 10000.0 A1: 2 0.023566385 2 0.023566385 + 10000.0 A1: 2 0.023566385 2 0.023566385 diff --git a/test/novasc3.1/cio_ra.out b/test/novasc3.1/cio_ra.out index 72346cdd..08da9b5b 100644 --- a/test/novasc3.1/cio_ra.out +++ b/test/novasc3.1/cio_ra.out @@ -1,8 +1,8 @@ --10000.0 A0: -1 -0.023103051 - 0.0 A0: -1 0.000000269 - 10000.0 A0: -1 0.023566351 - 10000.0 A0: -1 0.023566351 --10000.0 A1: -1 -0.023103051 - 0.0 A1: -1 0.000000269 - 10000.0 A1: -1 0.023566351 - 10000.0 A1: -1 0.023566351 +-10000.0 A0: -1 -0.023103017 + 0.0 A0: -1 -0.000236403 + 10000.0 A0: -1 0.023566385 + 10000.0 A0: -1 0.023566385 +-10000.0 A1: -1 -0.023103017 + 0.0 A1: -1 -0.000236402 + 10000.0 A1: -1 0.023566385 + 10000.0 A1: -1 0.023566385 diff --git a/test/novasc3.1/e_tilt.out b/test/novasc3.1/e_tilt.out index cac3362e..9593548c 100644 --- a/test/novasc3.1/e_tilt.out +++ b/test/novasc3.1/e_tilt.out @@ -1,8 +1,8 @@ -10000.0 A0: 23.442841 23.443966 1.003860 16.415313 4.048559 - 0.0 A0: 23.439279 23.437678 -0.852139 -13.933996 -5.766398 - 10000.0 A0: 23.435717 23.437467 0.648300 10.600901 6.298105 - 10000.0 A0: 23.435717 23.437467 0.648300 10.600901 6.298105 --10000.0 A1: 23.442841 23.443967 1.003738 16.413324 4.051553 - 0.0 A1: 23.439279 23.437678 -0.852138 -13.933977 -5.766410 - 10000.0 A1: 23.435717 23.437467 0.648301 10.600913 6.298092 - 10000.0 A1: 23.435717 23.437467 0.648301 10.600913 6.298092 + 0.0 A0: 23.439279 23.437677 -0.852017 -13.931996 -5.769398 + 10000.0 A0: 23.435717 23.437466 0.648422 10.602901 6.295105 + 10000.0 A0: 23.435717 23.437466 0.648422 10.602901 6.295105 +-10000.0 A1: 23.442841 23.443966 1.003860 16.415324 4.048553 + 0.0 A1: 23.439279 23.437677 -0.852016 -13.931977 -5.769410 + 10000.0 A1: 23.435717 23.437466 0.648423 10.602913 6.295092 + 10000.0 A1: 23.435717 23.437466 0.648423 10.602913 6.295092 diff --git a/test/novasc3.1/ecl2equ_vec.out b/test/novasc3.1/ecl2equ_vec.out index c74cf144..960fcc51 100644 --- a/test/novasc3.1/ecl2equ_vec.out +++ b/test/novasc3.1/ecl2equ_vec.out @@ -1,49 +1,49 @@ -10000.0 22+20 S2 O0 A0: mean 0.813797681 -0.567131224 0.126868075 --10000.0 22+20 S2 O0 A0: true 0.813797681 -0.567133716 0.126856935 +-10000.0 22+20 S2 O0 A0: true 0.813797681 -0.567133714 0.126856944 -10000.0 22+20 S2 O0 A0: gcrs 0.813797631 -0.567123398 0.126903380 --10000.0 16-20 S2 O0 A0: mean -0.469846310 -0.610597105 -0.637507349 +-10000.0 16-20 S2 O0 A0: mean -0.469846310 -0.610557471 -0.637545308 --10000.0 16-20 S2 O0 A0: true -0.469846310 -0.610544948 -0.637557301 +-10000.0 16-20 S2 O0 A0: true -0.469846310 -0.610544957 -0.637557292 -10000.0 16-20 S2 O0 A0: gcrs -0.469846302 -0.610597050 -0.637507407 0.0 22+20 S2 O0 A0: mean 0.813797681 -0.567123336 0.126903333 - 0.0 22+20 S2 O0 A0: true 0.813797681 -0.567119788 0.126919187 + 0.0 22+20 S2 O0 A0: true 0.813797681 -0.567119786 0.126919196 0.0 22+20 S2 O0 A0: gcrs 0.813797631 -0.567123398 0.126903380 0.0 16-20 S2 O0 A0: mean -0.469846310 -0.610597105 -0.637507349 - 0.0 16-20 S2 O0 A0: true -0.469846310 -0.610614927 -0.637490279 + 0.0 16-20 S2 O0 A0: true -0.469846310 -0.610614936 -0.637490270 0.0 16-20 S2 O0 A0: gcrs -0.469846302 -0.610597050 -0.637507407 10000.0 22+20 S2 O0 A0: mean 0.813797681 -0.567115445 0.126938590 - 10000.0 22+20 S2 O0 A0: true 0.813797681 -0.567119321 0.126921273 + 10000.0 22+20 S2 O0 A0: true 0.813797681 -0.567119319 0.126921282 10000.0 22+20 S2 O0 A0: gcrs 0.813797631 -0.567123398 0.126903380 10000.0 16-20 S2 O0 A0: mean -0.469846310 -0.610636736 -0.637469388 - 10000.0 16-20 S2 O0 A0: true -0.469846310 -0.610617272 -0.637488033 + 10000.0 16-20 S2 O0 A0: true -0.469846310 -0.610617281 -0.637488024 10000.0 16-20 S2 O0 A0: gcrs -0.469846302 -0.610597050 -0.637507407 10000.0 22+20 S2 O0 A0: mean 0.813797681 -0.567115445 0.126938590 - 10000.0 22+20 S2 O0 A0: true 0.813797681 -0.567119321 0.126921273 + 10000.0 22+20 S2 O0 A0: true 0.813797681 -0.567119319 0.126921282 10000.0 22+20 S2 O0 A0: gcrs 0.813797631 -0.567123398 0.126903380 10000.0 16-20 S2 O0 A0: mean -0.469846310 -0.610636736 -0.637469388 - 10000.0 16-20 S2 O0 A0: true -0.469846310 -0.610617272 -0.637488033 + 10000.0 16-20 S2 O0 A0: true -0.469846310 -0.610617281 -0.637488024 10000.0 16-20 S2 O0 A0: gcrs -0.469846302 -0.610597050 -0.637507407 diff --git a/test/novasc3.1/ephemeris.out b/test/novasc3.1/ephemeris.out index 2bde7d20..a5e2aa8a 100644 --- a/test/novasc3.1/ephemeris.out +++ b/test/novasc3.1/ephemeris.out @@ -14,35 +14,35 @@ 10000.0 A0: ERROR 13 10000.0 A0: ERROR 13 10000.0 A0: ERROR 13 --10000.0 A1: SUN 0 -0.000009 0.003773 0.001651 -0.000006 -0.000001 -0.000001 +-10000.0 A1: SUN 3 -0.000009 0.003773 0.001651 -0.009747 -0.002548 -0.000896 --10000.0 A1: SUN 1 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 +-10000.0 A1: SUN 3 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 --10000.0 A1: EARTH 0 0.810058 -0.553762 -0.240106 0.010034 0.012571 0.005451 +-10000.0 A1: EARTH 3 0.810058 -0.553762 -0.240106 17.374036 21.766877 9.439017 --10000.0 A1: EARTH 1 0.810068 -0.557535 -0.241757 0.010040 0.012573 0.005452 +-10000.0 A1: EARTH 3 0.810068 -0.557535 -0.241757 17.383783 21.769425 9.439914 - 0.0 A1: SUN 0 -0.007138 -0.002644 -0.000921 0.000005 -0.000007 -0.000003 + 0.0 A1: SUN 3 -0.007138 -0.002644 -0.000921 0.009234 -0.011779 -0.005287 - 0.0 A1: SUN 1 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.0 A1: SUN 3 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - 0.0 A1: EARTH 0 -0.184271 0.884782 0.383824 -0.017202 -0.002904 -0.001259 + 0.0 A1: EARTH 3 -0.184271 0.884782 0.383824 -29.784950 -5.028997 -2.180527 - 0.0 A1: EARTH 1 -0.177134 0.887425 0.384746 -0.017208 -0.002898 -0.001256 + 0.0 A1: EARTH 3 -0.177134 0.887425 0.384746 -29.794184 -5.017218 -2.175240 - 10000.0 A1: SUN 0 -0.000010 -0.004018 -0.001669 0.000005 0.000004 0.000002 + 10000.0 A1: SUN 3 -0.000010 -0.004018 -0.001669 0.007845 0.006630 0.002675 - 10000.0 A1: SUN 1 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 10000.0 A1: SUN 3 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - 10000.0 A1: EARTH 0 -0.537235 -0.790493 -0.342586 0.014297 -0.008434 -0.003656 + 10000.0 A1: EARTH 3 -0.537235 -0.790493 -0.342586 24.755316 -14.602263 -6.330115 - 10000.0 A1: EARTH 1 -0.537226 -0.786475 -0.340917 0.014293 -0.008437 -0.003657 + 10000.0 A1: EARTH 3 -0.537226 -0.786475 -0.340917 24.747471 -14.608892 -6.332790 - 10000.0 A1: SUN 0 -0.000010 -0.004018 -0.001669 0.000005 0.000004 0.000002 + 10000.0 A1: SUN 3 -0.000010 -0.004018 -0.001669 0.007845 0.006630 0.002675 - 10000.0 A1: SUN 1 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 10000.0 A1: SUN 3 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - 10000.0 A1: EARTH 0 -0.537235 -0.790493 -0.342586 0.014297 -0.008434 -0.003656 + 10000.0 A1: EARTH 3 -0.537235 -0.790493 -0.342586 24.755316 -14.602263 -6.330115 - 10000.0 A1: EARTH 1 -0.537226 -0.786475 -0.340917 0.014293 -0.008437 -0.003657 + 10000.0 A1: EARTH 3 -0.537226 -0.786475 -0.340917 24.747471 -14.608892 -6.332790 diff --git a/test/novasc3.1/equ2ecl.out b/test/novasc3.1/equ2ecl.out index d9d4c824..26133d2c 100644 --- a/test/novasc3.1/equ2ecl.out +++ b/test/novasc3.1/equ2ecl.out @@ -1,11 +1,11 @@ -10000.0 22+20 S2 O0 A0: mean 340.074726 30.046968 --10000.0 22+20 S2 O0 A0: true 340.075338 30.047352 +-10000.0 22+20 S2 O0 A0: true 340.075337 30.047351 -10000.0 22+20 S2 O0 A0: gcrs 340.072793 30.045749 --10000.0 16-20 S2 O0 A0: mean 241.974181 0.567960 +-10000.0 16-20 S2 O0 A0: mean 241.974164 0.571104 -10000.0 16-20 S2 O0 A0: true 241.974159 0.572097 @@ -13,13 +13,13 @@ 0.0 22+20 S2 O0 A0: mean 340.072789 30.045754 - 0.0 22+20 S2 O0 A0: true 340.071918 30.045208 + 0.0 22+20 S2 O0 A0: true 340.071917 30.045208 0.0 22+20 S2 O0 A0: gcrs 340.072793 30.045749 0.0 16-20 S2 O0 A0: mean 241.974181 0.567960 - 0.0 16-20 S2 O0 A0: true 241.974188 0.566546 + 0.0 16-20 S2 O0 A0: true 241.974188 0.566545 0.0 16-20 S2 O0 A0: gcrs 241.974183 0.567964 @@ -31,7 +31,7 @@ 10000.0 16-20 S2 O0 A0: mean 241.974197 0.564815 - 10000.0 16-20 S2 O0 A0: true 241.974189 0.566360 + 10000.0 16-20 S2 O0 A0: true 241.974189 0.566359 10000.0 16-20 S2 O0 A0: gcrs 241.974183 0.567964 @@ -43,13 +43,13 @@ 10000.0 16-20 S2 O0 A0: mean 241.974197 0.564815 - 10000.0 16-20 S2 O0 A0: true 241.974189 0.566360 + 10000.0 16-20 S2 O0 A0: true 241.974189 0.566359 10000.0 16-20 S2 O0 A0: gcrs 241.974183 0.567964 -10000.0 22+20 S2 O0 A1: mean 340.074726 30.046968 --10000.0 22+20 S2 O0 A1: true 340.075338 30.047352 +-10000.0 22+20 S2 O0 A1: true 340.075337 30.047351 -10000.0 22+20 S2 O0 A1: gcrs 340.072793 30.045749 @@ -61,13 +61,13 @@ 0.0 22+20 S2 O0 A1: mean 340.072789 30.045754 - 0.0 22+20 S2 O0 A1: true 340.071918 30.045208 + 0.0 22+20 S2 O0 A1: true 340.071917 30.045208 0.0 22+20 S2 O0 A1: gcrs 340.072793 30.045749 0.0 16-20 S2 O0 A1: mean 241.974181 0.567960 - 0.0 16-20 S2 O0 A1: true 241.974188 0.566546 + 0.0 16-20 S2 O0 A1: true 241.974188 0.566545 0.0 16-20 S2 O0 A1: gcrs 241.974183 0.567964 @@ -79,7 +79,7 @@ 10000.0 16-20 S2 O0 A1: mean 241.974197 0.564815 - 10000.0 16-20 S2 O0 A1: true 241.974189 0.566360 + 10000.0 16-20 S2 O0 A1: true 241.974189 0.566359 10000.0 16-20 S2 O0 A1: gcrs 241.974183 0.567964 @@ -91,6 +91,6 @@ 10000.0 16-20 S2 O0 A1: mean 241.974197 0.564815 - 10000.0 16-20 S2 O0 A1: true 241.974189 0.566360 + 10000.0 16-20 S2 O0 A1: true 241.974189 0.566359 10000.0 16-20 S2 O0 A1: gcrs 241.974183 0.567964 diff --git a/test/novasc3.1/equ2hor-refract.out b/test/novasc3.1/equ2hor-refract.out index 7aa21d37..c9bf1fd0 100644 --- a/test/novasc3.1/equ2hor-refract.out +++ b/test/novasc3.1/equ2hor-refract.out @@ -1,32 +1,32 @@ --10000.0 22+20 S2 O1 A0: 135.019352 331.536702 22.000000 20.000000 +-10000.0 22+20 S2 O1 A0: 135.019352 331.536703 22.000000 20.000000 -10000.0 16-20 S2 O1 A0: 115.693174 103.225975 16.000000 -20.000000 - 0.0 22+20 S2 O1 A0: 60.200403 77.812648 21.998001 20.006084 + 0.0 22+20 S2 O1 A0: 60.200402 77.812648 21.998001 20.006084 - 0.0 16-20 S2 O1 A0: 47.114316 213.442327 16.000697 -19.985117 + 0.0 16-20 S2 O1 A0: 47.114316 213.442328 16.000697 -19.985117 - 10000.0 22+20 S2 O1 A0: 66.958900 283.939459 22.002662 20.009308 + 10000.0 22+20 S2 O1 A0: 66.958900 283.939460 22.002662 20.009308 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 - 10000.0 22+20 S2 O1 A0: 66.958900 283.939459 22.002662 20.009308 + 10000.0 22+20 S2 O1 A0: 66.958900 283.939460 22.002662 20.009308 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 --10000.0 22+20 S2 O1 A1: 135.019352 331.536702 22.000000 20.000000 +-10000.0 22+20 S2 O1 A1: 135.019352 331.536703 22.000000 20.000000 -10000.0 16-20 S2 O1 A1: 115.693174 103.225975 16.000000 -20.000000 - 0.0 22+20 S2 O1 A1: 60.200403 77.812648 21.998001 20.006084 + 0.0 22+20 S2 O1 A1: 60.200402 77.812648 21.998001 20.006084 - 0.0 16-20 S2 O1 A1: 47.114316 213.442327 16.000697 -19.985117 + 0.0 16-20 S2 O1 A1: 47.114316 213.442328 16.000697 -19.985117 - 10000.0 22+20 S2 O1 A1: 66.958900 283.939459 22.002662 20.009308 + 10000.0 22+20 S2 O1 A1: 66.958900 283.939460 22.002662 20.009308 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 - 10000.0 22+20 S2 O1 A1: 66.958900 283.939459 22.002662 20.009308 + 10000.0 22+20 S2 O1 A1: 66.958900 283.939460 22.002662 20.009308 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 diff --git a/test/novasc3.1/equ2hor.out b/test/novasc3.1/equ2hor.out index 11bf1f89..88452252 100644 --- a/test/novasc3.1/equ2hor.out +++ b/test/novasc3.1/equ2hor.out @@ -1,32 +1,32 @@ --10000.0 22+20 S2 O1 A0: 135.019352 331.536702 22.000000 20.000000 +-10000.0 22+20 S2 O1 A0: 135.019352 331.536703 22.000000 20.000000 -10000.0 16-20 S2 O1 A0: 115.693174 103.225975 16.000000 -20.000000 - 0.0 22+20 S2 O1 A0: 60.229235 77.812648 22.000000 20.000000 + 0.0 22+20 S2 O1 A0: 60.229234 77.812648 22.000000 20.000000 - 0.0 16-20 S2 O1 A0: 47.132151 213.442327 16.000000 -20.000000 + 0.0 16-20 S2 O1 A0: 47.132152 213.442328 16.000000 -20.000000 - 10000.0 22+20 S2 O1 A0: 66.997559 283.939459 22.000000 20.000000 + 10000.0 22+20 S2 O1 A0: 66.997559 283.939460 22.000000 20.000000 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 - 10000.0 22+20 S2 O1 A0: 66.997559 283.939459 22.000000 20.000000 + 10000.0 22+20 S2 O1 A0: 66.997559 283.939460 22.000000 20.000000 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 --10000.0 22+20 S2 O1 A1: 135.019352 331.536702 22.000000 20.000000 +-10000.0 22+20 S2 O1 A1: 135.019352 331.536703 22.000000 20.000000 -10000.0 16-20 S2 O1 A1: 115.693174 103.225975 16.000000 -20.000000 - 0.0 22+20 S2 O1 A1: 60.229235 77.812648 22.000000 20.000000 + 0.0 22+20 S2 O1 A1: 60.229234 77.812648 22.000000 20.000000 - 0.0 16-20 S2 O1 A1: 47.132151 213.442327 16.000000 -20.000000 + 0.0 16-20 S2 O1 A1: 47.132152 213.442328 16.000000 -20.000000 - 10000.0 22+20 S2 O1 A1: 66.997559 283.939459 22.000000 20.000000 + 10000.0 22+20 S2 O1 A1: 66.997559 283.939460 22.000000 20.000000 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 - 10000.0 22+20 S2 O1 A1: 66.997559 283.939459 22.000000 20.000000 + 10000.0 22+20 S2 O1 A1: 66.997559 283.939460 22.000000 20.000000 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 diff --git a/test/novasc3.1/gcrs2equ.out b/test/novasc3.1/gcrs2equ.out index 78eeb48a..fd8d3360 100644 --- a/test/novasc3.1/gcrs2equ.out +++ b/test/novasc3.1/gcrs2equ.out @@ -7,9 +7,9 @@ 0.0 16-20 S2 O0 A0: mean 16.000000 -19.999996 - 0.0 16-20 S2 O0 A0: true 15.999751 -19.997839 + 0.0 16-20 S2 O0 A0: true 15.999751 -19.997838 - 0.0 16-20 S2 O0 A0: cirs 15.999987 -19.997839 + 0.0 16-20 S2 O0 A0: cirs 15.999987 -19.997838 0.0 22+20 S2 O0 A1: mean 22.000000 19.999997 @@ -19,6 +19,6 @@ 0.0 16-20 S2 O0 A1: mean 16.000000 -19.999996 - 0.0 16-20 S2 O0 A1: true 15.999751 -19.997839 + 0.0 16-20 S2 O0 A1: true 15.999751 -19.997838 - 0.0 16-20 S2 O0 A1: cirs 15.999987 -19.997839 + 0.0 16-20 S2 O0 A1: cirs 15.999987 -19.997838 diff --git a/test/novasc3.1/ira_equinox.out b/test/novasc3.1/ira_equinox.out index 63db171b..fd7fb595 100644 --- a/test/novasc3.1/ira_equinox.out +++ b/test/novasc3.1/ira_equinox.out @@ -1,8 +1,8 @@ --10000.0 A0: 0.023381867 0.023103051 - 0.0 A0: -0.000000269 0.000236437 - 10000.0 A0: -0.023386268 -0.023566351 - 10000.0 A0: -0.023386268 -0.023566351 --10000.0 A1: 0.023381867 0.023103051 - 0.0 A1: -0.000000269 0.000236436 - 10000.0 A1: -0.023386268 -0.023566351 - 10000.0 A1: -0.023386268 -0.023566351 +-10000.0 A0: 0.023381867 0.023103017 + 0.0 A0: -0.000000269 0.000236403 + 10000.0 A0: -0.023386268 -0.023566385 + 10000.0 A0: -0.023386268 -0.023566385 +-10000.0 A1: 0.023381867 0.023103017 + 0.0 A1: -0.000000269 0.000236402 + 10000.0 A1: -0.023386268 -0.023566385 + 10000.0 A1: -0.023386268 -0.023566385 diff --git a/test/novasc3.1/mean_obliq.out b/test/novasc3.1/mean_obliq.out new file mode 100644 index 00000000..80500414 --- /dev/null +++ b/test/novasc3.1/mean_obliq.out @@ -0,0 +1,8 @@ +-10000.0 A0: 84394.229154 + 0.0 A0: 84381.406000 + 10000.0 A0: 84368.582819 + 10000.0 A0: 84368.582819 +-10000.0 A1: 84394.229154 + 0.0 A1: 84381.406000 + 10000.0 A1: 84368.582819 + 10000.0 A1: 84368.582819 diff --git a/test/novasc3.1/nutation.out b/test/novasc3.1/nutation.out index ae39a233..7ac7d9ae 100644 --- a/test/novasc3.1/nutation.out +++ b/test/novasc3.1/nutation.out @@ -1,7 +1,7 @@ -10000.0 A0: -nan -nan -nan - 0.0 A0: 0.801841317 -0.548228729 -0.237688375 - 10000.0 A0: -0.187719732 0.901076194 0.390925817 - 10000.0 A0: -0.529087785 -0.778583155 -0.337452792 + 0.0 A0: 0.801841323 -0.548228725 -0.237688364 + 10000.0 A0: -0.187719741 0.901076198 0.390925803 + 10000.0 A0: -0.529087776 -0.778583165 -0.337452783 -10000.0 A1: -0.529064 -0.778601 -0.337450 0.0 A1: 0.801841 -0.548229 -0.237688 10000.0 A1: -0.187720 0.901076 0.390926 diff --git a/test/novasc3.1/place.out b/test/novasc3.1/place.out index cbcf5d23..af823736 100644 --- a/test/novasc3.1/place.out +++ b/test/novasc3.1/place.out @@ -383,77 +383,77 @@ 10000.0 EARTH S0 O2 A0: ERROR 23 --10000.0 22+20 S2 O0 A1: 0 22.000372 20.001439 0.000000 2.855377 +-10000.0 22+20 S2 O0 A1: 0 22.0004 20.001 0.000 2.9 --10000.0 22+20 S2 O0 A1: 1 21.979075 19.870632 0.000000 2.855377 +-10000.0 22+20 S2 O0 A1: 1 21.9791 19.871 0.000 2.9 --10000.0 22+20 S2 O0 A1: 2 22.002178 19.870632 0.000000 2.855377 +-10000.0 22+20 S2 O0 A1: 2 22.0022 19.871 0.000 2.9 --10000.0 22+20 S2 O0 A1: 3 21.999998 20.000016 0.000000 2.855377 +-10000.0 22+20 S2 O0 A1: 3 22.0000 20.000 0.000 2.9 --10000.0 22+20 S2 O1 A1: 0 22.000366 20.001449 0.000000 3.002415 +-10000.0 22+20 S2 O1 A1: 0 22.0004 20.001 0.000 3.0 --10000.0 22+20 S2 O1 A1: 1 21.979069 19.870642 0.000000 3.002415 +-10000.0 22+20 S2 O1 A1: 1 21.9791 19.871 0.000 3.0 --10000.0 22+20 S2 O1 A1: 2 22.002172 19.870642 0.000000 3.002415 +-10000.0 22+20 S2 O1 A1: 2 22.0022 19.871 0.000 3.0 --10000.0 22+20 S2 O1 A1: 3 21.999998 20.000016 0.000000 3.002415 +-10000.0 22+20 S2 O1 A1: 3 22.0000 20.000 0.000 3.0 --10000.0 22+20 S2 O2 A1: 0 22.000440 20.000879 0.000000 -5.263409 +-10000.0 22+20 S2 O2 A1: 0 22.0004 20.001 0.000 -5.3 --10000.0 22+20 S2 O2 A1: 1 21.979143 19.870070 0.000000 -5.263409 +-10000.0 22+20 S2 O2 A1: 1 21.9791 19.870 0.000 -5.3 --10000.0 22+20 S2 O2 A1: 2 22.002246 19.870070 0.000000 -5.263409 +-10000.0 22+20 S2 O2 A1: 2 22.0022 19.870 0.000 -5.3 --10000.0 22+20 S2 O2 A1: 3 21.999998 20.000016 0.000000 -5.263409 +-10000.0 22+20 S2 O2 A1: 3 22.0000 20.000 0.000 -5.3 --10000.0 16-20 S2 O0 A1: 0 16.000055 -20.000090 0.000000 39.104727 +-10000.0 16-20 S2 O0 A1: 0 16.0001 -20.000 0.000 39.1 --10000.0 16-20 S2 O0 A1: 1 15.973786 -19.925304 0.000000 39.104727 +-10000.0 16-20 S2 O0 A1: 1 15.9738 -19.925 0.000 39.1 --10000.0 16-20 S2 O0 A1: 2 15.996889 -19.925304 0.000000 39.104727 +-10000.0 16-20 S2 O0 A1: 2 15.9969 -19.925 0.000 39.1 --10000.0 16-20 S2 O0 A1: 3 15.999998 -19.999985 0.000000 39.104727 +-10000.0 16-20 S2 O0 A1: 3 16.0000 -20.000 0.000 39.1 --10000.0 16-20 S2 O1 A1: 0 16.000053 -20.000063 0.000000 38.720473 +-10000.0 16-20 S2 O1 A1: 0 16.0001 -20.000 0.000 38.7 --10000.0 16-20 S2 O1 A1: 1 15.973784 -19.925277 0.000000 38.720473 +-10000.0 16-20 S2 O1 A1: 1 15.9738 -19.925 0.000 38.7 --10000.0 16-20 S2 O1 A1: 2 15.996887 -19.925277 0.000000 38.720473 +-10000.0 16-20 S2 O1 A1: 2 15.9969 -19.925 0.000 38.7 --10000.0 16-20 S2 O1 A1: 3 15.999998 -19.999985 0.000000 38.720473 +-10000.0 16-20 S2 O1 A1: 3 16.0000 -20.000 0.000 38.7 --10000.0 16-20 S2 O2 A1: 0 16.000172 -20.000415 0.000000 43.861710 +-10000.0 16-20 S2 O2 A1: 0 16.0002 -20.000 0.000 43.9 --10000.0 16-20 S2 O2 A1: 1 15.973903 -19.925633 0.000000 43.861710 +-10000.0 16-20 S2 O2 A1: 1 15.9739 -19.926 0.000 43.9 --10000.0 16-20 S2 O2 A1: 2 15.997006 -19.925633 0.000000 43.861710 +-10000.0 16-20 S2 O2 A1: 2 15.9970 -19.926 0.000 43.9 --10000.0 16-20 S2 O2 A1: 3 15.999998 -19.999985 0.000000 43.861710 +-10000.0 16-20 S2 O2 A1: 3 16.0000 -20.000 0.000 43.9 --10000.0 SUN S0 O0 A1: 0 9.697104 13.813576 1.012670 -0.337487 +-10000.0 SUN S0 O0 A1: 0 9.6971 13.814 1.013 -0.3 --10000.0 SUN S0 O0 A1: 1 9.672603 13.938012 1.012670 -0.337487 +-10000.0 SUN S0 O0 A1: 1 9.6726 13.938 1.013 -0.3 --10000.0 SUN S0 O0 A1: 2 9.695706 13.938012 1.012670 -0.337487 +-10000.0 SUN S0 O0 A1: 2 9.6957 13.938 1.013 -0.3 --10000.0 SUN S0 O0 A1: 3 9.697468 13.811735 1.012670 -0.337487 +-10000.0 SUN S0 O0 A1: 3 9.6975 13.812 1.013 -0.3 --10000.0 SUN S0 O1 A1: 0 9.697153 13.813298 1.012630 -0.457058 +-10000.0 SUN S0 O1 A1: 0 9.6972 13.813 1.013 -0.5 --10000.0 SUN S0 O1 A1: 1 9.672652 13.937734 1.012630 -0.457058 +-10000.0 SUN S0 O1 A1: 1 9.6727 13.938 1.013 -0.5 --10000.0 SUN S0 O1 A1: 2 9.695755 13.937734 1.012630 -0.457058 +-10000.0 SUN S0 O1 A1: 2 9.6958 13.938 1.013 -0.5 --10000.0 SUN S0 O1 A1: 3 9.697512 13.811462 1.012630 -0.457058 +-10000.0 SUN S0 O1 A1: 3 9.6975 13.811 1.013 -0.5 --10000.0 SUN S0 O2 A1: 0 9.697031 13.813946 1.012671 7.621547 +-10000.0 SUN S0 O2 A1: 0 9.6970 13.814 1.013 7.6 --10000.0 SUN S0 O2 A1: 1 9.672530 13.938380 1.012671 7.621547 +-10000.0 SUN S0 O2 A1: 1 9.6725 13.938 1.013 7.6 --10000.0 SUN S0 O2 A1: 2 9.695633 13.938380 1.012671 7.621547 +-10000.0 SUN S0 O2 A1: 2 9.6956 13.938 1.013 7.6 --10000.0 SUN S0 O2 A1: 3 9.697470 13.811725 1.012671 7.621547 +-10000.0 SUN S0 O2 A1: 3 9.6975 13.812 1.013 7.6 -10000.0 EARTH S0 O0 A1: ERROR 3 @@ -471,85 +471,85 @@ -10000.0 EARTH S0 O1 A1: ERROR 3 --10000.0 EARTH S0 O2 A1: 0 13.136720 -5.615284 0.000001 9.534756 +-10000.0 EARTH S0 O2 A1: 0 13.1367 -5.615 0.000 9.5 --10000.0 EARTH S0 O2 A1: 1 13.113327 -5.471472 0.000001 9.534756 +-10000.0 EARTH S0 O2 A1: 1 13.1133 -5.471 0.000 9.5 --10000.0 EARTH S0 O2 A1: 2 13.136430 -5.471472 0.000001 9.534756 +-10000.0 EARTH S0 O2 A1: 2 13.1364 -5.471 0.000 9.5 --10000.0 EARTH S0 O2 A1: 3 13.136884 -5.616475 0.000001 9.534756 +-10000.0 EARTH S0 O2 A1: 3 13.1369 -5.616 0.000 9.5 - 0.0 22+20 S2 O0 A1: 0 21.999739 20.001131 0.000000 32.619774 + 0.0 22+20 S2 O0 A1: 0 21.9997 20.001 0.000 32.6 - 0.0 22+20 S2 O0 A1: 1 21.999555 20.000595 0.000000 32.619774 + 0.0 22+20 S2 O0 A1: 1 21.9996 20.001 0.000 32.6 - 0.0 22+20 S2 O0 A1: 2 21.999791 20.000595 0.000000 32.619774 + 0.0 22+20 S2 O0 A1: 2 21.9998 20.001 0.000 32.6 - 0.0 22+20 S2 O0 A1: 3 22.000000 19.999999 0.000000 32.619774 + 0.0 22+20 S2 O0 A1: 3 22.0000 20.000 0.000 32.6 - 0.0 22+20 S2 O1 A1: 0 21.999742 20.001105 0.000000 32.247698 + 0.0 22+20 S2 O1 A1: 0 21.9997 20.001 0.000 32.2 - 0.0 22+20 S2 O1 A1: 1 21.999558 20.000569 0.000000 32.247698 + 0.0 22+20 S2 O1 A1: 1 21.9996 20.001 0.000 32.2 - 0.0 22+20 S2 O1 A1: 2 21.999794 20.000569 0.000000 32.247698 + 0.0 22+20 S2 O1 A1: 2 21.9998 20.001 0.000 32.2 - 0.0 22+20 S2 O1 A1: 3 22.000000 19.999999 0.000000 32.247698 + 0.0 22+20 S2 O1 A1: 3 22.0000 20.000 0.000 32.2 - 0.0 22+20 S2 O2 A1: 0 21.999807 20.000564 0.000000 24.481544 + 0.0 22+20 S2 O2 A1: 0 21.9998 20.001 0.000 24.5 - 0.0 22+20 S2 O2 A1: 1 21.999623 20.000029 0.000000 24.481544 + 0.0 22+20 S2 O2 A1: 1 21.9996 20.000 0.000 24.5 - 0.0 22+20 S2 O2 A1: 2 21.999859 20.000029 0.000000 24.481544 + 0.0 22+20 S2 O2 A1: 2 21.9999 20.000 0.000 24.5 - 0.0 22+20 S2 O2 A1: 3 22.000000 19.999999 0.000000 24.481544 + 0.0 22+20 S2 O2 A1: 3 22.0000 20.000 0.000 24.5 - 0.0 16-20 S2 O0 A1: 0 15.999684 -19.999133 0.000000 -8.836703 + 0.0 16-20 S2 O0 A1: 0 15.9997 -19.999 0.000 -8.8 - 0.0 16-20 S2 O0 A1: 1 15.999435 -19.996972 0.000000 -8.836703 + 0.0 16-20 S2 O0 A1: 1 15.9994 -19.997 0.000 -8.8 - 0.0 16-20 S2 O0 A1: 2 15.999671 -19.996972 0.000000 -8.836703 + 0.0 16-20 S2 O0 A1: 2 15.9997 -19.997 0.000 -8.8 - 0.0 16-20 S2 O0 A1: 3 16.000000 -20.000000 0.000000 -8.836703 + 0.0 16-20 S2 O0 A1: 3 16.0000 -20.000 0.000 -8.8 - 0.0 16-20 S2 O1 A1: 0 15.999690 -19.999145 0.000000 -8.662127 + 0.0 16-20 S2 O1 A1: 0 15.9997 -19.999 0.000 -8.7 - 0.0 16-20 S2 O1 A1: 1 15.999440 -19.996984 0.000000 -8.662127 + 0.0 16-20 S2 O1 A1: 1 15.9994 -19.997 0.000 -8.7 - 0.0 16-20 S2 O1 A1: 2 15.999677 -19.996984 0.000000 -8.662127 + 0.0 16-20 S2 O1 A1: 2 15.9997 -19.997 0.000 -8.7 - 0.0 16-20 S2 O1 A1: 3 16.000000 -20.000000 0.000000 -8.662127 + 0.0 16-20 S2 O1 A1: 3 16.0000 -20.000 0.000 -8.7 - 0.0 16-20 S2 O2 A1: 0 15.999802 -19.999460 0.000000 -4.137177 + 0.0 16-20 S2 O2 A1: 0 15.9998 -19.999 0.000 -4.1 - 0.0 16-20 S2 O2 A1: 1 15.999552 -19.997299 0.000000 -4.137177 + 0.0 16-20 S2 O2 A1: 1 15.9996 -19.997 0.000 -4.1 - 0.0 16-20 S2 O2 A1: 2 15.999789 -19.997299 0.000000 -4.137177 + 0.0 16-20 S2 O2 A1: 2 15.9998 -19.997 0.000 -4.1 - 0.0 16-20 S2 O2 A1: 3 16.000000 -20.000000 0.000000 -4.137177 + 0.0 16-20 S2 O2 A1: 3 16.0000 -20.000 0.000 -4.1 - 0.0 SUN S0 O0 A1: 0 18.752123 -23.033991 0.983326 -0.016504 + 0.0 SUN S0 O0 A1: 0 18.7521 -23.034 0.983 -0.0 - 0.0 SUN S0 O0 A1: 1 18.751835 -23.032720 0.983326 -0.016504 + 0.0 SUN S0 O0 A1: 1 18.7518 -23.033 0.983 -0.0 - 0.0 SUN S0 O0 A1: 2 18.752071 -23.032720 0.983326 -0.016504 + 0.0 SUN S0 O0 A1: 2 18.7521 -23.033 0.983 -0.0 - 0.0 SUN S0 O0 A1: 3 18.752541 -23.033540 0.983326 -0.016504 + 0.0 SUN S0 O0 A1: 3 18.7525 -23.034 0.983 -0.0 - 0.0 SUN S0 O1 A1: 0 18.752176 -23.035637 0.983296 -0.128084 + 0.0 SUN S0 O1 A1: 0 18.7522 -23.036 0.983 -0.1 - 0.0 SUN S0 O1 A1: 1 18.751888 -23.034366 0.983296 -0.128084 + 0.0 SUN S0 O1 A1: 1 18.7519 -23.034 0.983 -0.1 - 0.0 SUN S0 O1 A1: 2 18.752124 -23.034366 0.983296 -0.128084 + 0.0 SUN S0 O1 A1: 2 18.7521 -23.034 0.983 -0.1 - 0.0 SUN S0 O1 A1: 3 18.752588 -23.035195 0.983296 -0.128084 + 0.0 SUN S0 O1 A1: 3 18.7526 -23.035 0.983 -0.1 - 0.0 SUN S0 O2 A1: 0 18.752257 -23.033846 0.983326 -1.816390 + 0.0 SUN S0 O2 A1: 0 18.7523 -23.034 0.983 -1.8 - 0.0 SUN S0 O2 A1: 1 18.751968 -23.032576 0.983326 -1.816390 + 0.0 SUN S0 O2 A1: 1 18.7520 -23.033 0.983 -1.8 - 0.0 SUN S0 O2 A1: 2 18.752205 -23.032576 0.983326 -1.816390 + 0.0 SUN S0 O2 A1: 2 18.7522 -23.033 0.983 -1.8 - 0.0 SUN S0 O2 A1: 3 18.752538 -23.033542 0.983326 -1.816390 + 0.0 SUN S0 O2 A1: 3 18.7525 -23.034 0.983 -1.8 0.0 EARTH S0 O0 A1: ERROR 3 @@ -567,85 +567,85 @@ 0.0 EARTH S0 O1 A1: ERROR 3 - 0.0 EARTH S0 O2 A1: 0 13.113551 -5.473369 0.000001 9.534761 + 0.0 EARTH S0 O2 A1: 0 13.1136 -5.473 0.000 9.5 - 0.0 EARTH S0 O2 A1: 1 13.113322 -5.471429 0.000001 9.534761 + 0.0 EARTH S0 O2 A1: 1 13.1133 -5.471 0.000 9.5 - 0.0 EARTH S0 O2 A1: 2 13.113558 -5.471429 0.000001 9.534761 + 0.0 EARTH S0 O2 A1: 2 13.1136 -5.471 0.000 9.5 - 0.0 EARTH S0 O2 A1: 3 13.113562 -5.473326 0.000001 9.534761 + 0.0 EARTH S0 O2 A1: 3 13.1136 -5.473 0.000 9.5 - 10000.0 22+20 S2 O0 A1: 0 21.999998 19.996969 0.000000 -14.844753 + 10000.0 22+20 S2 O0 A1: 0 22.0000 19.997 0.000 -14.8 - 10000.0 22+20 S2 O0 A1: 1 22.021667 20.129326 0.000000 -14.844753 + 10000.0 22+20 S2 O0 A1: 1 22.0217 20.129 0.000 -14.8 - 10000.0 22+20 S2 O0 A1: 2 21.998100 20.129326 0.000000 -14.844753 + 10000.0 22+20 S2 O0 A1: 2 21.9981 20.129 0.000 -14.8 - 10000.0 22+20 S2 O0 A1: 3 22.000002 19.999985 0.000000 -14.844753 + 10000.0 22+20 S2 O0 A1: 3 22.0000 20.000 0.000 -14.8 - 10000.0 22+20 S2 O1 A1: 0 22.000000 19.996997 0.000000 -14.456080 + 10000.0 22+20 S2 O1 A1: 0 22.0000 19.997 0.000 -14.5 - 10000.0 22+20 S2 O1 A1: 1 22.021669 20.129353 0.000000 -14.456080 + 10000.0 22+20 S2 O1 A1: 1 22.0217 20.129 0.000 -14.5 - 10000.0 22+20 S2 O1 A1: 2 21.998102 20.129353 0.000000 -14.456080 + 10000.0 22+20 S2 O1 A1: 2 21.9981 20.129 0.000 -14.5 - 10000.0 22+20 S2 O1 A1: 3 22.000002 19.999985 0.000000 -14.456080 + 10000.0 22+20 S2 O1 A1: 3 22.0000 20.000 0.000 -14.5 - 10000.0 22+20 S2 O2 A1: 0 22.000065 19.996396 0.000000 -23.002063 + 10000.0 22+20 S2 O2 A1: 0 22.0001 19.996 0.000 -23.0 - 10000.0 22+20 S2 O2 A1: 1 22.021734 20.128754 0.000000 -23.002063 + 10000.0 22+20 S2 O2 A1: 1 22.0217 20.129 0.000 -23.0 - 10000.0 22+20 S2 O2 A1: 2 21.998168 20.128754 0.000000 -23.002063 + 10000.0 22+20 S2 O2 A1: 2 21.9982 20.129 0.000 -23.0 - 10000.0 22+20 S2 O2 A1: 3 22.000002 19.999985 0.000000 -23.002063 + 10000.0 22+20 S2 O2 A1: 3 22.0000 20.000 0.000 -23.0 - 10000.0 16-20 S2 O0 A1: 0 16.000391 -20.001134 0.000000 7.578437 + 10000.0 16-20 S2 O0 A1: 0 16.0004 -20.001 0.000 7.6 - 10000.0 16-20 S2 O0 A1: 1 16.027178 -20.078961 0.000000 7.578437 + 10000.0 16-20 S2 O0 A1: 1 16.0272 -20.079 0.000 7.6 - 10000.0 16-20 S2 O0 A1: 2 16.003611 -20.078961 0.000000 7.578437 + 10000.0 16-20 S2 O0 A1: 2 16.0036 -20.079 0.000 7.6 - 10000.0 16-20 S2 O0 A1: 3 16.000002 -20.000015 0.000000 7.578437 + 10000.0 16-20 S2 O0 A1: 3 16.0000 -20.000 0.000 7.6 - 10000.0 16-20 S2 O1 A1: 0 16.000386 -20.001143 0.000000 7.710291 + 10000.0 16-20 S2 O1 A1: 0 16.0004 -20.001 0.000 7.7 - 10000.0 16-20 S2 O1 A1: 1 16.027172 -20.078970 0.000000 7.710291 + 10000.0 16-20 S2 O1 A1: 1 16.0272 -20.079 0.000 7.7 - 10000.0 16-20 S2 O1 A1: 2 16.003606 -20.078970 0.000000 7.710291 + 10000.0 16-20 S2 O1 A1: 2 16.0036 -20.079 0.000 7.7 - 10000.0 16-20 S2 O1 A1: 3 16.000002 -20.000015 0.000000 7.710291 + 10000.0 16-20 S2 O1 A1: 3 16.0000 -20.000 0.000 7.7 - 10000.0 16-20 S2 O2 A1: 0 16.000509 -20.001463 0.000000 12.216570 + 10000.0 16-20 S2 O2 A1: 0 16.0005 -20.001 0.000 12.2 - 10000.0 16-20 S2 O2 A1: 1 16.027296 -20.079285 0.000000 12.216570 + 10000.0 16-20 S2 O2 A1: 1 16.0273 -20.079 0.000 12.2 - 10000.0 16-20 S2 O2 A1: 2 16.003729 -20.079285 0.000000 12.216570 + 10000.0 16-20 S2 O2 A1: 2 16.0037 -20.079 0.000 12.2 - 10000.0 16-20 S2 O2 A1: 3 16.000002 -20.000015 0.000000 12.216570 + 10000.0 16-20 S2 O2 A1: 3 16.0000 -20.000 0.000 12.2 - 10000.0 SUN S0 O0 A1: 0 3.710532 19.692978 1.011622 0.345087 + 10000.0 SUN S0 O0 A1: 0 3.7105 19.693 1.012 0.3 - 10000.0 SUN S0 O0 A1: 1 3.737115 19.780622 1.011622 0.345087 + 10000.0 SUN S0 O0 A1: 1 3.7371 19.781 1.012 0.3 - 10000.0 SUN S0 O0 A1: 2 3.713549 19.780622 1.011622 0.345087 + 10000.0 SUN S0 O0 A1: 2 3.7135 19.781 1.012 0.3 - 10000.0 SUN S0 O0 A1: 3 3.710920 19.694239 1.011622 0.345087 + 10000.0 SUN S0 O0 A1: 3 3.7109 19.694 1.012 0.3 - 10000.0 SUN S0 O1 A1: 0 3.710578 19.692944 1.011581 0.242780 + 10000.0 SUN S0 O1 A1: 0 3.7106 19.693 1.012 0.2 - 10000.0 SUN S0 O1 A1: 1 3.737161 19.780587 1.011581 0.242780 + 10000.0 SUN S0 O1 A1: 1 3.7372 19.781 1.012 0.2 - 10000.0 SUN S0 O1 A1: 2 3.713595 19.780587 1.011581 0.242780 + 10000.0 SUN S0 O1 A1: 2 3.7136 19.781 1.012 0.2 - 10000.0 SUN S0 O1 A1: 3 3.710960 19.694213 1.011581 0.242780 + 10000.0 SUN S0 O1 A1: 3 3.7110 19.694 1.012 0.2 - 10000.0 SUN S0 O2 A1: 0 3.710421 19.692619 1.011622 -4.909229 + 10000.0 SUN S0 O2 A1: 0 3.7104 19.693 1.012 -4.9 - 10000.0 SUN S0 O2 A1: 1 3.737004 19.780268 1.011622 -4.909229 + 10000.0 SUN S0 O2 A1: 1 3.7370 19.780 1.012 -4.9 - 10000.0 SUN S0 O2 A1: 2 3.713438 19.780268 1.011622 -4.909229 + 10000.0 SUN S0 O2 A1: 2 3.7134 19.780 1.012 -4.9 - 10000.0 SUN S0 O2 A1: 3 3.710922 19.694246 1.011622 -4.909229 + 10000.0 SUN S0 O2 A1: 3 3.7109 19.694 1.012 -4.9 10000.0 EARTH S0 O0 A1: ERROR 3 @@ -663,85 +663,85 @@ 10000.0 EARTH S0 O1 A1: ERROR 3 - 10000.0 EARTH S0 O2 A1: 0 13.089480 -5.323630 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 0 13.0895 -5.324 0.000 9.5 - 10000.0 EARTH S0 O2 A1: 1 13.113310 -5.471370 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 1 13.1133 -5.471 0.000 9.5 - 10000.0 EARTH S0 O2 A1: 2 13.089744 -5.471370 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 2 13.0897 -5.471 0.000 9.5 - 10000.0 EARTH S0 O2 A1: 3 13.089174 -5.321902 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 3 13.0892 -5.322 0.000 9.5 - 10000.0 22+20 S2 O0 A1: 0 21.999998 19.996969 0.000000 -14.844753 + 10000.0 22+20 S2 O0 A1: 0 22.0000 19.997 0.000 -14.8 - 10000.0 22+20 S2 O0 A1: 1 22.021667 20.129326 0.000000 -14.844753 + 10000.0 22+20 S2 O0 A1: 1 22.0217 20.129 0.000 -14.8 - 10000.0 22+20 S2 O0 A1: 2 21.998100 20.129326 0.000000 -14.844753 + 10000.0 22+20 S2 O0 A1: 2 21.9981 20.129 0.000 -14.8 - 10000.0 22+20 S2 O0 A1: 3 22.000002 19.999985 0.000000 -14.844753 + 10000.0 22+20 S2 O0 A1: 3 22.0000 20.000 0.000 -14.8 - 10000.0 22+20 S2 O1 A1: 0 22.000000 19.996997 0.000000 -14.456080 + 10000.0 22+20 S2 O1 A1: 0 22.0000 19.997 0.000 -14.5 - 10000.0 22+20 S2 O1 A1: 1 22.021669 20.129353 0.000000 -14.456080 + 10000.0 22+20 S2 O1 A1: 1 22.0217 20.129 0.000 -14.5 - 10000.0 22+20 S2 O1 A1: 2 21.998102 20.129353 0.000000 -14.456080 + 10000.0 22+20 S2 O1 A1: 2 21.9981 20.129 0.000 -14.5 - 10000.0 22+20 S2 O1 A1: 3 22.000002 19.999985 0.000000 -14.456080 + 10000.0 22+20 S2 O1 A1: 3 22.0000 20.000 0.000 -14.5 - 10000.0 22+20 S2 O2 A1: 0 22.000065 19.996396 0.000000 -23.002063 + 10000.0 22+20 S2 O2 A1: 0 22.0001 19.996 0.000 -23.0 - 10000.0 22+20 S2 O2 A1: 1 22.021734 20.128754 0.000000 -23.002063 + 10000.0 22+20 S2 O2 A1: 1 22.0217 20.129 0.000 -23.0 - 10000.0 22+20 S2 O2 A1: 2 21.998168 20.128754 0.000000 -23.002063 + 10000.0 22+20 S2 O2 A1: 2 21.9982 20.129 0.000 -23.0 - 10000.0 22+20 S2 O2 A1: 3 22.000002 19.999985 0.000000 -23.002063 + 10000.0 22+20 S2 O2 A1: 3 22.0000 20.000 0.000 -23.0 - 10000.0 16-20 S2 O0 A1: 0 16.000391 -20.001134 0.000000 7.578437 + 10000.0 16-20 S2 O0 A1: 0 16.0004 -20.001 0.000 7.6 - 10000.0 16-20 S2 O0 A1: 1 16.027178 -20.078961 0.000000 7.578437 + 10000.0 16-20 S2 O0 A1: 1 16.0272 -20.079 0.000 7.6 - 10000.0 16-20 S2 O0 A1: 2 16.003611 -20.078961 0.000000 7.578437 + 10000.0 16-20 S2 O0 A1: 2 16.0036 -20.079 0.000 7.6 - 10000.0 16-20 S2 O0 A1: 3 16.000002 -20.000015 0.000000 7.578437 + 10000.0 16-20 S2 O0 A1: 3 16.0000 -20.000 0.000 7.6 - 10000.0 16-20 S2 O1 A1: 0 16.000386 -20.001143 0.000000 7.710291 + 10000.0 16-20 S2 O1 A1: 0 16.0004 -20.001 0.000 7.7 - 10000.0 16-20 S2 O1 A1: 1 16.027172 -20.078970 0.000000 7.710291 + 10000.0 16-20 S2 O1 A1: 1 16.0272 -20.079 0.000 7.7 - 10000.0 16-20 S2 O1 A1: 2 16.003606 -20.078970 0.000000 7.710291 + 10000.0 16-20 S2 O1 A1: 2 16.0036 -20.079 0.000 7.7 - 10000.0 16-20 S2 O1 A1: 3 16.000002 -20.000015 0.000000 7.710291 + 10000.0 16-20 S2 O1 A1: 3 16.0000 -20.000 0.000 7.7 - 10000.0 16-20 S2 O2 A1: 0 16.000509 -20.001463 0.000000 12.216570 + 10000.0 16-20 S2 O2 A1: 0 16.0005 -20.001 0.000 12.2 - 10000.0 16-20 S2 O2 A1: 1 16.027296 -20.079285 0.000000 12.216570 + 10000.0 16-20 S2 O2 A1: 1 16.0273 -20.079 0.000 12.2 - 10000.0 16-20 S2 O2 A1: 2 16.003729 -20.079285 0.000000 12.216570 + 10000.0 16-20 S2 O2 A1: 2 16.0037 -20.079 0.000 12.2 - 10000.0 16-20 S2 O2 A1: 3 16.000002 -20.000015 0.000000 12.216570 + 10000.0 16-20 S2 O2 A1: 3 16.0000 -20.000 0.000 12.2 - 10000.0 SUN S0 O0 A1: 0 3.710532 19.692978 1.011622 0.345087 + 10000.0 SUN S0 O0 A1: 0 3.7105 19.693 1.012 0.3 - 10000.0 SUN S0 O0 A1: 1 3.737115 19.780622 1.011622 0.345087 + 10000.0 SUN S0 O0 A1: 1 3.7371 19.781 1.012 0.3 - 10000.0 SUN S0 O0 A1: 2 3.713549 19.780622 1.011622 0.345087 + 10000.0 SUN S0 O0 A1: 2 3.7135 19.781 1.012 0.3 - 10000.0 SUN S0 O0 A1: 3 3.710920 19.694239 1.011622 0.345087 + 10000.0 SUN S0 O0 A1: 3 3.7109 19.694 1.012 0.3 - 10000.0 SUN S0 O1 A1: 0 3.710578 19.692944 1.011581 0.242780 + 10000.0 SUN S0 O1 A1: 0 3.7106 19.693 1.012 0.2 - 10000.0 SUN S0 O1 A1: 1 3.737161 19.780587 1.011581 0.242780 + 10000.0 SUN S0 O1 A1: 1 3.7372 19.781 1.012 0.2 - 10000.0 SUN S0 O1 A1: 2 3.713595 19.780587 1.011581 0.242780 + 10000.0 SUN S0 O1 A1: 2 3.7136 19.781 1.012 0.2 - 10000.0 SUN S0 O1 A1: 3 3.710960 19.694213 1.011581 0.242780 + 10000.0 SUN S0 O1 A1: 3 3.7110 19.694 1.012 0.2 - 10000.0 SUN S0 O2 A1: 0 3.710421 19.692619 1.011622 -4.909229 + 10000.0 SUN S0 O2 A1: 0 3.7104 19.693 1.012 -4.9 - 10000.0 SUN S0 O2 A1: 1 3.737004 19.780268 1.011622 -4.909229 + 10000.0 SUN S0 O2 A1: 1 3.7370 19.780 1.012 -4.9 - 10000.0 SUN S0 O2 A1: 2 3.713438 19.780268 1.011622 -4.909229 + 10000.0 SUN S0 O2 A1: 2 3.7134 19.780 1.012 -4.9 - 10000.0 SUN S0 O2 A1: 3 3.710922 19.694246 1.011622 -4.909229 + 10000.0 SUN S0 O2 A1: 3 3.7109 19.694 1.012 -4.9 10000.0 EARTH S0 O0 A1: ERROR 3 @@ -759,10 +759,10 @@ 10000.0 EARTH S0 O1 A1: ERROR 3 - 10000.0 EARTH S0 O2 A1: 0 13.089480 -5.323630 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 0 13.0895 -5.324 0.000 9.5 - 10000.0 EARTH S0 O2 A1: 1 13.113310 -5.471370 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 1 13.1133 -5.471 0.000 9.5 - 10000.0 EARTH S0 O2 A1: 2 13.089744 -5.471370 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 2 13.0897 -5.471 0.000 9.5 - 10000.0 EARTH S0 O2 A1: 3 13.089174 -5.321902 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 3 13.0892 -5.322 0.000 9.5 diff --git a/test/novasc3.1/ter2cel.out b/test/novasc3.1/ter2cel.out index 9fa6274c..6d1c2ee9 100644 --- a/test/novasc3.1/ter2cel.out +++ b/test/novasc3.1/ter2cel.out @@ -1,51 +1,51 @@ --10000.0 22+20 S2 O0 A0: ERA GCRS -0.388158783 0.856188057 0.340990865 +-10000.0 22+20 S2 O0 A0: ERA GCRS -0.388158782 0.856188052 0.340990879 --10000.0 22+20 S2 O0 A0: GST GCRS -0.388158783 0.856188057 0.340990865 +-10000.0 22+20 S2 O0 A0: GST GCRS -0.388158782 0.856188052 0.340990879 --10000.0 22+20 S2 O0 A0: GST TOD -0.382075445 0.858510673 0.342020143 +-10000.0 22+20 S2 O0 A0: GST TOD -0.382075453 0.858510670 0.342020143 --10000.0 16-20 S2 O0 A0: ERA GCRS 0.857080261 0.387256999 -0.339772635 +-10000.0 16-20 S2 O0 A0: ERA GCRS 0.857080260 0.387257004 -0.339772632 --10000.0 16-20 S2 O0 A0: GST GCRS 0.857080261 0.387256999 -0.339772635 +-10000.0 16-20 S2 O0 A0: GST GCRS 0.857080260 0.387257004 -0.339772632 --10000.0 16-20 S2 O0 A0: GST TOD 0.858510673 0.382075445 -0.342020143 +-10000.0 16-20 S2 O0 A0: GST TOD 0.858510670 0.382075453 -0.342020143 - 0.0 22+20 S2 O0 A0: ERA GCRS -0.314293817 -0.885587018 0.341986886 + 0.0 22+20 S2 O0 A0: ERA GCRS -0.314293815 -0.885587023 0.341986874 - 0.0 22+20 S2 O0 A0: GST GCRS -0.314293817 -0.885587018 0.341986886 + 0.0 22+20 S2 O0 A0: GST GCRS -0.314293815 -0.885587023 0.341986874 - 0.0 22+20 S2 O0 A0: GST TOD -0.314339424 -0.885557987 0.342020143 + 0.0 22+20 S2 O0 A0: GST TOD -0.314339416 -0.885557990 0.342020143 - 0.0 16-20 S2 O0 A0: ERA GCRS -0.885568228 0.314294173 -0.342035212 + 0.0 16-20 S2 O0 A0: ERA GCRS -0.885568229 0.314294178 -0.342035204 - 0.0 16-20 S2 O0 A0: GST GCRS -0.885568228 0.314294173 -0.342035212 + 0.0 16-20 S2 O0 A0: GST GCRS -0.885568229 0.314294178 -0.342035204 - 0.0 16-20 S2 O0 A0: GST TOD -0.885557987 0.314339424 -0.342020143 + 0.0 16-20 S2 O0 A0: GST TOD -0.885557990 0.314339416 -0.342020143 - 10000.0 22+20 S2 O0 A0: ERA GCRS 0.841265067 0.420521499 0.339756908 + 10000.0 22+20 S2 O0 A0: ERA GCRS 0.841265068 0.420521494 0.339756911 - 10000.0 22+20 S2 O0 A0: GST GCRS 0.841265067 0.420521499 0.339756908 + 10000.0 22+20 S2 O0 A0: GST GCRS 0.841265068 0.420521494 0.339756911 - 10000.0 22+20 S2 O0 A0: GST TOD 0.837740874 0.425690556 0.342020143 + 10000.0 22+20 S2 O0 A0: GST TOD 0.837740870 0.425690564 0.342020143 - 10000.0 16-20 S2 O0 A0: ERA GCRS 0.419595616 -0.840358873 -0.343127504 + 10000.0 16-20 S2 O0 A0: ERA GCRS 0.419595615 -0.840358868 -0.343127518 - 10000.0 16-20 S2 O0 A0: GST GCRS 0.419595616 -0.840358873 -0.343127504 + 10000.0 16-20 S2 O0 A0: GST GCRS 0.419595615 -0.840358868 -0.343127518 - 10000.0 16-20 S2 O0 A0: GST TOD 0.425690556 -0.837740874 -0.342020143 + 10000.0 16-20 S2 O0 A0: GST TOD 0.425690564 -0.837740870 -0.342020143 - 10000.0 22+20 S2 O0 A0: ERA GCRS 0.841265067 0.420521499 0.339756908 + 10000.0 22+20 S2 O0 A0: ERA GCRS 0.841265068 0.420521494 0.339756911 - 10000.0 22+20 S2 O0 A0: GST GCRS 0.841265067 0.420521499 0.339756908 + 10000.0 22+20 S2 O0 A0: GST GCRS 0.841265068 0.420521494 0.339756911 - 10000.0 22+20 S2 O0 A0: GST TOD 0.837740874 0.425690556 0.342020143 + 10000.0 22+20 S2 O0 A0: GST TOD 0.837740870 0.425690564 0.342020143 - 10000.0 16-20 S2 O0 A0: ERA GCRS 0.419595616 -0.840358873 -0.343127504 + 10000.0 16-20 S2 O0 A0: ERA GCRS 0.419595615 -0.840358868 -0.343127518 - 10000.0 16-20 S2 O0 A0: GST GCRS 0.419595616 -0.840358873 -0.343127504 + 10000.0 16-20 S2 O0 A0: GST GCRS 0.419595615 -0.840358868 -0.343127518 - 10000.0 16-20 S2 O0 A0: GST TOD 0.425690556 -0.837740874 -0.342020143 + 10000.0 16-20 S2 O0 A0: GST TOD 0.425690564 -0.837740870 -0.342020143 -10000.0 22+20 S2 O0 A1: ERA GCRS -0.388159 0.856188 0.340991 diff --git a/test/reference/cel2ter.out b/test/reference/cel2ter.out index c3063d05..6da4b827 100644 --- a/test/reference/cel2ter.out +++ b/test/reference/cel2ter.out @@ -1,35 +1,35 @@ --10000.0 22+20 S2 O0 A0: ERA GCRS -0.935838206 -0.093233508 0.339874044 +-10000.0 22+20 S2 O0 A0: ERA GCRS -0.935838202 -0.093233512 0.339874054 --10000.0 22+20 S2 O0 A0: GST GCRS -0.935838206 -0.093233508 0.339874044 +-10000.0 22+20 S2 O0 A0: GST GCRS -0.935838202 -0.093233512 0.339874054 --10000.0 16-20 S2 O0 A0: ERA GCRS -0.091982633 0.935627669 -0.340793280 +-10000.0 16-20 S2 O0 A0: ERA GCRS -0.091982636 0.935627673 -0.340793270 --10000.0 16-20 S2 O0 A0: GST GCRS -0.091982633 0.935627669 -0.340793280 +-10000.0 16-20 S2 O0 A0: GST GCRS -0.091982636 0.935627673 -0.340793270 - 0.0 22+20 S2 O0 A0: ERA GCRS 0.609782525 0.714977972 0.342011362 + 0.0 22+20 S2 O0 A0: ERA GCRS 0.609782519 0.714977972 0.342011372 - 0.0 22+20 S2 O0 A0: GST GCRS 0.609782525 0.714977972 0.342011362 + 0.0 22+20 S2 O0 A0: GST GCRS 0.609782519 0.714977972 0.342011372 - 0.0 16-20 S2 O0 A0: ERA GCRS 0.714974910 -0.609801067 -0.341984702 + 0.0 16-20 S2 O0 A0: ERA GCRS 0.714974915 -0.609801066 -0.341984692 - 0.0 16-20 S2 O0 A0: GST GCRS 0.714974910 -0.609801067 -0.341984702 + 0.0 16-20 S2 O0 A0: GST GCRS 0.714974915 -0.609801066 -0.341984692 - 10000.0 22+20 S2 O0 A0: ERA GCRS 0.055487009 -0.937259010 0.344189977 + 10000.0 22+20 S2 O0 A0: ERA GCRS 0.055487012 -0.937259006 0.344189987 - 10000.0 22+20 S2 O0 A0: GST GCRS 0.055487009 -0.937259010 0.344189977 + 10000.0 22+20 S2 O0 A0: GST GCRS 0.055487012 -0.937259006 0.344189987 - 10000.0 16-20 S2 O0 A0: ERA GCRS -0.937510303 -0.056762395 -0.343296463 + 10000.0 16-20 S2 O0 A0: ERA GCRS -0.937510307 -0.056762399 -0.343296453 - 10000.0 16-20 S2 O0 A0: GST GCRS -0.937510303 -0.056762395 -0.343296463 + 10000.0 16-20 S2 O0 A0: GST GCRS -0.937510307 -0.056762399 -0.343296453 - 10000.0 22+20 S2 O0 A0: ERA GCRS 0.055487009 -0.937259010 0.344189977 + 10000.0 22+20 S2 O0 A0: ERA GCRS 0.055487012 -0.937259006 0.344189987 - 10000.0 22+20 S2 O0 A0: GST GCRS 0.055487009 -0.937259010 0.344189977 + 10000.0 22+20 S2 O0 A0: GST GCRS 0.055487012 -0.937259006 0.344189987 - 10000.0 16-20 S2 O0 A0: ERA GCRS -0.937510303 -0.056762395 -0.343296463 + 10000.0 16-20 S2 O0 A0: ERA GCRS -0.937510307 -0.056762399 -0.343296453 - 10000.0 16-20 S2 O0 A0: GST GCRS -0.937510303 -0.056762395 -0.343296463 + 10000.0 16-20 S2 O0 A0: GST GCRS -0.937510307 -0.056762399 -0.343296453 -10000.0 22+20 S2 O0 A1: ERA GCRS -0.935838 -0.093234 0.339874 diff --git a/test/reference/cel_pole.out b/test/reference/cel_pole.out index 713c0510..6035421d 100644 --- a/test/reference/cel_pole.out +++ b/test/reference/cel_pole.out @@ -1,16 +1,16 @@ --10000.0 A0: XY 16.415313 4.048559 16.415313 4.048559 --10000.0 A0: PE 16.415313 4.048559 16.415313 4.048559 - 0.0 A0: XY -13.933997 -5.766398 -13.933997 -5.766398 - 0.0 A0: PE -13.933997 -5.766398 -13.933997 -5.766398 - 10000.0 A0: XY 10.600901 6.298105 10.600901 6.298105 - 10000.0 A0: PE 10.600901 6.298105 10.600901 6.298105 - 10000.0 A0: XY 10.600901 6.298105 10.600901 6.298105 - 10000.0 A0: PE 10.600901 6.298105 10.600901 6.298105 --10000.0 A1: XY 16.413324 4.051553 16.413324 4.051553 --10000.0 A1: PE 16.413324 4.051553 16.413324 4.051553 - 0.0 A1: XY -13.933977 -5.766410 -13.933977 -5.766410 - 0.0 A1: PE -13.933977 -5.766410 -13.933977 -5.766410 - 10000.0 A1: XY 10.600913 6.298092 10.600913 6.298092 - 10000.0 A1: PE 10.600913 6.298092 10.600913 6.298092 - 10000.0 A1: XY 10.600913 6.298092 10.600913 6.298092 - 10000.0 A1: PE 10.600913 6.298092 10.600913 6.298092 +-10000.0 A0: PE 16.415313 4.048559 16.413313 4.051559 +-10000.0 A0: XY 16.415313 4.048559 16.410332 4.051572 + 0.0 A0: PE -13.931996 -5.769398 -13.933996 -5.766398 + 0.0 A0: XY -13.931996 -5.769398 -13.937024 -5.766398 + 10000.0 A0: PE 10.602901 6.295105 10.600901 6.298105 + 10000.0 A0: XY 10.602901 6.295105 10.597826 6.298093 + 10000.0 A0: PE 10.602901 6.295105 10.600901 6.298105 + 10000.0 A0: XY 10.602901 6.295105 10.597826 6.298093 +-10000.0 A1: PE 16.415324 4.048553 16.413324 4.051553 +-10000.0 A1: XY 16.415324 4.048553 16.410343 4.051566 + 0.0 A1: PE -13.931977 -5.769410 -13.933977 -5.766410 + 0.0 A1: XY -13.931977 -5.769410 -13.937004 -5.766410 + 10000.0 A1: PE 10.602913 6.295092 10.600913 6.298092 + 10000.0 A1: XY 10.602913 6.295092 10.597838 6.298080 + 10000.0 A1: PE 10.602913 6.295092 10.600913 6.298092 + 10000.0 A1: XY 10.602913 6.295092 10.597838 6.298080 diff --git a/test/reference/cio_basis.out b/test/reference/cio_basis.out index a4b8c91a..1ad448b7 100644 --- a/test/reference/cio_basis.out +++ b/test/reference/cio_basis.out @@ -1,8 +1,8 @@ --10000.0 A0: 0.999996544 -0.000000014 0.002628934 0.000000045 1.000000000 -0.000011678 -0.002628934 0.000011678 0.999996544 - 0.0 A0: 0.999999998 -0.000061970 0.000000081 0.000061970 0.999999998 0.000000033 -0.000000081 -0.000000033 1.000000000 - 10000.0 A0: 0.999996407 -0.000000007 -0.002680631 -0.000000052 1.000000000 -0.000022198 0.002680631 0.000022198 0.999996407 - 10000.0 A0: 0.999996407 -0.000000007 -0.002680631 -0.000000052 1.000000000 -0.000022198 0.002680631 0.000022198 0.999996407 --10000.0 A1: 0.999997 -0.000000 0.002629 0.000000 1.000000 -0.000012 -0.002629 0.000012 0.999997 - 0.0 A1: 1.000000 -0.000062 0.000000 0.000062 1.000000 0.000000 -0.000000 -0.000000 1.000000 - 10000.0 A1: 0.999996 -0.000000 -0.002681 -0.000000 1.000000 -0.000022 0.002681 0.000022 0.999996 - 10000.0 A1: 0.999996 -0.000000 -0.002681 -0.000000 1.000000 -0.000022 0.002681 0.000022 0.999996 +-10000.0 A0: 2 0.999996544 -0.000000014 0.002628934 0.000000045 1.000000000 -0.000011678 -0.002628934 0.000011678 0.999996544 + 0.0 A0: 2 1.000000000 0.000000010 0.000026946 -0.000000011 1.000000000 0.000028005 -0.000026946 -0.000028005 0.999999999 + 10000.0 A0: 2 0.999996407 -0.000000007 -0.002680635 -0.000000052 1.000000000 -0.000022183 0.002680635 0.000022183 0.999996407 + 10000.0 A0: 2 0.999996407 -0.000000007 -0.002680635 -0.000000052 1.000000000 -0.000022183 0.002680635 0.000022183 0.999996407 +-10000.0 A1: 2 0.999997 -0.000000 0.002629 0.000000 1.000000 -0.000012 -0.002629 0.000012 0.999997 + 0.0 A1: 2 1.000000 0.000000 0.000027 -0.000000 1.000000 0.000028 -0.000027 -0.000028 1.000000 + 10000.0 A1: 2 0.999996 -0.000000 -0.002681 -0.000000 1.000000 -0.000022 0.002681 0.000022 0.999996 + 10000.0 A1: 2 0.999996 -0.000000 -0.002681 -0.000000 1.000000 -0.000022 0.002681 0.000022 0.999996 diff --git a/test/reference/cio_location.out b/test/reference/cio_location.out index 2e8e689f..ad8a1d0b 100644 --- a/test/reference/cio_location.out +++ b/test/reference/cio_location.out @@ -1,8 +1,8 @@ -10000.0 A0: 2 -0.023103017 2 -0.023103017 - 0.0 A0: 2 -0.000236437 2 -0.000236437 - 10000.0 A0: 2 0.023566351 2 0.023566351 - 10000.0 A0: 2 0.023566351 2 0.023566351 --10000.0 A1: 2 -0.023103051 2 -0.023103051 - 0.0 A1: 2 -0.000236436 2 -0.000236436 - 10000.0 A1: 2 0.023566351 2 0.023566351 - 10000.0 A1: 2 0.023566351 2 0.023566351 + 0.0 A0: 2 -0.000236403 2 -0.000236403 + 10000.0 A0: 2 0.023566385 2 0.023566385 + 10000.0 A0: 2 0.023566385 2 0.023566385 +-10000.0 A1: 2 -0.023103017 2 -0.023103017 + 0.0 A1: 2 -0.000236402 2 -0.000236402 + 10000.0 A1: 2 0.023566385 2 0.023566385 + 10000.0 A1: 2 0.023566385 2 0.023566385 diff --git a/test/reference/cio_ra.out b/test/reference/cio_ra.out index 4a19adc9..08da9b5b 100644 --- a/test/reference/cio_ra.out +++ b/test/reference/cio_ra.out @@ -1,8 +1,8 @@ --10000.0 A0: -1 -0.023103051 - 0.0 A0: -1 -0.000236437 - 10000.0 A0: -1 0.023566351 - 10000.0 A0: -1 0.023566351 --10000.0 A1: -1 -0.023103051 - 0.0 A1: -1 -0.000236436 - 10000.0 A1: -1 0.023566351 - 10000.0 A1: -1 0.023566351 +-10000.0 A0: -1 -0.023103017 + 0.0 A0: -1 -0.000236403 + 10000.0 A0: -1 0.023566385 + 10000.0 A0: -1 0.023566385 +-10000.0 A1: -1 -0.023103017 + 0.0 A1: -1 -0.000236402 + 10000.0 A1: -1 0.023566385 + 10000.0 A1: -1 0.023566385 diff --git a/test/reference/e_tilt.out b/test/reference/e_tilt.out index 4e0216e6..9593548c 100644 --- a/test/reference/e_tilt.out +++ b/test/reference/e_tilt.out @@ -1,8 +1,8 @@ -10000.0 A0: 23.442841 23.443966 1.003860 16.415313 4.048559 - 0.0 A0: 23.439279 23.437678 -0.852139 -13.933997 -5.766398 - 10000.0 A0: 23.435717 23.437467 0.648300 10.600901 6.298105 - 10000.0 A0: 23.435717 23.437467 0.648300 10.600901 6.298105 --10000.0 A1: 23.442841 23.443967 1.003738 16.413324 4.051553 - 0.0 A1: 23.439279 23.437678 -0.852138 -13.933977 -5.766410 - 10000.0 A1: 23.435717 23.437467 0.648301 10.600913 6.298092 - 10000.0 A1: 23.435717 23.437467 0.648301 10.600913 6.298092 + 0.0 A0: 23.439279 23.437677 -0.852017 -13.931996 -5.769398 + 10000.0 A0: 23.435717 23.437466 0.648422 10.602901 6.295105 + 10000.0 A0: 23.435717 23.437466 0.648422 10.602901 6.295105 +-10000.0 A1: 23.442841 23.443966 1.003860 16.415324 4.048553 + 0.0 A1: 23.439279 23.437677 -0.852016 -13.931977 -5.769410 + 10000.0 A1: 23.435717 23.437466 0.648423 10.602913 6.295092 + 10000.0 A1: 23.435717 23.437466 0.648423 10.602913 6.295092 diff --git a/test/reference/ecl2equ_vec.out b/test/reference/ecl2equ_vec.out index c74cf144..960fcc51 100644 --- a/test/reference/ecl2equ_vec.out +++ b/test/reference/ecl2equ_vec.out @@ -1,49 +1,49 @@ -10000.0 22+20 S2 O0 A0: mean 0.813797681 -0.567131224 0.126868075 --10000.0 22+20 S2 O0 A0: true 0.813797681 -0.567133716 0.126856935 +-10000.0 22+20 S2 O0 A0: true 0.813797681 -0.567133714 0.126856944 -10000.0 22+20 S2 O0 A0: gcrs 0.813797631 -0.567123398 0.126903380 --10000.0 16-20 S2 O0 A0: mean -0.469846310 -0.610597105 -0.637507349 +-10000.0 16-20 S2 O0 A0: mean -0.469846310 -0.610557471 -0.637545308 --10000.0 16-20 S2 O0 A0: true -0.469846310 -0.610544948 -0.637557301 +-10000.0 16-20 S2 O0 A0: true -0.469846310 -0.610544957 -0.637557292 -10000.0 16-20 S2 O0 A0: gcrs -0.469846302 -0.610597050 -0.637507407 0.0 22+20 S2 O0 A0: mean 0.813797681 -0.567123336 0.126903333 - 0.0 22+20 S2 O0 A0: true 0.813797681 -0.567119788 0.126919187 + 0.0 22+20 S2 O0 A0: true 0.813797681 -0.567119786 0.126919196 0.0 22+20 S2 O0 A0: gcrs 0.813797631 -0.567123398 0.126903380 0.0 16-20 S2 O0 A0: mean -0.469846310 -0.610597105 -0.637507349 - 0.0 16-20 S2 O0 A0: true -0.469846310 -0.610614927 -0.637490279 + 0.0 16-20 S2 O0 A0: true -0.469846310 -0.610614936 -0.637490270 0.0 16-20 S2 O0 A0: gcrs -0.469846302 -0.610597050 -0.637507407 10000.0 22+20 S2 O0 A0: mean 0.813797681 -0.567115445 0.126938590 - 10000.0 22+20 S2 O0 A0: true 0.813797681 -0.567119321 0.126921273 + 10000.0 22+20 S2 O0 A0: true 0.813797681 -0.567119319 0.126921282 10000.0 22+20 S2 O0 A0: gcrs 0.813797631 -0.567123398 0.126903380 10000.0 16-20 S2 O0 A0: mean -0.469846310 -0.610636736 -0.637469388 - 10000.0 16-20 S2 O0 A0: true -0.469846310 -0.610617272 -0.637488033 + 10000.0 16-20 S2 O0 A0: true -0.469846310 -0.610617281 -0.637488024 10000.0 16-20 S2 O0 A0: gcrs -0.469846302 -0.610597050 -0.637507407 10000.0 22+20 S2 O0 A0: mean 0.813797681 -0.567115445 0.126938590 - 10000.0 22+20 S2 O0 A0: true 0.813797681 -0.567119321 0.126921273 + 10000.0 22+20 S2 O0 A0: true 0.813797681 -0.567119319 0.126921282 10000.0 22+20 S2 O0 A0: gcrs 0.813797631 -0.567123398 0.126903380 10000.0 16-20 S2 O0 A0: mean -0.469846310 -0.610636736 -0.637469388 - 10000.0 16-20 S2 O0 A0: true -0.469846310 -0.610617272 -0.637488033 + 10000.0 16-20 S2 O0 A0: true -0.469846310 -0.610617281 -0.637488024 10000.0 16-20 S2 O0 A0: gcrs -0.469846302 -0.610597050 -0.637507407 diff --git a/test/reference/ephemeris.out b/test/reference/ephemeris.out index 2bde7d20..a5e2aa8a 100644 --- a/test/reference/ephemeris.out +++ b/test/reference/ephemeris.out @@ -14,35 +14,35 @@ 10000.0 A0: ERROR 13 10000.0 A0: ERROR 13 10000.0 A0: ERROR 13 --10000.0 A1: SUN 0 -0.000009 0.003773 0.001651 -0.000006 -0.000001 -0.000001 +-10000.0 A1: SUN 3 -0.000009 0.003773 0.001651 -0.009747 -0.002548 -0.000896 --10000.0 A1: SUN 1 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 +-10000.0 A1: SUN 3 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 --10000.0 A1: EARTH 0 0.810058 -0.553762 -0.240106 0.010034 0.012571 0.005451 +-10000.0 A1: EARTH 3 0.810058 -0.553762 -0.240106 17.374036 21.766877 9.439017 --10000.0 A1: EARTH 1 0.810068 -0.557535 -0.241757 0.010040 0.012573 0.005452 +-10000.0 A1: EARTH 3 0.810068 -0.557535 -0.241757 17.383783 21.769425 9.439914 - 0.0 A1: SUN 0 -0.007138 -0.002644 -0.000921 0.000005 -0.000007 -0.000003 + 0.0 A1: SUN 3 -0.007138 -0.002644 -0.000921 0.009234 -0.011779 -0.005287 - 0.0 A1: SUN 1 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 0.0 A1: SUN 3 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - 0.0 A1: EARTH 0 -0.184271 0.884782 0.383824 -0.017202 -0.002904 -0.001259 + 0.0 A1: EARTH 3 -0.184271 0.884782 0.383824 -29.784950 -5.028997 -2.180527 - 0.0 A1: EARTH 1 -0.177134 0.887425 0.384746 -0.017208 -0.002898 -0.001256 + 0.0 A1: EARTH 3 -0.177134 0.887425 0.384746 -29.794184 -5.017218 -2.175240 - 10000.0 A1: SUN 0 -0.000010 -0.004018 -0.001669 0.000005 0.000004 0.000002 + 10000.0 A1: SUN 3 -0.000010 -0.004018 -0.001669 0.007845 0.006630 0.002675 - 10000.0 A1: SUN 1 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 10000.0 A1: SUN 3 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - 10000.0 A1: EARTH 0 -0.537235 -0.790493 -0.342586 0.014297 -0.008434 -0.003656 + 10000.0 A1: EARTH 3 -0.537235 -0.790493 -0.342586 24.755316 -14.602263 -6.330115 - 10000.0 A1: EARTH 1 -0.537226 -0.786475 -0.340917 0.014293 -0.008437 -0.003657 + 10000.0 A1: EARTH 3 -0.537226 -0.786475 -0.340917 24.747471 -14.608892 -6.332790 - 10000.0 A1: SUN 0 -0.000010 -0.004018 -0.001669 0.000005 0.000004 0.000002 + 10000.0 A1: SUN 3 -0.000010 -0.004018 -0.001669 0.007845 0.006630 0.002675 - 10000.0 A1: SUN 1 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 10000.0 A1: SUN 3 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - 10000.0 A1: EARTH 0 -0.537235 -0.790493 -0.342586 0.014297 -0.008434 -0.003656 + 10000.0 A1: EARTH 3 -0.537235 -0.790493 -0.342586 24.755316 -14.602263 -6.330115 - 10000.0 A1: EARTH 1 -0.537226 -0.786475 -0.340917 0.014293 -0.008437 -0.003657 + 10000.0 A1: EARTH 3 -0.537226 -0.786475 -0.340917 24.747471 -14.608892 -6.332790 diff --git a/test/reference/equ2ecl.out b/test/reference/equ2ecl.out index 2964bd56..26133d2c 100644 --- a/test/reference/equ2ecl.out +++ b/test/reference/equ2ecl.out @@ -1,7 +1,7 @@ -10000.0 22+20 S2 O0 A0: mean 340.074726 30.046968 --10000.0 22+20 S2 O0 A0: true 340.075338 30.047352 +-10000.0 22+20 S2 O0 A0: true 340.075337 30.047351 -10000.0 22+20 S2 O0 A0: gcrs 340.072793 30.045749 @@ -13,13 +13,13 @@ 0.0 22+20 S2 O0 A0: mean 340.072789 30.045754 - 0.0 22+20 S2 O0 A0: true 340.071918 30.045208 + 0.0 22+20 S2 O0 A0: true 340.071917 30.045208 0.0 22+20 S2 O0 A0: gcrs 340.072793 30.045749 0.0 16-20 S2 O0 A0: mean 241.974181 0.567960 - 0.0 16-20 S2 O0 A0: true 241.974188 0.566546 + 0.0 16-20 S2 O0 A0: true 241.974188 0.566545 0.0 16-20 S2 O0 A0: gcrs 241.974183 0.567964 @@ -31,7 +31,7 @@ 10000.0 16-20 S2 O0 A0: mean 241.974197 0.564815 - 10000.0 16-20 S2 O0 A0: true 241.974189 0.566360 + 10000.0 16-20 S2 O0 A0: true 241.974189 0.566359 10000.0 16-20 S2 O0 A0: gcrs 241.974183 0.567964 @@ -43,13 +43,13 @@ 10000.0 16-20 S2 O0 A0: mean 241.974197 0.564815 - 10000.0 16-20 S2 O0 A0: true 241.974189 0.566360 + 10000.0 16-20 S2 O0 A0: true 241.974189 0.566359 10000.0 16-20 S2 O0 A0: gcrs 241.974183 0.567964 -10000.0 22+20 S2 O0 A1: mean 340.074726 30.046968 --10000.0 22+20 S2 O0 A1: true 340.075338 30.047352 +-10000.0 22+20 S2 O0 A1: true 340.075337 30.047351 -10000.0 22+20 S2 O0 A1: gcrs 340.072793 30.045749 @@ -61,13 +61,13 @@ 0.0 22+20 S2 O0 A1: mean 340.072789 30.045754 - 0.0 22+20 S2 O0 A1: true 340.071918 30.045208 + 0.0 22+20 S2 O0 A1: true 340.071917 30.045208 0.0 22+20 S2 O0 A1: gcrs 340.072793 30.045749 0.0 16-20 S2 O0 A1: mean 241.974181 0.567960 - 0.0 16-20 S2 O0 A1: true 241.974188 0.566546 + 0.0 16-20 S2 O0 A1: true 241.974188 0.566545 0.0 16-20 S2 O0 A1: gcrs 241.974183 0.567964 @@ -79,7 +79,7 @@ 10000.0 16-20 S2 O0 A1: mean 241.974197 0.564815 - 10000.0 16-20 S2 O0 A1: true 241.974189 0.566360 + 10000.0 16-20 S2 O0 A1: true 241.974189 0.566359 10000.0 16-20 S2 O0 A1: gcrs 241.974183 0.567964 @@ -91,6 +91,6 @@ 10000.0 16-20 S2 O0 A1: mean 241.974197 0.564815 - 10000.0 16-20 S2 O0 A1: true 241.974189 0.566360 + 10000.0 16-20 S2 O0 A1: true 241.974189 0.566359 10000.0 16-20 S2 O0 A1: gcrs 241.974183 0.567964 diff --git a/test/reference/equ2hor-refract.out b/test/reference/equ2hor-refract.out index 7aa21d37..c9bf1fd0 100644 --- a/test/reference/equ2hor-refract.out +++ b/test/reference/equ2hor-refract.out @@ -1,32 +1,32 @@ --10000.0 22+20 S2 O1 A0: 135.019352 331.536702 22.000000 20.000000 +-10000.0 22+20 S2 O1 A0: 135.019352 331.536703 22.000000 20.000000 -10000.0 16-20 S2 O1 A0: 115.693174 103.225975 16.000000 -20.000000 - 0.0 22+20 S2 O1 A0: 60.200403 77.812648 21.998001 20.006084 + 0.0 22+20 S2 O1 A0: 60.200402 77.812648 21.998001 20.006084 - 0.0 16-20 S2 O1 A0: 47.114316 213.442327 16.000697 -19.985117 + 0.0 16-20 S2 O1 A0: 47.114316 213.442328 16.000697 -19.985117 - 10000.0 22+20 S2 O1 A0: 66.958900 283.939459 22.002662 20.009308 + 10000.0 22+20 S2 O1 A0: 66.958900 283.939460 22.002662 20.009308 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 - 10000.0 22+20 S2 O1 A0: 66.958900 283.939459 22.002662 20.009308 + 10000.0 22+20 S2 O1 A0: 66.958900 283.939460 22.002662 20.009308 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 --10000.0 22+20 S2 O1 A1: 135.019352 331.536702 22.000000 20.000000 +-10000.0 22+20 S2 O1 A1: 135.019352 331.536703 22.000000 20.000000 -10000.0 16-20 S2 O1 A1: 115.693174 103.225975 16.000000 -20.000000 - 0.0 22+20 S2 O1 A1: 60.200403 77.812648 21.998001 20.006084 + 0.0 22+20 S2 O1 A1: 60.200402 77.812648 21.998001 20.006084 - 0.0 16-20 S2 O1 A1: 47.114316 213.442327 16.000697 -19.985117 + 0.0 16-20 S2 O1 A1: 47.114316 213.442328 16.000697 -19.985117 - 10000.0 22+20 S2 O1 A1: 66.958900 283.939459 22.002662 20.009308 + 10000.0 22+20 S2 O1 A1: 66.958900 283.939460 22.002662 20.009308 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 - 10000.0 22+20 S2 O1 A1: 66.958900 283.939459 22.002662 20.009308 + 10000.0 22+20 S2 O1 A1: 66.958900 283.939460 22.002662 20.009308 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 diff --git a/test/reference/equ2hor.out b/test/reference/equ2hor.out index 11bf1f89..88452252 100644 --- a/test/reference/equ2hor.out +++ b/test/reference/equ2hor.out @@ -1,32 +1,32 @@ --10000.0 22+20 S2 O1 A0: 135.019352 331.536702 22.000000 20.000000 +-10000.0 22+20 S2 O1 A0: 135.019352 331.536703 22.000000 20.000000 -10000.0 16-20 S2 O1 A0: 115.693174 103.225975 16.000000 -20.000000 - 0.0 22+20 S2 O1 A0: 60.229235 77.812648 22.000000 20.000000 + 0.0 22+20 S2 O1 A0: 60.229234 77.812648 22.000000 20.000000 - 0.0 16-20 S2 O1 A0: 47.132151 213.442327 16.000000 -20.000000 + 0.0 16-20 S2 O1 A0: 47.132152 213.442328 16.000000 -20.000000 - 10000.0 22+20 S2 O1 A0: 66.997559 283.939459 22.000000 20.000000 + 10000.0 22+20 S2 O1 A0: 66.997559 283.939460 22.000000 20.000000 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 - 10000.0 22+20 S2 O1 A0: 66.997559 283.939459 22.000000 20.000000 + 10000.0 22+20 S2 O1 A0: 66.997559 283.939460 22.000000 20.000000 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 --10000.0 22+20 S2 O1 A1: 135.019352 331.536702 22.000000 20.000000 +-10000.0 22+20 S2 O1 A1: 135.019352 331.536703 22.000000 20.000000 -10000.0 16-20 S2 O1 A1: 115.693174 103.225975 16.000000 -20.000000 - 0.0 22+20 S2 O1 A1: 60.229235 77.812648 22.000000 20.000000 + 0.0 22+20 S2 O1 A1: 60.229234 77.812648 22.000000 20.000000 - 0.0 16-20 S2 O1 A1: 47.132151 213.442327 16.000000 -20.000000 + 0.0 16-20 S2 O1 A1: 47.132152 213.442328 16.000000 -20.000000 - 10000.0 22+20 S2 O1 A1: 66.997559 283.939459 22.000000 20.000000 + 10000.0 22+20 S2 O1 A1: 66.997559 283.939460 22.000000 20.000000 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 - 10000.0 22+20 S2 O1 A1: 66.997559 283.939459 22.000000 20.000000 + 10000.0 22+20 S2 O1 A1: 66.997559 283.939460 22.000000 20.000000 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 diff --git a/test/reference/gcrs2equ.out b/test/reference/gcrs2equ.out index 78eeb48a..fd8d3360 100644 --- a/test/reference/gcrs2equ.out +++ b/test/reference/gcrs2equ.out @@ -7,9 +7,9 @@ 0.0 16-20 S2 O0 A0: mean 16.000000 -19.999996 - 0.0 16-20 S2 O0 A0: true 15.999751 -19.997839 + 0.0 16-20 S2 O0 A0: true 15.999751 -19.997838 - 0.0 16-20 S2 O0 A0: cirs 15.999987 -19.997839 + 0.0 16-20 S2 O0 A0: cirs 15.999987 -19.997838 0.0 22+20 S2 O0 A1: mean 22.000000 19.999997 @@ -19,6 +19,6 @@ 0.0 16-20 S2 O0 A1: mean 16.000000 -19.999996 - 0.0 16-20 S2 O0 A1: true 15.999751 -19.997839 + 0.0 16-20 S2 O0 A1: true 15.999751 -19.997838 - 0.0 16-20 S2 O0 A1: cirs 15.999987 -19.997839 + 0.0 16-20 S2 O0 A1: cirs 15.999987 -19.997838 diff --git a/test/reference/ira_equinox.out b/test/reference/ira_equinox.out index d19ea41f..fd7fb595 100644 --- a/test/reference/ira_equinox.out +++ b/test/reference/ira_equinox.out @@ -1,8 +1,8 @@ -10000.0 A0: 0.023381867 0.023103017 - 0.0 A0: -0.000000269 0.000236437 - 10000.0 A0: -0.023386268 -0.023566351 - 10000.0 A0: -0.023386268 -0.023566351 --10000.0 A1: 0.023381867 0.023103051 - 0.0 A1: -0.000000269 0.000236436 - 10000.0 A1: -0.023386268 -0.023566351 - 10000.0 A1: -0.023386268 -0.023566351 + 0.0 A0: -0.000000269 0.000236403 + 10000.0 A0: -0.023386268 -0.023566385 + 10000.0 A0: -0.023386268 -0.023566385 +-10000.0 A1: 0.023381867 0.023103017 + 0.0 A1: -0.000000269 0.000236402 + 10000.0 A1: -0.023386268 -0.023566385 + 10000.0 A1: -0.023386268 -0.023566385 diff --git a/test/reference/mean_obliq.out b/test/reference/mean_obliq.out new file mode 100644 index 00000000..80500414 --- /dev/null +++ b/test/reference/mean_obliq.out @@ -0,0 +1,8 @@ +-10000.0 A0: 84394.229154 + 0.0 A0: 84381.406000 + 10000.0 A0: 84368.582819 + 10000.0 A0: 84368.582819 +-10000.0 A1: 84394.229154 + 0.0 A1: 84381.406000 + 10000.0 A1: 84368.582819 + 10000.0 A1: 84368.582819 diff --git a/test/reference/nutation.out b/test/reference/nutation.out index 3314256a..de7bdbef 100644 --- a/test/reference/nutation.out +++ b/test/reference/nutation.out @@ -1,7 +1,7 @@ -10000.0 A0: -nan -nan -nan - 0.0 A0: 0.801841284 -0.548228769 -0.237688393 - 10000.0 A0: -0.187719734 0.901076194 0.390925817 - 10000.0 A0: -0.529087733 -0.778583184 -0.337452805 + 0.0 A0: 0.801841322 -0.548228726 -0.237688365 + 10000.0 A0: -0.187719744 0.901076198 0.390925803 + 10000.0 A0: -0.529087777 -0.778583164 -0.337452783 -10000.0 A1: -0.529064 -0.778601 -0.337450 0.0 A1: 0.801841 -0.548229 -0.237688 10000.0 A1: -0.187720 0.901076 0.390926 diff --git a/test/reference/nutation_angles.out b/test/reference/nutation_angles.out index 7e00529b..9e01865b 100644 --- a/test/reference/nutation_angles.out +++ b/test/reference/nutation_angles.out @@ -1,11 +1,11 @@ -10000.0 A0: current 16.415313 4.048559 -10000.0 A0: future 11.440040 -6.849537 - 0.0 A0: current -13.931997 -5.769398 + 0.0 A0: current -13.931996 -5.769398 0.0 A0: future -15.177080 6.266940 10000.0 A0: current 10.602901 6.295105 - 10000.0 A0: future 18.241196 -4.067556 + 10000.0 A0: future 18.241195 -4.067556 10000.0 A0: current 10.602901 6.295105 - 10000.0 A0: future 18.241196 -4.067556 + 10000.0 A0: future 18.241195 -4.067556 -10000.0 A1: current 16.415324 4.048553 -10000.0 A1: future 11.440054 -6.849539 0.0 A1: current -13.931977 -5.769410 diff --git a/test/reference/place.out b/test/reference/place.out index 179943e3..5cd5c304 100644 --- a/test/reference/place.out +++ b/test/reference/place.out @@ -383,77 +383,77 @@ 10000.0 EARTH S0 O2 A0: ERROR 23 --10000.0 22+20 S2 O0 A1: 0 22.000372 20.001439 0.000000 2.852877 +-10000.0 22+20 S2 O0 A1: 0 22.0004 20.001 0.000 2.9 --10000.0 22+20 S2 O0 A1: 1 21.979075 19.870632 0.000000 2.852877 +-10000.0 22+20 S2 O0 A1: 1 21.9791 19.871 0.000 2.9 --10000.0 22+20 S2 O0 A1: 2 22.002178 19.870505 0.000000 2.852877 +-10000.0 22+20 S2 O0 A1: 2 22.0022 19.871 0.000 2.9 --10000.0 22+20 S2 O0 A1: 3 21.999998 20.000016 0.000000 2.855377 +-10000.0 22+20 S2 O0 A1: 3 22.0000 20.000 0.000 2.9 --10000.0 22+20 S2 O1 A1: 0 22.000366 20.001449 0.000000 2.999982 +-10000.0 22+20 S2 O1 A1: 0 22.0004 20.001 0.000 3.0 --10000.0 22+20 S2 O1 A1: 1 21.979069 19.870642 0.000000 2.999982 +-10000.0 22+20 S2 O1 A1: 1 21.9791 19.871 0.000 3.0 --10000.0 22+20 S2 O1 A1: 2 22.002172 19.870515 0.000000 2.999982 +-10000.0 22+20 S2 O1 A1: 2 22.0022 19.871 0.000 3.0 --10000.0 22+20 S2 O1 A1: 3 21.999998 20.000016 0.000000 3.002415 +-10000.0 22+20 S2 O1 A1: 3 22.0000 20.000 0.000 3.0 --10000.0 22+20 S2 O2 A1: 0 22.000440 20.000879 0.000000 -5.266740 +-10000.0 22+20 S2 O2 A1: 0 22.0004 20.001 0.000 -5.3 --10000.0 22+20 S2 O2 A1: 1 21.979143 19.870070 0.000000 -5.266740 +-10000.0 22+20 S2 O2 A1: 1 21.9791 19.870 0.000 -5.3 --10000.0 22+20 S2 O2 A1: 2 22.002246 19.869943 0.000000 -5.266740 +-10000.0 22+20 S2 O2 A1: 2 22.0022 19.870 0.000 -5.3 --10000.0 22+20 S2 O2 A1: 3 21.999998 20.000016 0.000000 -5.263409 +-10000.0 22+20 S2 O2 A1: 3 22.0000 20.000 0.000 -5.3 --10000.0 16-20 S2 O0 A1: 0 16.000055 -20.000090 0.000000 39.104711 +-10000.0 16-20 S2 O0 A1: 0 16.0001 -20.000 0.000 39.1 --10000.0 16-20 S2 O0 A1: 1 15.973786 -19.925304 0.000000 39.104711 +-10000.0 16-20 S2 O0 A1: 1 15.9738 -19.925 0.000 39.1 --10000.0 16-20 S2 O0 A1: 2 15.996889 -19.925177 0.000000 39.104711 +-10000.0 16-20 S2 O0 A1: 2 15.9969 -19.925 0.000 39.1 --10000.0 16-20 S2 O0 A1: 3 15.999998 -19.999985 0.000000 39.104727 +-10000.0 16-20 S2 O0 A1: 3 16.0000 -20.000 0.000 39.1 --10000.0 16-20 S2 O1 A1: 0 16.000053 -20.000063 0.000000 38.720460 +-10000.0 16-20 S2 O1 A1: 0 16.0001 -20.000 0.000 38.7 --10000.0 16-20 S2 O1 A1: 1 15.973784 -19.925277 0.000000 38.720460 +-10000.0 16-20 S2 O1 A1: 1 15.9738 -19.925 0.000 38.7 --10000.0 16-20 S2 O1 A1: 2 15.996887 -19.925150 0.000000 38.720460 +-10000.0 16-20 S2 O1 A1: 2 15.9969 -19.925 0.000 38.7 --10000.0 16-20 S2 O1 A1: 3 15.999998 -19.999985 0.000000 38.720473 +-10000.0 16-20 S2 O1 A1: 3 16.0000 -20.000 0.000 38.7 --10000.0 16-20 S2 O2 A1: 0 16.000172 -20.000415 0.000000 43.861283 +-10000.0 16-20 S2 O2 A1: 0 16.0002 -20.000 0.000 43.9 --10000.0 16-20 S2 O2 A1: 1 15.973903 -19.925633 0.000000 43.861283 +-10000.0 16-20 S2 O2 A1: 1 15.9739 -19.926 0.000 43.9 --10000.0 16-20 S2 O2 A1: 2 15.997006 -19.925506 0.000000 43.861283 +-10000.0 16-20 S2 O2 A1: 2 15.9970 -19.926 0.000 43.9 --10000.0 16-20 S2 O2 A1: 3 15.999998 -19.999985 0.000000 43.861710 +-10000.0 16-20 S2 O2 A1: 3 16.0000 -20.000 0.000 43.9 --10000.0 SUN S0 O0 A1: 0 9.697103 13.813577 1.012670 -0.337444 +-10000.0 SUN S0 O0 A1: 0 9.6971 13.814 1.013 -0.3 --10000.0 SUN S0 O0 A1: 1 9.672602 13.938013 1.012670 -0.337444 +-10000.0 SUN S0 O0 A1: 1 9.6726 13.938 1.013 -0.3 --10000.0 SUN S0 O0 A1: 2 9.695706 13.937921 1.012670 -0.337444 +-10000.0 SUN S0 O0 A1: 2 9.6957 13.938 1.013 -0.3 --10000.0 SUN S0 O0 A1: 3 9.697468 13.811736 1.012670 -0.334559 +-10000.0 SUN S0 O0 A1: 3 9.6975 13.812 1.013 -0.3 --10000.0 SUN S0 O1 A1: 0 9.697153 13.813299 1.012629 -0.456936 +-10000.0 SUN S0 O1 A1: 0 9.6972 13.813 1.013 -0.5 --10000.0 SUN S0 O1 A1: 1 9.672652 13.937735 1.012629 -0.456936 +-10000.0 SUN S0 O1 A1: 1 9.6727 13.938 1.013 -0.5 --10000.0 SUN S0 O1 A1: 2 9.695755 13.937643 1.012629 -0.456936 +-10000.0 SUN S0 O1 A1: 2 9.6958 13.938 1.013 -0.5 --10000.0 SUN S0 O1 A1: 3 9.697512 13.811463 1.012629 -0.454130 +-10000.0 SUN S0 O1 A1: 3 9.6975 13.811 1.013 -0.5 --10000.0 SUN S0 O2 A1: 0 9.697030 13.813947 1.012671 7.620279 +-10000.0 SUN S0 O2 A1: 0 9.6970 13.814 1.013 7.6 --10000.0 SUN S0 O2 A1: 1 9.672529 13.938381 1.012671 7.620279 +-10000.0 SUN S0 O2 A1: 1 9.6725 13.938 1.013 7.6 --10000.0 SUN S0 O2 A1: 2 9.695633 13.938289 1.012671 7.620279 +-10000.0 SUN S0 O2 A1: 2 9.6956 13.938 1.013 7.6 --10000.0 SUN S0 O2 A1: 3 9.697470 13.811726 1.012671 7.624474 +-10000.0 SUN S0 O2 A1: 3 9.6975 13.812 1.013 7.6 -10000.0 EARTH S0 O0 A1: ERROR 3 @@ -471,85 +471,85 @@ -10000.0 EARTH S0 O1 A1: ERROR 3 --10000.0 EARTH S0 O2 A1: 0 13.136720 -5.615284 0.000001 10.250465 +-10000.0 EARTH S0 O2 A1: 0 13.1367 -5.615 0.000 9.5 --10000.0 EARTH S0 O2 A1: 1 13.113327 -5.471472 0.000001 10.250465 +-10000.0 EARTH S0 O2 A1: 1 13.1133 -5.471 0.000 9.5 --10000.0 EARTH S0 O2 A1: 2 13.136430 -5.471434 0.000001 10.250465 +-10000.0 EARTH S0 O2 A1: 2 13.1364 -5.471 0.000 9.5 --10000.0 EARTH S0 O2 A1: 3 13.136884 -5.616475 0.000001 10.250323 +-10000.0 EARTH S0 O2 A1: 3 13.1369 -5.616 0.000 9.5 - 0.0 22+20 S2 O0 A1: 0 21.999739 20.001131 0.000000 32.618201 + 0.0 22+20 S2 O0 A1: 0 21.9997 20.001 0.000 32.6 - 0.0 22+20 S2 O0 A1: 1 21.999555 20.000595 0.000000 32.618201 + 0.0 22+20 S2 O0 A1: 1 21.9996 20.001 0.000 32.6 - 0.0 22+20 S2 O0 A1: 2 21.999791 20.000595 0.000000 32.618201 + 0.0 22+20 S2 O0 A1: 2 21.9998 20.001 0.000 32.6 - 0.0 22+20 S2 O0 A1: 3 22.000000 19.999999 0.000000 32.619774 + 0.0 22+20 S2 O0 A1: 3 22.0000 20.000 0.000 32.6 - 0.0 22+20 S2 O1 A1: 0 21.999742 20.001105 0.000000 32.246157 + 0.0 22+20 S2 O1 A1: 0 21.9997 20.001 0.000 32.2 - 0.0 22+20 S2 O1 A1: 1 21.999558 20.000569 0.000000 32.246157 + 0.0 22+20 S2 O1 A1: 1 21.9996 20.001 0.000 32.2 - 0.0 22+20 S2 O1 A1: 2 21.999794 20.000569 0.000000 32.246157 + 0.0 22+20 S2 O1 A1: 2 21.9998 20.001 0.000 32.2 - 0.0 22+20 S2 O1 A1: 3 22.000000 19.999999 0.000000 32.247698 + 0.0 22+20 S2 O1 A1: 3 22.0000 20.000 0.000 32.2 - 0.0 22+20 S2 O2 A1: 0 21.999807 20.000564 0.000000 24.480685 + 0.0 22+20 S2 O2 A1: 0 21.9998 20.001 0.000 24.5 - 0.0 22+20 S2 O2 A1: 1 21.999623 20.000029 0.000000 24.480685 + 0.0 22+20 S2 O2 A1: 1 21.9996 20.000 0.000 24.5 - 0.0 22+20 S2 O2 A1: 2 21.999859 20.000029 0.000000 24.480685 + 0.0 22+20 S2 O2 A1: 2 21.9999 20.000 0.000 24.5 - 0.0 22+20 S2 O2 A1: 3 22.000000 19.999999 0.000000 24.481544 + 0.0 22+20 S2 O2 A1: 3 22.0000 20.000 0.000 24.5 - 0.0 16-20 S2 O0 A1: 0 15.999684 -19.999133 0.000000 -8.838830 + 0.0 16-20 S2 O0 A1: 0 15.9997 -19.999 0.000 -8.8 - 0.0 16-20 S2 O0 A1: 1 15.999435 -19.996972 0.000000 -8.838830 + 0.0 16-20 S2 O0 A1: 1 15.9994 -19.997 0.000 -8.8 - 0.0 16-20 S2 O0 A1: 2 15.999671 -19.996972 0.000000 -8.838830 + 0.0 16-20 S2 O0 A1: 2 15.9997 -19.997 0.000 -8.8 - 0.0 16-20 S2 O0 A1: 3 16.000000 -20.000000 0.000000 -8.836703 + 0.0 16-20 S2 O0 A1: 3 16.0000 -20.000 0.000 -8.8 - 0.0 16-20 S2 O1 A1: 0 15.999690 -19.999145 0.000000 -8.664187 + 0.0 16-20 S2 O1 A1: 0 15.9997 -19.999 0.000 -8.7 - 0.0 16-20 S2 O1 A1: 1 15.999440 -19.996984 0.000000 -8.664187 + 0.0 16-20 S2 O1 A1: 1 15.9994 -19.997 0.000 -8.7 - 0.0 16-20 S2 O1 A1: 2 15.999677 -19.996984 0.000000 -8.664187 + 0.0 16-20 S2 O1 A1: 2 15.9997 -19.997 0.000 -8.7 - 0.0 16-20 S2 O1 A1: 3 16.000000 -20.000000 0.000000 -8.662127 + 0.0 16-20 S2 O1 A1: 3 16.0000 -20.000 0.000 -8.7 - 0.0 16-20 S2 O2 A1: 0 15.999802 -19.999460 0.000000 -4.138074 + 0.0 16-20 S2 O2 A1: 0 15.9998 -19.999 0.000 -4.1 - 0.0 16-20 S2 O2 A1: 1 15.999552 -19.997299 0.000000 -4.138074 + 0.0 16-20 S2 O2 A1: 1 15.9996 -19.997 0.000 -4.1 - 0.0 16-20 S2 O2 A1: 2 15.999789 -19.997299 0.000000 -4.138074 + 0.0 16-20 S2 O2 A1: 2 15.9998 -19.997 0.000 -4.1 - 0.0 16-20 S2 O2 A1: 3 16.000000 -20.000000 0.000000 -4.137177 + 0.0 16-20 S2 O2 A1: 3 16.0000 -20.000 0.000 -4.1 - 0.0 SUN S0 O0 A1: 0 18.752123 -23.033991 0.983326 -0.016550 + 0.0 SUN S0 O0 A1: 0 18.7521 -23.034 0.983 -0.0 - 0.0 SUN S0 O0 A1: 1 18.751835 -23.032720 0.983326 -0.016550 + 0.0 SUN S0 O0 A1: 1 18.7518 -23.033 0.983 -0.0 - 0.0 SUN S0 O0 A1: 2 18.752072 -23.032720 0.983326 -0.016550 + 0.0 SUN S0 O0 A1: 2 18.7521 -23.033 0.983 -0.0 - 0.0 SUN S0 O0 A1: 3 18.752541 -23.033540 0.983326 -0.013490 + 0.0 SUN S0 O0 A1: 3 18.7525 -23.034 0.983 -0.0 - 0.0 SUN S0 O1 A1: 0 18.752176 -23.035637 0.983296 -0.128045 + 0.0 SUN S0 O1 A1: 0 18.7522 -23.036 0.983 -0.1 - 0.0 SUN S0 O1 A1: 1 18.751888 -23.034366 0.983296 -0.128045 + 0.0 SUN S0 O1 A1: 1 18.7519 -23.034 0.983 -0.1 - 0.0 SUN S0 O1 A1: 2 18.752124 -23.034366 0.983296 -0.128045 + 0.0 SUN S0 O1 A1: 2 18.7521 -23.034 0.983 -0.1 - 0.0 SUN S0 O1 A1: 3 18.752588 -23.035195 0.983296 -0.125070 + 0.0 SUN S0 O1 A1: 3 18.7526 -23.035 0.983 -0.1 - 0.0 SUN S0 O2 A1: 0 18.752257 -23.033846 0.983326 -1.814770 + 0.0 SUN S0 O2 A1: 0 18.7523 -23.034 0.983 -1.8 - 0.0 SUN S0 O2 A1: 1 18.751968 -23.032576 0.983326 -1.814770 + 0.0 SUN S0 O2 A1: 1 18.7520 -23.033 0.983 -1.8 - 0.0 SUN S0 O2 A1: 2 18.752205 -23.032576 0.983326 -1.814770 + 0.0 SUN S0 O2 A1: 2 18.7522 -23.033 0.983 -1.8 - 0.0 SUN S0 O2 A1: 3 18.752538 -23.033542 0.983326 -1.813377 + 0.0 SUN S0 O2 A1: 3 18.7525 -23.034 0.983 -1.8 0.0 EARTH S0 O0 A1: ERROR 3 @@ -567,85 +567,85 @@ 0.0 EARTH S0 O1 A1: ERROR 3 - 0.0 EARTH S0 O2 A1: 0 13.113552 -5.473375 0.000001 9.917766 + 0.0 EARTH S0 O2 A1: 0 13.1136 -5.473 0.000 9.5 - 0.0 EARTH S0 O2 A1: 1 13.113322 -5.471435 0.000001 9.917766 + 0.0 EARTH S0 O2 A1: 1 13.1133 -5.471 0.000 9.5 - 0.0 EARTH S0 O2 A1: 2 13.113559 -5.471435 0.000001 9.917766 + 0.0 EARTH S0 O2 A1: 2 13.1136 -5.471 0.000 9.5 - 0.0 EARTH S0 O2 A1: 3 13.113563 -5.473332 0.000001 9.917759 + 0.0 EARTH S0 O2 A1: 3 13.1136 -5.473 0.000 9.5 - 10000.0 22+20 S2 O0 A1: 0 21.999998 19.996969 0.000000 -14.845488 + 10000.0 22+20 S2 O0 A1: 0 22.0000 19.997 0.000 -14.8 - 10000.0 22+20 S2 O0 A1: 1 22.021667 20.129326 0.000000 -14.845488 + 10000.0 22+20 S2 O0 A1: 1 22.0217 20.129 0.000 -14.8 - 10000.0 22+20 S2 O0 A1: 2 21.998100 20.129194 0.000000 -14.845488 + 10000.0 22+20 S2 O0 A1: 2 21.9981 20.129 0.000 -14.8 - 10000.0 22+20 S2 O0 A1: 3 22.000002 19.999985 0.000000 -14.844754 + 10000.0 22+20 S2 O0 A1: 3 22.0000 20.000 0.000 -14.8 - 10000.0 22+20 S2 O1 A1: 0 22.000000 19.996997 0.000000 -14.456800 + 10000.0 22+20 S2 O1 A1: 0 22.0000 19.997 0.000 -14.5 - 10000.0 22+20 S2 O1 A1: 1 22.021669 20.129353 0.000000 -14.456800 + 10000.0 22+20 S2 O1 A1: 1 22.0217 20.129 0.000 -14.5 - 10000.0 22+20 S2 O1 A1: 2 21.998102 20.129221 0.000000 -14.456800 + 10000.0 22+20 S2 O1 A1: 2 21.9981 20.129 0.000 -14.5 - 10000.0 22+20 S2 O1 A1: 3 22.000002 19.999985 0.000000 -14.456082 + 10000.0 22+20 S2 O1 A1: 3 22.0000 20.000 0.000 -14.5 - 10000.0 22+20 S2 O2 A1: 0 22.000065 19.996396 0.000000 -23.003150 + 10000.0 22+20 S2 O2 A1: 0 22.0001 19.996 0.000 -23.0 - 10000.0 22+20 S2 O2 A1: 1 22.021734 20.128754 0.000000 -23.003150 + 10000.0 22+20 S2 O2 A1: 1 22.0217 20.129 0.000 -23.0 - 10000.0 22+20 S2 O2 A1: 2 21.998168 20.128622 0.000000 -23.003150 + 10000.0 22+20 S2 O2 A1: 2 21.9982 20.129 0.000 -23.0 - 10000.0 22+20 S2 O2 A1: 3 22.000002 19.999985 0.000000 -23.002064 + 10000.0 22+20 S2 O2 A1: 3 22.0000 20.000 0.000 -23.0 - 10000.0 16-20 S2 O0 A1: 0 16.000391 -20.001134 0.000000 7.575879 + 10000.0 16-20 S2 O0 A1: 0 16.0004 -20.001 0.000 7.6 - 10000.0 16-20 S2 O0 A1: 1 16.027178 -20.078961 0.000000 7.575879 + 10000.0 16-20 S2 O0 A1: 1 16.0272 -20.079 0.000 7.6 - 10000.0 16-20 S2 O0 A1: 2 16.003611 -20.078829 0.000000 7.575879 + 10000.0 16-20 S2 O0 A1: 2 16.0036 -20.079 0.000 7.6 - 10000.0 16-20 S2 O0 A1: 3 16.000002 -20.000015 0.000000 7.578439 + 10000.0 16-20 S2 O0 A1: 3 16.0000 -20.000 0.000 7.6 - 10000.0 16-20 S2 O1 A1: 0 16.000386 -20.001143 0.000000 7.707806 + 10000.0 16-20 S2 O1 A1: 0 16.0004 -20.001 0.000 7.7 - 10000.0 16-20 S2 O1 A1: 1 16.027172 -20.078970 0.000000 7.707806 + 10000.0 16-20 S2 O1 A1: 1 16.0272 -20.079 0.000 7.7 - 10000.0 16-20 S2 O1 A1: 2 16.003606 -20.078838 0.000000 7.707806 + 10000.0 16-20 S2 O1 A1: 2 16.0036 -20.079 0.000 7.7 - 10000.0 16-20 S2 O1 A1: 3 16.000002 -20.000015 0.000000 7.710293 + 10000.0 16-20 S2 O1 A1: 3 16.0000 -20.000 0.000 7.7 - 10000.0 16-20 S2 O2 A1: 0 16.000509 -20.001463 0.000000 12.212109 + 10000.0 16-20 S2 O2 A1: 0 16.0005 -20.001 0.000 12.2 - 10000.0 16-20 S2 O2 A1: 1 16.027296 -20.079285 0.000000 12.212109 + 10000.0 16-20 S2 O2 A1: 1 16.0273 -20.079 0.000 12.2 - 10000.0 16-20 S2 O2 A1: 2 16.003729 -20.079153 0.000000 12.212109 + 10000.0 16-20 S2 O2 A1: 2 16.0037 -20.079 0.000 12.2 - 10000.0 16-20 S2 O2 A1: 3 16.000002 -20.000015 0.000000 12.216571 + 10000.0 16-20 S2 O2 A1: 3 16.0000 -20.000 0.000 12.2 - 10000.0 SUN S0 O0 A1: 0 3.710532 19.692978 1.011622 0.345113 + 10000.0 SUN S0 O0 A1: 0 3.7105 19.693 1.012 0.3 - 10000.0 SUN S0 O0 A1: 1 3.737115 19.780623 1.011622 0.345113 + 10000.0 SUN S0 O0 A1: 1 3.7371 19.781 1.012 0.3 - 10000.0 SUN S0 O0 A1: 2 3.713549 19.780492 1.011622 0.345113 + 10000.0 SUN S0 O0 A1: 2 3.7135 19.780 1.012 0.3 - 10000.0 SUN S0 O0 A1: 3 3.710920 19.694240 1.011622 0.348002 + 10000.0 SUN S0 O0 A1: 3 3.7109 19.694 1.012 0.3 - 10000.0 SUN S0 O1 A1: 0 3.710578 19.692945 1.011581 0.242886 + 10000.0 SUN S0 O1 A1: 0 3.7106 19.693 1.012 0.2 - 10000.0 SUN S0 O1 A1: 1 3.737161 19.780588 1.011581 0.242886 + 10000.0 SUN S0 O1 A1: 1 3.7372 19.781 1.012 0.2 - 10000.0 SUN S0 O1 A1: 2 3.713595 19.780457 1.011581 0.242886 + 10000.0 SUN S0 O1 A1: 2 3.7136 19.780 1.012 0.2 - 10000.0 SUN S0 O1 A1: 3 3.710960 19.694213 1.011581 0.245695 + 10000.0 SUN S0 O1 A1: 3 3.7110 19.694 1.012 0.2 - 10000.0 SUN S0 O2 A1: 0 3.710422 19.692620 1.011622 -4.911115 + 10000.0 SUN S0 O2 A1: 0 3.7104 19.693 1.012 -4.9 - 10000.0 SUN S0 O2 A1: 1 3.737005 19.780268 1.011622 -4.911115 + 10000.0 SUN S0 O2 A1: 1 3.7370 19.780 1.012 -4.9 - 10000.0 SUN S0 O2 A1: 2 3.713438 19.780138 1.011622 -4.911115 + 10000.0 SUN S0 O2 A1: 2 3.7134 19.780 1.012 -4.9 - 10000.0 SUN S0 O2 A1: 3 3.710922 19.694247 1.011622 -4.906314 + 10000.0 SUN S0 O2 A1: 3 3.7109 19.694 1.012 -4.9 10000.0 EARTH S0 O0 A1: ERROR 3 @@ -663,85 +663,85 @@ 10000.0 EARTH S0 O1 A1: ERROR 3 - 10000.0 EARTH S0 O2 A1: 0 13.089479 -5.323629 0.000001 10.211847 + 10000.0 EARTH S0 O2 A1: 0 13.0895 -5.324 0.000 9.5 - 10000.0 EARTH S0 O2 A1: 1 13.113310 -5.471369 0.000001 10.211847 + 10000.0 EARTH S0 O2 A1: 1 13.1133 -5.471 0.000 9.5 - 10000.0 EARTH S0 O2 A1: 2 13.089744 -5.471330 0.000001 10.211847 + 10000.0 EARTH S0 O2 A1: 2 13.0897 -5.471 0.000 9.5 - 10000.0 EARTH S0 O2 A1: 3 13.089174 -5.321901 0.000001 10.212103 + 10000.0 EARTH S0 O2 A1: 3 13.0892 -5.322 0.000 9.5 - 10000.0 22+20 S2 O0 A1: 0 21.999998 19.996969 0.000000 -14.845488 + 10000.0 22+20 S2 O0 A1: 0 22.0000 19.997 0.000 -14.8 - 10000.0 22+20 S2 O0 A1: 1 22.021667 20.129326 0.000000 -14.845488 + 10000.0 22+20 S2 O0 A1: 1 22.0217 20.129 0.000 -14.8 - 10000.0 22+20 S2 O0 A1: 2 21.998100 20.129194 0.000000 -14.845488 + 10000.0 22+20 S2 O0 A1: 2 21.9981 20.129 0.000 -14.8 - 10000.0 22+20 S2 O0 A1: 3 22.000002 19.999985 0.000000 -14.844754 + 10000.0 22+20 S2 O0 A1: 3 22.0000 20.000 0.000 -14.8 - 10000.0 22+20 S2 O1 A1: 0 22.000000 19.996997 0.000000 -14.456800 + 10000.0 22+20 S2 O1 A1: 0 22.0000 19.997 0.000 -14.5 - 10000.0 22+20 S2 O1 A1: 1 22.021669 20.129353 0.000000 -14.456800 + 10000.0 22+20 S2 O1 A1: 1 22.0217 20.129 0.000 -14.5 - 10000.0 22+20 S2 O1 A1: 2 21.998102 20.129221 0.000000 -14.456800 + 10000.0 22+20 S2 O1 A1: 2 21.9981 20.129 0.000 -14.5 - 10000.0 22+20 S2 O1 A1: 3 22.000002 19.999985 0.000000 -14.456082 + 10000.0 22+20 S2 O1 A1: 3 22.0000 20.000 0.000 -14.5 - 10000.0 22+20 S2 O2 A1: 0 22.000065 19.996396 0.000000 -23.003150 + 10000.0 22+20 S2 O2 A1: 0 22.0001 19.996 0.000 -23.0 - 10000.0 22+20 S2 O2 A1: 1 22.021734 20.128754 0.000000 -23.003150 + 10000.0 22+20 S2 O2 A1: 1 22.0217 20.129 0.000 -23.0 - 10000.0 22+20 S2 O2 A1: 2 21.998168 20.128622 0.000000 -23.003150 + 10000.0 22+20 S2 O2 A1: 2 21.9982 20.129 0.000 -23.0 - 10000.0 22+20 S2 O2 A1: 3 22.000002 19.999985 0.000000 -23.002064 + 10000.0 22+20 S2 O2 A1: 3 22.0000 20.000 0.000 -23.0 - 10000.0 16-20 S2 O0 A1: 0 16.000391 -20.001134 0.000000 7.575879 + 10000.0 16-20 S2 O0 A1: 0 16.0004 -20.001 0.000 7.6 - 10000.0 16-20 S2 O0 A1: 1 16.027178 -20.078961 0.000000 7.575879 + 10000.0 16-20 S2 O0 A1: 1 16.0272 -20.079 0.000 7.6 - 10000.0 16-20 S2 O0 A1: 2 16.003611 -20.078829 0.000000 7.575879 + 10000.0 16-20 S2 O0 A1: 2 16.0036 -20.079 0.000 7.6 - 10000.0 16-20 S2 O0 A1: 3 16.000002 -20.000015 0.000000 7.578439 + 10000.0 16-20 S2 O0 A1: 3 16.0000 -20.000 0.000 7.6 - 10000.0 16-20 S2 O1 A1: 0 16.000386 -20.001143 0.000000 7.707806 + 10000.0 16-20 S2 O1 A1: 0 16.0004 -20.001 0.000 7.7 - 10000.0 16-20 S2 O1 A1: 1 16.027172 -20.078970 0.000000 7.707806 + 10000.0 16-20 S2 O1 A1: 1 16.0272 -20.079 0.000 7.7 - 10000.0 16-20 S2 O1 A1: 2 16.003606 -20.078838 0.000000 7.707806 + 10000.0 16-20 S2 O1 A1: 2 16.0036 -20.079 0.000 7.7 - 10000.0 16-20 S2 O1 A1: 3 16.000002 -20.000015 0.000000 7.710293 + 10000.0 16-20 S2 O1 A1: 3 16.0000 -20.000 0.000 7.7 - 10000.0 16-20 S2 O2 A1: 0 16.000509 -20.001463 0.000000 12.212109 + 10000.0 16-20 S2 O2 A1: 0 16.0005 -20.001 0.000 12.2 - 10000.0 16-20 S2 O2 A1: 1 16.027296 -20.079285 0.000000 12.212109 + 10000.0 16-20 S2 O2 A1: 1 16.0273 -20.079 0.000 12.2 - 10000.0 16-20 S2 O2 A1: 2 16.003729 -20.079153 0.000000 12.212109 + 10000.0 16-20 S2 O2 A1: 2 16.0037 -20.079 0.000 12.2 - 10000.0 16-20 S2 O2 A1: 3 16.000002 -20.000015 0.000000 12.216571 + 10000.0 16-20 S2 O2 A1: 3 16.0000 -20.000 0.000 12.2 - 10000.0 SUN S0 O0 A1: 0 3.710532 19.692978 1.011622 0.345113 + 10000.0 SUN S0 O0 A1: 0 3.7105 19.693 1.012 0.3 - 10000.0 SUN S0 O0 A1: 1 3.737115 19.780623 1.011622 0.345113 + 10000.0 SUN S0 O0 A1: 1 3.7371 19.781 1.012 0.3 - 10000.0 SUN S0 O0 A1: 2 3.713549 19.780492 1.011622 0.345113 + 10000.0 SUN S0 O0 A1: 2 3.7135 19.780 1.012 0.3 - 10000.0 SUN S0 O0 A1: 3 3.710920 19.694240 1.011622 0.348002 + 10000.0 SUN S0 O0 A1: 3 3.7109 19.694 1.012 0.3 - 10000.0 SUN S0 O1 A1: 0 3.710578 19.692945 1.011581 0.242886 + 10000.0 SUN S0 O1 A1: 0 3.7106 19.693 1.012 0.2 - 10000.0 SUN S0 O1 A1: 1 3.737161 19.780588 1.011581 0.242886 + 10000.0 SUN S0 O1 A1: 1 3.7372 19.781 1.012 0.2 - 10000.0 SUN S0 O1 A1: 2 3.713595 19.780457 1.011581 0.242886 + 10000.0 SUN S0 O1 A1: 2 3.7136 19.780 1.012 0.2 - 10000.0 SUN S0 O1 A1: 3 3.710960 19.694213 1.011581 0.245695 + 10000.0 SUN S0 O1 A1: 3 3.7110 19.694 1.012 0.2 - 10000.0 SUN S0 O2 A1: 0 3.710422 19.692620 1.011622 -4.911115 + 10000.0 SUN S0 O2 A1: 0 3.7104 19.693 1.012 -4.9 - 10000.0 SUN S0 O2 A1: 1 3.737005 19.780268 1.011622 -4.911115 + 10000.0 SUN S0 O2 A1: 1 3.7370 19.780 1.012 -4.9 - 10000.0 SUN S0 O2 A1: 2 3.713438 19.780138 1.011622 -4.911115 + 10000.0 SUN S0 O2 A1: 2 3.7134 19.780 1.012 -4.9 - 10000.0 SUN S0 O2 A1: 3 3.710922 19.694247 1.011622 -4.906314 + 10000.0 SUN S0 O2 A1: 3 3.7109 19.694 1.012 -4.9 10000.0 EARTH S0 O0 A1: ERROR 3 @@ -759,10 +759,10 @@ 10000.0 EARTH S0 O1 A1: ERROR 3 - 10000.0 EARTH S0 O2 A1: 0 13.089479 -5.323629 0.000001 10.211847 + 10000.0 EARTH S0 O2 A1: 0 13.0895 -5.324 0.000 9.5 - 10000.0 EARTH S0 O2 A1: 1 13.113310 -5.471369 0.000001 10.211847 + 10000.0 EARTH S0 O2 A1: 1 13.1133 -5.471 0.000 9.5 - 10000.0 EARTH S0 O2 A1: 2 13.089744 -5.471330 0.000001 10.211847 + 10000.0 EARTH S0 O2 A1: 2 13.0897 -5.471 0.000 9.5 - 10000.0 EARTH S0 O2 A1: 3 13.089174 -5.321901 0.000001 10.212103 + 10000.0 EARTH S0 O2 A1: 3 13.0892 -5.322 0.000 9.5 diff --git a/test/reference/ter2cel.out b/test/reference/ter2cel.out index 9fa6274c..6d1c2ee9 100644 --- a/test/reference/ter2cel.out +++ b/test/reference/ter2cel.out @@ -1,51 +1,51 @@ --10000.0 22+20 S2 O0 A0: ERA GCRS -0.388158783 0.856188057 0.340990865 +-10000.0 22+20 S2 O0 A0: ERA GCRS -0.388158782 0.856188052 0.340990879 --10000.0 22+20 S2 O0 A0: GST GCRS -0.388158783 0.856188057 0.340990865 +-10000.0 22+20 S2 O0 A0: GST GCRS -0.388158782 0.856188052 0.340990879 --10000.0 22+20 S2 O0 A0: GST TOD -0.382075445 0.858510673 0.342020143 +-10000.0 22+20 S2 O0 A0: GST TOD -0.382075453 0.858510670 0.342020143 --10000.0 16-20 S2 O0 A0: ERA GCRS 0.857080261 0.387256999 -0.339772635 +-10000.0 16-20 S2 O0 A0: ERA GCRS 0.857080260 0.387257004 -0.339772632 --10000.0 16-20 S2 O0 A0: GST GCRS 0.857080261 0.387256999 -0.339772635 +-10000.0 16-20 S2 O0 A0: GST GCRS 0.857080260 0.387257004 -0.339772632 --10000.0 16-20 S2 O0 A0: GST TOD 0.858510673 0.382075445 -0.342020143 +-10000.0 16-20 S2 O0 A0: GST TOD 0.858510670 0.382075453 -0.342020143 - 0.0 22+20 S2 O0 A0: ERA GCRS -0.314293817 -0.885587018 0.341986886 + 0.0 22+20 S2 O0 A0: ERA GCRS -0.314293815 -0.885587023 0.341986874 - 0.0 22+20 S2 O0 A0: GST GCRS -0.314293817 -0.885587018 0.341986886 + 0.0 22+20 S2 O0 A0: GST GCRS -0.314293815 -0.885587023 0.341986874 - 0.0 22+20 S2 O0 A0: GST TOD -0.314339424 -0.885557987 0.342020143 + 0.0 22+20 S2 O0 A0: GST TOD -0.314339416 -0.885557990 0.342020143 - 0.0 16-20 S2 O0 A0: ERA GCRS -0.885568228 0.314294173 -0.342035212 + 0.0 16-20 S2 O0 A0: ERA GCRS -0.885568229 0.314294178 -0.342035204 - 0.0 16-20 S2 O0 A0: GST GCRS -0.885568228 0.314294173 -0.342035212 + 0.0 16-20 S2 O0 A0: GST GCRS -0.885568229 0.314294178 -0.342035204 - 0.0 16-20 S2 O0 A0: GST TOD -0.885557987 0.314339424 -0.342020143 + 0.0 16-20 S2 O0 A0: GST TOD -0.885557990 0.314339416 -0.342020143 - 10000.0 22+20 S2 O0 A0: ERA GCRS 0.841265067 0.420521499 0.339756908 + 10000.0 22+20 S2 O0 A0: ERA GCRS 0.841265068 0.420521494 0.339756911 - 10000.0 22+20 S2 O0 A0: GST GCRS 0.841265067 0.420521499 0.339756908 + 10000.0 22+20 S2 O0 A0: GST GCRS 0.841265068 0.420521494 0.339756911 - 10000.0 22+20 S2 O0 A0: GST TOD 0.837740874 0.425690556 0.342020143 + 10000.0 22+20 S2 O0 A0: GST TOD 0.837740870 0.425690564 0.342020143 - 10000.0 16-20 S2 O0 A0: ERA GCRS 0.419595616 -0.840358873 -0.343127504 + 10000.0 16-20 S2 O0 A0: ERA GCRS 0.419595615 -0.840358868 -0.343127518 - 10000.0 16-20 S2 O0 A0: GST GCRS 0.419595616 -0.840358873 -0.343127504 + 10000.0 16-20 S2 O0 A0: GST GCRS 0.419595615 -0.840358868 -0.343127518 - 10000.0 16-20 S2 O0 A0: GST TOD 0.425690556 -0.837740874 -0.342020143 + 10000.0 16-20 S2 O0 A0: GST TOD 0.425690564 -0.837740870 -0.342020143 - 10000.0 22+20 S2 O0 A0: ERA GCRS 0.841265067 0.420521499 0.339756908 + 10000.0 22+20 S2 O0 A0: ERA GCRS 0.841265068 0.420521494 0.339756911 - 10000.0 22+20 S2 O0 A0: GST GCRS 0.841265067 0.420521499 0.339756908 + 10000.0 22+20 S2 O0 A0: GST GCRS 0.841265068 0.420521494 0.339756911 - 10000.0 22+20 S2 O0 A0: GST TOD 0.837740874 0.425690556 0.342020143 + 10000.0 22+20 S2 O0 A0: GST TOD 0.837740870 0.425690564 0.342020143 - 10000.0 16-20 S2 O0 A0: ERA GCRS 0.419595616 -0.840358873 -0.343127504 + 10000.0 16-20 S2 O0 A0: ERA GCRS 0.419595615 -0.840358868 -0.343127518 - 10000.0 16-20 S2 O0 A0: GST GCRS 0.419595616 -0.840358873 -0.343127504 + 10000.0 16-20 S2 O0 A0: GST GCRS 0.419595615 -0.840358868 -0.343127518 - 10000.0 16-20 S2 O0 A0: GST TOD 0.425690556 -0.837740874 -0.342020143 + 10000.0 16-20 S2 O0 A0: GST TOD 0.425690564 -0.837740870 -0.342020143 -10000.0 22+20 S2 O0 A1: ERA GCRS -0.388159 0.856188 0.340991 diff --git a/test/src/test.c b/test/src/test.c index 8e025394..1d453718 100644 --- a/test/src/test.c +++ b/test/src/test.c @@ -257,6 +257,9 @@ static void test_ephemeris() { openfile("ephemeris"); if(is_ok(ephemeris(tdb2, &body[i], j, accuracy, pos1, vel1))) { + int j; + for(j = 0; j < 3; j++) vel1[j] *= 1e-3 * (1.4959787069098932e+11 / 86400.0); + fprintf(fp, "%-10s %d ", body[i].name, j); printvector(pos1); printvector(vel1); @@ -271,6 +274,11 @@ static void test_era() { fprintf(fp, "%12.6f", era(tdb, 0.0)); } +static void test_mean_obliq() { + openfile("mean_obliq"); + fprintf(fp, "%12.6f", mean_obliq(tdb)); +} + static void test_ee_ct() { openfile("ee_ct"); fprintf(fp, "A%d %12.6f", accuracy, ee_ct(tdb, 0.0, accuracy) / ARCSEC); @@ -336,24 +344,24 @@ static void test_cel_pole() { double a, b, c, dpsi = 0.0, deps = 0.0; openfile("cel_pole"); - cel_pole(tdb, 0, 0.0, 0.0); + cel_pole(tdb, 1, 0.0, 0.0); e_tilt(tdb, accuracy, &a, &b, &c, &dpsi, &deps); - fprintf(fp, "XY %12.6f %12.6f ", dpsi, deps); + fprintf(fp, "PE %12.6f %12.6f ", dpsi, deps); - cel_pole(tdb, 0, -2.0, 3.0); + cel_pole(tdb, 1, -2.0, 3.0); e_tilt(tdb, accuracy, &a, &b, &c, &dpsi, &deps); fprintf(fp, "%12.6f %12.6f ", dpsi, deps); openfile("cel_pole"); - cel_pole(tdb, 1, 0.0, 0.0); + cel_pole(tdb, 2, 0.0, 0.0); e_tilt(tdb, accuracy, &a, &b, &c, &dpsi, &deps); - fprintf(fp, "PE %12.6f %12.6f ", dpsi, deps); + fprintf(fp, "XY %12.6f %12.6f ", dpsi, deps); - cel_pole(tdb, 1, -2.0, 3.0); + cel_pole(tdb, 2, -2.0, 3.0); e_tilt(tdb, accuracy, &a, &b, &c, &dpsi, &deps); fprintf(fp, "%12.6f %12.6f ", dpsi, deps); - cel_pole(tdb, 0, 0.0, 0.0); + cel_pole(tdb, 1, 0.0, 0.0); } static void test_nutation() { @@ -391,6 +399,7 @@ static void test_cio_basis() { if(!is_ok(cio_location(tdb, accuracy, &h, &sys))) return; if(!is_ok(cio_basis(tdb, h, sys, accuracy, x, y, z))) return; + fprintf(fp, "%d ", sys); printunitvector(x); printunitvector(y); printunitvector(z); @@ -439,6 +448,7 @@ static void test_time_specific() { test_tdb2tt(); test_ephemeris(); test_era(); + test_mean_obliq(); test_ee_ct(); test_iau2000a(); test_iau2000b(); @@ -619,7 +629,8 @@ static void test_place() { openfile("place"); if(is_ok(place(tdb, &source, &obs, ut12tt, i, accuracy, &out))) { // Velocities to 0.1 m/s accuracy - fprintf(fp, "%d %12.6f %12.6f %12.6f %12.6f ", i, out.ra, out.dec, out.dis, out.rv); + if(accuracy == 0) fprintf(fp, "%d %12.8f %12.8f %12.8f %12.5f ", i, out.ra, out.dec, out.dis, out.rv); + else fprintf(fp, "%d %8.4f %8.3f %8.3f %12.1f ", i, out.ra, out.dec, out.dis, out.rv); } } }