/*  
 *  - - - - - - - - - - -  
 *   g a l _ p r e c 7 6  
 *  - - - - - - - - - - -  
 *  
 *  This routine is part of the General Astrodynamics Library  
 *  
 *  Description: 
 *  
 *  IAU 1976 precession model.  
 *  
 *  This routine forms the three Euler angles which implement general  
 *  precession between two epochs, using the IAU 1976 model (as for  
 *  the FK5 catalog).  
 *  
 *  This routine is an independent translation of a FORTRAN routine  
 *  that is part of IAU's SOFA software collection.  
 *  
 *  Status:
 *  
 *     canonical model.  
 *  
 *  Given:
 *  
 *     ep01,ep02           d        TDB starting epoch (Note 1)  
 *     ep11,ep12           d        TDB ending epoch (Note 1)  
 *  
 *  Returned:
 *  
 *     *zeta               d        1st rotation: radians clockwise around z  
 *     *z                  d        3rd rotation: radians clockwise around z  
 *     *theta              d        2nd rotation: radians counterclockwise around y  
 *  
 *  Notes:  
 *  
 *  1) The epochs ep01+ep02 and ep11+ep12 are Julian Dates, apportioned  
 *     in any convenient way between the arguments epn1 and epn2.  For  
 *     example, JD(TDB)=2450123.7 could be expressed in any of these  
 *     ways, among others:  
 *  
 *             epn1          epn2  
 *  
 *         2450123.7          0.0        (JD method)  
 *         2451545.0      -1421.3        (J2000 method)  
 *         2400000.5      50123.2        (MJD method)  
 *         2450123.5          0.2        (date & time method)  
 *  
 *     The JD method is the most natural and convenient to use in 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  
 *     optimum resolution.  The MJD method and the date & time methods  
 *     are both good compromises between resolution and convenience.  
 *     The two epochs may be expressed using different methods, but at  
 *     the risk of losing some resolution.  
 *  
 *  2) The accumulated precession angles zeta, z, theta are expressed  
 *     through canonical polynomials which are valid only for a limited  
 *     time span.  In addition, the IAU 1976 precession rate is known to  
 *     be imperfect.  The absolute accuracy of the present formulation is  
 *     better than 0.1 arcsec from 1960AD to 2040AD, better than 1 arcsec  
 *     from 1640AD to 2360AD, and remains below 3 arcsec for the whole of  
 *     the period 500BC to 3000AD.  The errors exceed 10 arcsec outside  
 *     the range 1200BC to 3900AD, exceed 100 arcsec outside 4200BC to  
 *     5600AD and exceed 1000 arcsec 1000 arcsec outside 6800BC to  
 *     8200AD.  
 *  
 *  3) The three angles are returned in the conventional order, which  
 *     is not the same as the order of the corresponding Euler rotations.  
 *     The precession matrix is R_3(-z) x R_2(+theta) x R_3(-zeta).  
 *  
 *  References:  
 *  
 *     Lieske,J.H., 1979. Astron.Astrophys.,73,282.  
 *     equations (6) & (7), p283.  
 *  
 *  This revision:
 *  
 *     2003 January 14 ( c version 2008 January 19 )  
 *  
 *  
 *  Copyright (C) 2008 Paul C. L. Willmott. See notes at end.  
 *  
 *-----------------------------------------------------------------------  
 */  
  
#ifndef _GAL_PREC76_H_  
#define _GAL_PREC76_H_ 1  

#undef __BEGIN_DECLS  
#undef __END_DECLS  
#ifdef __cplusplus  
#define __BEGIN_DECLS extern "C" {  
#define __END_DECLS }  
#else  
#define __BEGIN_DECLS /* empty */  
#define __END_DECLS   /* empty */  
#endif
  
__BEGIN_DECLS  
  
void  
gal_prec76  
 (  
    double ep01,  
    double ep02,  
    double ep11,  
    double ep12,  
    double *zeta,  
    double *z,  
    double *theta  
 ) ;  
  
__END_DECLS  
  
#endif /* !_GAL_PREC76_H_ */  

/*  
 *  gal - General Astrodynamics Library  
 *  Copyright (C) 2008 Paul C. L. Willmott  
 *  
 *  This program is free software; you can redistribute it and/or modify  
 *  it under the terms of the GNU General Public License as published by  
 *  the Free Software Foundation; either version 2 of the License, or  
 *  (at your option) any later version.  
 *  
 *  This program is distributed in the hope that it will be useful,  
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of  
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 *  GNU General Public License for more details.  
 *  
 *  You should have received a copy of the GNU General Public License along  
 *  with this program; if not, write to the Free Software Foundation, Inc.,  
 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.  
 *  
 *  Contact:  
 *  
 *  Paul Willmott  
 *  vp9mu@amsat.org  
 */  
