SuperNOVAS v1.2
The NOVAS C library, made better
|
Functions | |
short | planet_ephem_provider (double jd_tdb, enum novas_planet body, enum novas_origin origin, double *position, double *velocity) |
short | planet_ephem_provider_hp (const double jd_tdb[2], enum novas_planet body, enum novas_origin origin, double *position, double *velocity) |
short | solarsystem (double jd_tdb, short body, short origin, double *position, double *velocity) |
short | solarsystem_hp (const double jd_tdb[2], short body, short origin, double *position, double *velocity) |
SuperNOVAS major planet ephemeris handler via the same generic ephemeris reader that is configured by set_ephem_provider() prior to calling this routine.
short planet_ephem_provider | ( | double | jd_tdb, |
enum novas_planet | body, | ||
enum novas_origin | origin, | ||
double * | position, | ||
double * | velocity | ||
) |
Major planet ephemeris data via the same generic ephemeris provider that is configured by set_ephem_provider() prior to calling this routine. This is the regular (reduced) precision version.
jd_tdb | [day] Barycentric Dynamical Time (TDB) based Julian date. | |
body | Major planet number (or that for Sun, Moon, SSB...) | |
origin | NOVAS_BARYCENTER (0) or NOVAS_HELIOCENTER (1) relative to which to report positions and velocities. | |
[out] | position | [AU] Position vector of 'body' at jd_tdb; equatorial rectangular coordinates in AU referred to the ICRS. |
[out] | velocity | [AU/day] Velocity vector of 'body' at jd_tdb; equatorial rectangular system referred to the ICRS, in AU/day. |
References planet_ephem_provider_hp().
short planet_ephem_provider_hp | ( | const double | jd_tdb[2], |
enum novas_planet | body, | ||
enum novas_origin | origin, | ||
double * | position, | ||
double * | velocity | ||
) |
Major planet ephemeris data via the same generic ephemeris provider that is configured by set_ephem_provider() prior to calling this routine. This is the highest precision version.
jd_tdb | [day] Barycentric Dynamical Time (TDB) based Julian date, split into high and low order components (e.g. integer and fractional parts) for high-precision calculations. | |
body | Major planet number (or that for Sun, Moon, SSB...) | |
origin | NOVAS_BARYCENTER (0) or NOVAS_HELIOCENTER (1) relative to which to report positions and velocities. | |
[out] | position | [AU] Position vector of 'body' at jd_tdb; equatorial rectangular coordinates in AU referred to the ICRS. |
[out] | velocity | [AU/day] Velocity vector of 'body' at jd_tdb; equatorial rectangular system referred to the ICRS, in AU/day. |
References get_ephem_provider(), NOVAS_BARYCENTER, NOVAS_HELIOCENTER, NOVAS_PLANET_NAMES_INIT, NOVAS_PLANETS, NOVAS_SSB, and NOVAS_SUN.
short solarsystem | ( | double | jd_tdb, |
short | body, | ||
short | origin, | ||
double * | position, | ||
double * | velocity | ||
) |
A default implementation for regular (reduced) precision handling of major planets, Sun, Moon and the Solar-system barycenter. See DEFAULT_SOLSYS in Makefile to choose the implementation that is built into with the library as a default. Applications can define their own preferred implementations at runtime via set_planet_provider().
Since this is a function that may be provided by existing custom user implementations, we keep the original argument types for compatibility, hence 'short' instead of the more informative enums).
jd_tdb | [day] Barycentric Dynamical Time (TDB) based Julian date | |
body | Major planet number (or that for the Sun, Moon, or an appropriate barycenter), as defined by enum novas_planet, e.g. NOVAS_MARS (4), NOVAS_SUN (10) or NOVAS_SSB (0). (For compatibility with existing NOVAS C compatible user implementations, we keep the original NOVAS C argument type here). | |
origin | NOVAS_BARYCENTER (0) or NOVAS_HELIOCENTER (1) relative to which to return positions and velocities. (For compatibility with existing NOVAS C compatible user implementations, we keep the original NOVAS C argument type here). | |
[out] | position | [AU] Position vector of 'body' at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. |
[out] | velocity | [AU/day] Velocity vector of 'body' at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. |
References planet_ephem_provider().
short solarsystem_hp | ( | const double | jd_tdb[2], |
short | body, | ||
short | origin, | ||
double * | position, | ||
double * | velocity | ||
) |
A default implementation for high precision handling of major planets, Sun, Moon and the Solar-system barycenter (and other barycenters). See DEFAULT_SOLSYS in Makefile to choose the implementation that is built into the library as a default. Applications can define their own preferred implementations at runtime via set_planet_provider_hp().
Since this is a function that may be provided by existing custom user implementations, we keep the original argument types for compatibility, hence 'short' instead of the more informative enums).
jd_tdb | [day] Barycentric Dynamical Time (TDB) based Julian date, broken into high and low order components, respectively. Typically, as the integer and fractional parts for the highest precision. | |
body | Major planet number (or that for the Sun, Moon, or an appropriate barycenter), as defined by enum novas_planet, e.g. NOVAS_MARS (4), NOVAS_SUN (10) or NOVAS_SSB (0). (For compatibility with existing NOVAS C compatible user implementations, we keep the original NOVAS C argument type here). | |
origin | NOVAS_BARYCENTER (0) or NOVAS_HELIOCENTER (1) relative to which to return positions and velocities. (For compatibility with existing NOVAS C compatible user implementations, we keep the original NOVAS C argument type here). | |
[out] | position | [AU] Position vector of 'body' at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. |
[out] | velocity | [AU/day] Velocity vector of 'body' at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. |
References planet_ephem_provider_hp().