Astro-PAL
view release on metacpan or search on metacpan
erfasrc/src/p06e.c view on Meta::CPAN
** cases where the loss of several decimal digits of resolution
** is acceptable. The J2000 method is best matched to the way
** the argument is handled internally and will deliver the
** optimum resolution. The MJD method and the date & time methods
** are both good compromises between resolution and convenience.
**
** 2) This function returns the set of equinox based angles for the
** Capitaine et al. "P03" precession theory, adopted by the IAU in
** 2006. The angles are set out in Table 1 of Hilton et al. (2006):
**
** eps0 epsilon_0 obliquity at J2000.0
** psia psi_A luni-solar precession
** oma omega_A inclination of equator wrt J2000.0 ecliptic
** bpa P_A ecliptic pole x, J2000.0 ecliptic triad
** bqa Q_A ecliptic pole -y, J2000.0 ecliptic triad
** pia pi_A angle between moving and J2000.0 ecliptics
** bpia Pi_A longitude of ascending node of the ecliptic
** epsa epsilon_A obliquity of the ecliptic
** chia chi_A planetary precession
** za z_A equatorial precession: -3rd 323 Euler angle
** zetaa zeta_A equatorial precession: -1st 323 Euler angle
** thetaa theta_A equatorial precession: 2nd 323 Euler angle
** pa p_A general precession (n.b. see below)
** gam gamma_J2000 J2000.0 RA difference of ecliptic poles
** phi phi_J2000 J2000.0 codeclination of ecliptic pole
** psi psi_J2000 longitude difference of equator poles, J2000.0
**
** The returned values are all radians.
**
** Note that the t^5 coefficient in the series for p_A from
** Capitaine et al. (2003) is incorrectly signed in Hilton et al.
** (2006).
**
** 3) Hilton et al. (2006) Table 1 also contains angles that depend on
** models distinct from the P03 precession theory itself, namely the
** IAU 2000A frame bias and nutation. The quoted polynomials are
** used in other ERFA functions:
**
** . eraXy06 contains the polynomial parts of the X and Y series.
**
** . eraS06 contains the polynomial part of the s+XY/2 series.
**
** . eraPfw06 implements the series for the Fukushima-Williams
** angles that are with respect to the GCRS pole (i.e. the variants
** that include frame bias).
**
** 4) The IAU resolution stipulated that the choice of parameterization
** was left to the user, and so an IAU compliant precession
** implementation can be constructed using various combinations of
** the angles returned by the present function.
**
** 5) The parameterization used by ERFA is the version of the Fukushima-
** Williams angles that refers directly to the GCRS pole. These
** angles may be calculated by calling the function eraPfw06. ERFA
** also supports the direct computation of the CIP GCRS X,Y by
** series, available by calling eraXy06.
**
** 6) The agreement between the different parameterizations is at the
** 1 microarcsecond level in the present era.
**
** 7) When constructing a precession formulation that refers to the GCRS
** pole rather than the dynamical pole, it may (depending on the
** choice of angles) be necessary to introduce the frame bias
** explicitly.
**
** 8) It is permissible to re-use the same variable in the returned
** arguments. The quantities are stored in the stated order.
**
** References:
**
** Capitaine, N., Wallace, P.T. & Chapront, J., 2003,
** Astron.Astrophys., 412, 567
**
** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351
**
** Called:
** eraObl06 mean obliquity, IAU 2006
**
** Copyright (C) 2013-2020, NumFOCUS Foundation.
** Derived, with permission, from the SOFA library. See notes at end of file.
*/
{
double t;
/* Interval between fundamental date J2000.0 and given date (JC). */
t = ((date1 - ERFA_DJ00) + date2) / ERFA_DJC;
/* Obliquity at J2000.0. */
*eps0 = 84381.406 * ERFA_DAS2R;
/* Luni-solar precession. */
*psia = ( 5038.481507 +
( -1.0790069 +
( -0.00114045 +
( 0.000132851 +
( -0.0000000951 )
* t) * t) * t) * t) * t * ERFA_DAS2R;
/* Inclination of mean equator with respect to the J2000.0 ecliptic. */
*oma = *eps0 + ( -0.025754 +
( 0.0512623 +
( -0.00772503 +
( -0.000000467 +
( 0.0000003337 )
* t) * t) * t) * t) * t * ERFA_DAS2R;
/* Ecliptic pole x, J2000.0 ecliptic triad. */
*bpa = ( 4.199094 +
( 0.1939873 +
( -0.00022466 +
( -0.000000912 +
( 0.0000000120 )
* t) * t) * t) * t) * t * ERFA_DAS2R;
/* Ecliptic pole -y, J2000.0 ecliptic triad. */
( run in 0.637 second using v1.01-cache-2.11-cpan-39bf76dae61 )