SOFA  20200721
Functions
sofa.h File Reference
#include "sofam.h"
#include "math.h"
Include dependency graph for sofa.h:

Functions

int iauCal2jd (int iy, int im, int id, double *djm0, double *djm)
 Gregorian Calendar to Julian Date. More...
 
double iauEpb (double dj1, double dj2)
 Julian Date to Besselian Epoch. More...
 
void iauEpb2jd (double epb, double *djm0, double *djm)
 Besselian Epoch to Julian Date. More...
 
double iauEpj (double dj1, double dj2)
 Julian Date to Julian Epoch. More...
 
void iauEpj2jd (double epj, double *djm0, double *djm)
 Julian Epoch to Julian Date. More...
 
int iauJd2cal (double dj1, double dj2, int *iy, int *im, int *id, double *fd)
 Julian Date to Gregorian year, month, day, and fraction of a day. More...
 
int iauJdcalf (int ndp, double dj1, double dj2, int iymdf[4])
 Julian Date to Gregorian Calendar. More...
 
void iauAb (double pnat[3], double v[3], double s, double bm1, double ppr[3])
 Apply aberration to transform natural direction into proper direction. More...
 
void iauApcg (double date1, double date2, double ebpv[2][3], double ehp[3], iauASTROM *astrom)
 prepare star-independent astrometry parameters More...
 
void iauApcg13 (double date1, double date2, iauASTROM *astrom)
 prepare star-independent astrometry parameters More...
 
void iauApci (double date1, double date2, double ebpv[2][3], double ehp[3], double x, double y, double s, iauASTROM *astrom)
 prepare star-independent astrometry parameters More...
 
void iauApci13 (double date1, double date2, iauASTROM *astrom, double *eo)
 prepare star-independent astrometry parameters More...
 
void iauApco (double date1, double date2, double ebpv[2][3], double ehp[3], double x, double y, double s, double theta, double elong, double phi, double hm, double xp, double yp, double sp, double refa, double refb, iauASTROM *astrom)
 prepare star-independent astrometry parameters More...
 
int iauApco13 (double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, iauASTROM *astrom, double *eo)
 prepare star-independent astrometry parameters More...
 
void iauApcs (double date1, double date2, double pv[2][3], double ebpv[2][3], double ehp[3], iauASTROM *astrom)
 prepare star-independent astrometry parameters More...
 
void iauApcs13 (double date1, double date2, double pv[2][3], iauASTROM *astrom)
 prepare star-independent astrometry parameters More...
 
void iauAper (double theta, iauASTROM *astrom)
 update the Earth rotation angle More...
 
void iauAper13 (double ut11, double ut12, iauASTROM *astrom)
 update the Earth rotation angle More...
 
void iauApio (double sp, double theta, double elong, double phi, double hm, double xp, double yp, double refa, double refb, iauASTROM *astrom)
 prepare star-independent astrometry parameters More...
 
int iauApio13 (double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, iauASTROM *astrom)
 prepare star-independent astrometry parameters More...
 
void iauAtci13 (double rc, double dc, double pr, double pd, double px, double rv, double date1, double date2, double *ri, double *di, double *eo)
 Transform ICRS star data, epoch J2000.0, to CIRS. More...
 
void iauAtciq (double rc, double dc, double pr, double pd, double px, double rv, iauASTROM *astrom, double *ri, double *di)
 Quick ICRS, epoch J2000.0, to CIRS transformation. More...
 
void iauAtciqn (double rc, double dc, double pr, double pd, double px, double rv, iauASTROM *astrom, int n, iauLDBODY b[], double *ri, double *di)
 Quick ICRS, epoch J2000.0, to CIRS transformation. More...
 
void iauAtciqz (double rc, double dc, iauASTROM *astrom, double *ri, double *di)
 Quick ICRS to CIRS transformation. More...
 
int iauAtco13 (double rc, double dc, double pr, double pd, double px, double rv, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *aob, double *zob, double *hob, double *dob, double *rob, double *eo)
 ICRS RA,Dec to observed place. More...
 
void iauAtic13 (double ri, double di, double date1, double date2, double *rc, double *dc, double *eo)
 Transform star RA,Dec from geocentric CIRS to ICRS astrometric. More...
 
void iauAticq (double ri, double di, iauASTROM *astrom, double *rc, double *dc)
 Quick CIRS RA,Dec to ICRS astrometric place. More...
 
void iauAticqn (double ri, double di, iauASTROM *astrom, int n, iauLDBODY b[], double *rc, double *dc)
 Quick CIRS to ICRS astrometric place transformation. More...
 
int iauAtio13 (double ri, double di, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *aob, double *zob, double *hob, double *dob, double *rob)
 CIRS RA,Dec to observed place. More...
 
void iauAtioq (double ri, double di, iauASTROM *astrom, double *aob, double *zob, double *hob, double *dob, double *rob)
 Quick CIRS to observed place transformation. More...
 
int iauAtoc13 (const char *type, double ob1, double ob2, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *rc, double *dc)
 Observed place at a groundbased site to to ICRS astrometric RA,Dec. More...
 
int iauAtoi13 (const char *type, double ob1, double ob2, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *ri, double *di)
 Observed place to CIRS. More...
 
void iauAtoiq (const char *type, double ob1, double ob2, iauASTROM *astrom, double *ri, double *di)
 Quick observed place to CIRS. More...
 
void iauLd (double bm, double p[3], double q[3], double e[3], double em, double dlim, double p1[3])
 Apply light deflection by a solar-system body. More...
 
void iauLdn (int n, iauLDBODY b[], double ob[3], double sc[3], double sn[3])
 apply light deflection by multiple solar-system bodies More...
 
void iauLdsun (double p[3], double e[3], double em, double p1[3])
 Deflection of starlight by the Sun. More...
 
void iauPmpx (double rc, double dc, double pr, double pd, double px, double rv, double pmt, double pob[3], double pco[3])
 Proper motion and parallax. More...
 
int iauPmsafe (double ra1, double dec1, double pmr1, double pmd1, double px1, double rv1, double ep1a, double ep1b, double ep2a, double ep2b, double *ra2, double *dec2, double *pmr2, double *pmd2, double *px2, double *rv2)
 Star proper motion. More...
 
void iauPvtob (double elong, double phi, double height, double xp, double yp, double sp, double theta, double pv[2][3])
 Position and velocity of a terrestrial observing station. More...
 
void iauRefco (double phpa, double tc, double rh, double wl, double *refa, double *refb)
 Determine constants in the atmospheric refraction model. More...
 
int iauEpv00 (double date1, double date2, double pvh[2][3], double pvb[2][3])
 Earth position and velocity. More...
 
int iauPlan94 (double date1, double date2, int np, double pv[2][3])
 Approximate heliocentric position and velocity of a planet. More...
 
double iauFad03 (double t)
 mean elongation of the Moon from the Sun More...
 
double iauFae03 (double t)
 mean longitude of Earth. More...
 
double iauFaf03 (double t)
 mean longitude of the Moon minus... More...
 
double iauFaju03 (double t)
 mean longitude of Jupiter More...
 
double iauFal03 (double t)
 mean anomaly of the Moon More...
 
double iauFalp03 (double t)
 mean anomaly of the Sun More...
 
double iauFama03 (double t)
 mean longitude of Mars. More...
 
double iauFame03 (double t)
 mean longitude of Mercury. More...
 
double iauFane03 (double t)
 mean longitude of Neptune. More...
 
double iauFaom03 (double t)
 mean longitude Moon's ascending node More...
 
double iauFapa03 (double t)
 general accumulated precession in longitude More...
 
double iauFasa03 (double t)
 mean longitude of Saturn. More...
 
double iauFaur03 (double t)
 mean longitude of Uranus More...
 
double iauFave03 (double t)
 mean longitude of Venus More...
 
void iauBi00 (double *dpsibi, double *depsbi, double *dra)
 Frame bias components of IAU 2000 precession-nutation models. More...
 
void iauBp00 (double date1, double date2, double rb[3][3], double rp[3][3], double rbp[3][3])
 Frame bias and precession, IAU 2000. More...
 
void iauBp06 (double date1, double date2, double rb[3][3], double rp[3][3], double rbp[3][3])
 Frame bias and precession, IAU 2006. More...
 
void iauBpn2xy (double rbpn[3][3], double *x, double *y)
 Extract the X,Y coordinates of the Celestial Intermediate Pole. More...
 
void iauC2i00a (double date1, double date2, double rc2i[3][3])
 Form the celestial-to-intermediate matrix for a given date. More...
 
void iauC2i00b (double date1, double date2, double rc2i[3][3])
 Form the celestial-to-intermediate matrix for a given date . More...
 
void iauC2i06a (double date1, double date2, double rc2i[3][3])
 Form the celestial-to-intermediate matrix for a given date. More...
 
void iauC2ibpn (double date1, double date2, double rbpn[3][3], double rc2i[3][3])
 Form the celestial-to-intermediate matrix for a given date. More...
 
void iauC2ixy (double date1, double date2, double x, double y, double rc2i[3][3])
 Form the celestial to intermediate-frame-of-date matrix. More...
 
void iauC2ixys (double x, double y, double s, double rc2i[3][3])
 Form the celestial to intermediate-frame-of-date matrix. More...
 
void iauC2t00a (double tta, double ttb, double uta, double utb, double xp, double yp, double rc2t[3][3])
 Form the celestial to terrestrial matrix. More...
 
void iauC2t00b (double tta, double ttb, double uta, double utb, double xp, double yp, double rc2t[3][3])
 Form the celestial to terrestrial matrix. More...
 
void iauC2t06a (double tta, double ttb, double uta, double utb, double xp, double yp, double rc2t[3][3])
 Form the celestial to terrestrial matrix. More...
 
void iauC2tcio (double rc2i[3][3], double era, double rpom[3][3], double rc2t[3][3])
 Assemble the celestial to terrestrial matrix. More...
 
void iauC2teqx (double rbpn[3][3], double gst, double rpom[3][3], double rc2t[3][3])
 Assemble the celestial to terrestrial matrix. More...
 
void iauC2tpe (double tta, double ttb, double uta, double utb, double dpsi, double deps, double xp, double yp, double rc2t[3][3])
 Form the celestial to terrestrial matrix. More...
 
void iauC2txy (double tta, double ttb, double uta, double utb, double x, double y, double xp, double yp, double rc2t[3][3])
 Form the celestial to terrestrial matrix. More...
 
double iauEo06a (double date1, double date2)
 Equation of the origins. More...
 
double iauEors (double rnpb[3][3], double s)
 Equation of the origins. More...
 
void iauFw2m (double gamb, double phib, double psi, double eps, double r[3][3])
 Form rotation matrix given the Fukushima-Williams angles. More...
 
void iauFw2xy (double gamb, double phib, double psi, double eps, double *x, double *y)
 CIP X,Y given Fukushima-Williams bias-precession-nutation angles. More...
 
void iauLtp (double epj, double rp[3][3])
 Long-term precession matrix.Notes: More...
 
void iauLtpb (double epj, double rpb[3][3])
 Long-term precession matrix, including ICRS frame bias.Notes: More...
 
void iauLtpecl (double epj, double vec[3])
 Long-term precession of the ecliptic.Notes: More...
 
void iauLtpequ (double epj, double veq[3])
 Long-term precession of the equator. Notes: More...
 
void iauNum00a (double date1, double date2, double rmatn[3][3])
 Form the matrix of nutation for a given date. More...
 
void iauNum00b (double date1, double date2, double rmatn[3][3])
 Form the matrix of nutation for a given date. More...
 
void iauNum06a (double date1, double date2, double rmatn[3][3])
 Form the matrix of nutation for a given date. More...
 
void iauNumat (double epsa, double dpsi, double deps, double rmatn[3][3])
 Form the matrix of nutation. More...
 
void iauNut00a (double date1, double date2, double *dpsi, double *deps)
 Nutation, IAU 2000A model. More...
 
void iauNut00b (double date1, double date2, double *dpsi, double *deps)
 Nutation, IAU 2000B model. More...
 
void iauNut06a (double date1, double date2, double *dpsi, double *deps)
 IAU 2000A nutation with adjustments. More...
 
void iauNut80 (double date1, double date2, double *dpsi, double *deps)
 Nutation, IAU 1980 model. More...
 
void iauNutm80 (double date1, double date2, double rmatn[3][3])
 Form the matrix of nutation for a given date,. More...
 
double iauObl06 (double date1, double date2)
 Mean obliquity of the ecliptic. More...
 
double iauObl80 (double date1, double date2)
 Mean obliquity of the ecliptic. More...
 
void iauP06e (double date1, double date2, double *eps0, double *psia, double *oma, double *bpa, double *bqa, double *pia, double *bpia, double *epsa, double *chia, double *za, double *zetaa, double *thetaa, double *pa, double *gam, double *phi, double *psi)
 Precession angles. More...
 
void iauPb06 (double date1, double date2, double *bzeta, double *bz, double *btheta)
 forms three Euler angles which implement general precession from epoch J2000.0, More...
 
void iauPfw06 (double date1, double date2, double *gamb, double *phib, double *psib, double *epsa)
 Precession angles, IAU 2006 (Fukushima-Williams 4-angle formulation). More...
 
void iauPmat00 (double date1, double date2, double rbp[3][3])
 Precession matrix from GCRS to specified date. More...
 
void iauPmat06 (double date1, double date2, double rbp[3][3])
 Precession matrix from GCRS to a specified date. More...
 
void iauPmat76 (double date1, double date2, double rmatp[3][3])
 Precession matrix from J2000.0 to a specified date. More...
 
void iauPn00 (double date1, double date2, double dpsi, double deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3])
 Precession-nutation, IAU 2000 model. More...
 
void iauPn00a (double date1, double date2, double *dpsi, double *deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3])
 Precession-nutation, IAU 2000A model. More...
 
void iauPn00b (double date1, double date2, double *dpsi, double *deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3])
 Precession-nutation, IAU 2000B model. More...
 
void iauPn06 (double date1, double date2, double dpsi, double deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3])
 Precession-nutation, IAU 2006 model. More...
 
void iauPn06a (double date1, double date2, double *dpsi, double *deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3])
 Precession-nutation, IAU 2006/2000A models. More...
 
void iauPnm00a (double date1, double date2, double rbpn[3][3])
 Form the matrix of precession-nutation. More...
 
void iauPnm00b (double date1, double date2, double rbpn[3][3])
 Form the matrix of precession-nutation. More...
 
void iauPnm06a (double date1, double date2, double rnpb[3][3])
 Form the matrix of precession-nutation. More...
 
void iauPnm80 (double date1, double date2, double rmatpn[3][3])
 Form the matrix of precession/nutation. More...
 
void iauPom00 (double xp, double yp, double sp, double rpom[3][3])
 Form the matrix of polar motion. More...
 
void iauPr00 (double date1, double date2, double *dpsipr, double *depspr)
 Precession-rate part of the IAU 2000 models. More...
 
void iauPrec76 (double date01, double date02, double date11, double date12, double *zeta, double *z, double *theta)
 IAU 1976 precession model. More...
 
double iauS00 (double date1, double date2, double x, double y)
 The CIO locators given CIP coordinates. More...
 
double iauS00a (double date1, double date2)
 The CIO locator using the IA2000A precission-nutation model. More...
 
double iauS00b (double date1, double date2)
 The CIO locator using the IAU 2000B precission-nutation model. More...
 
double iauS06 (double date1, double date2, double x, double y)
 The CIO locator given CIP coordinates. More...
 
double iauS06a (double date1, double date2)
 The CIO locator using IAU2006 precession and IAU 2000A nutation models. More...
 
double iauSp00 (double date1, double date2)
 The TIO locator. More...
 
void iauXy06 (double date1, double date2, double *x, double *y)
 X,Y coordinates of celestial intermediate pole. More...
 
void iauXys00a (double date1, double date2, double *x, double *y, double *s)
 Compute X,Y coordinates of the CIP and CIO locator. More...
 
void iauXys00b (double date1, double date2, double *x, double *y, double *s)
 Compute X,Y coordinates of the CIP and CIO locator. More...
 
void iauXys06a (double date1, double date2, double *x, double *y, double *s)
 Compute X,Y coordinates of the CIP and CIO locator. More...
 
double iauEe00 (double date1, double date2, double epsa, double dpsi)
 The equation of the equinoxes. More...
 
double iauEe00a (double date1, double date2)
 Equation of the equinoxes. More...
 
double iauEe00b (double date1, double date2)
 Equation of the equinoxes. More...
 
double iauEe06a (double date1, double date2)
 Equation of the equinoxes. More...
 
double iauEect00 (double date1, double date2)
 Equation of the equinoxes. More...
 
double iauEqeq94 (double date1, double date2)
 Equation of the equinoxes. More...
 
double iauEra00 (double dj1, double dj2)
 Earth rotation angle. More...
 
double iauGmst00 (double uta, double utb, double tta, double ttb)
 Greenwich mean sidereal time. More...
 
double iauGmst06 (double uta, double utb, double tta, double ttb)
 Greenwich mean sidereal time. More...
 
double iauGmst82 (double dj1, double dj2)
 Universal Time to Greenwich mean sidereal time. More...
 
double iauGst00a (double uta, double utb, double tta, double ttb)
 Greenwich apparent sidereal time. More...
 
double iauGst00b (double uta, double utb)
 Greenwich apparent sidereal time. More...
 
double iauGst06 (double uta, double utb, double tta, double ttb, double rnpb[3][3])
 Greenwich apparent sidereal time. More...
 
double iauGst06a (double uta, double utb, double tta, double ttb)
 Greenwich apparent sidereal time. More...
 
double iauGst94 (double uta, double utb)
 Greenwich apparent sidereal time. More...
 
int iauPvstar (double pv[2][3], double *ra, double *dec, double *pmr, double *pmd, double *px, double *rv)
 Convert star position+velocity vector to catalog coordinates. More...
 
int iauStarpv (double ra, double dec, double pmr, double pmd, double px, double rv, double pv[2][3])
 Convert star catalog coordinates to position+velocity vector. More...
 
void iauFk425 (double r1950, double d1950, double dr1950, double dd1950, double p1950, double v1950, double *r2000, double *d2000, double *dr2000, double *dd2000, double *p2000, double *v2000)
 Convert B1950.0 FK4 star catalog data to J2000.0 FK5.Notes: More...
 
void iauFk45z (double r1950, double d1950, double bepoch, double *r2000, double *d2000)
 Convert a B1950.0 FK4 star position to J2000.0 FK5.Convert a B1950.0 FK4 star position to J2000.0 FK5, assuming zero proper motion in the FK5 system. This function converts a star's catalog data from the old FK4 (Bessel-Newcomb) system to the later IAU 1976 FK5 (Fricke) system, in such a way that the FK5 proper motion is zero. Because such a star has, in general, a non-zero proper motion in the FK4 system, the routine requires the epoch at which the position in the FK4 system was determined. More...
 
void iauFk524 (double r2000, double d2000, double dr2000, double dd2000, double p2000, double v2000, double *r1950, double *d1950, double *dr1950, double *dd1950, double *p1950, double *v1950)
 Convert J2000.0 FK5 star catalog data to B1950.0 FK4.Notes: More...
 
void iauFk52h (double r5, double d5, double dr5, double dd5, double px5, double rv5, double *rh, double *dh, double *drh, double *ddh, double *pxh, double *rvh)
 Transform FK5 star data into the Hipparcos system. More...
 
void iauFk54z (double r2000, double d2000, double bepoch, double *r1950, double *d1950, double *dr1950, double *dd1950)
 Convert a J2000.0 FK5 star position to B1950.0 FK4Convert a J2000.0 FK5 star position to B1950.0 FK4, assuming zero proper motion in FK5 and parallax. Notes: More...
 
void iauFk5hip (double r5h[3][3], double s5h[3])
 FK5 to Hipparcos rotation and spin. More...
 
void iauFk5hz (double r5, double d5, double date1, double date2, double *rh, double *dh)
 Transform an FK5 star position into the Hipparcos system. More...
 
void iauH2fk5 (double rh, double dh, double drh, double ddh, double pxh, double rvh, double *r5, double *d5, double *dr5, double *dd5, double *px5, double *rv5)
 Transform Hipparcos star data into the FK5 (J2000.0) system. More...
 
void iauHfk5z (double rh, double dh, double date1, double date2, double *r5, double *d5, double *dr5, double *dd5)
 Transform a Hipparcos star position into FK5 J2000.0. More...
 
int iauStarpm (double ra1, double dec1, double pmr1, double pmd1, double px1, double rv1, double ep1a, double ep1b, double ep2a, double ep2b, double *ra2, double *dec2, double *pmr2, double *pmd2, double *px2, double *rv2)
 Star proper motion. More...
 
void iauEceq06 (double date1, double date2, double dl, double db, double *dr, double *dd)
 Transformation from ecliptic coordinates (mean equinox and ecliptic of date) to ICRS RA,Dec, using the IAU 2006 precession model. More...
 
void iauEcm06 (double date1, double date2, double rm[3][3])
 ICRS equatorial to ecliptic rotation matrix, IAU 2006. More...
 
void iauEqec06 (double date1, double date2, double dr, double dd, double *dl, double *db)
 Transformation from ICRS equatorial coordinates to ecliptic coordinates. More...
 
void iauLteceq (double epj, double dl, double db, double *dr, double *dd)
 Transformation from ecliptic coordinates (mean equinox and ecliptic of date) to ICRS RA,Dec.Transformation from ecliptic coordinates (mean equinox and ecliptic of date) to ICRS RA,Dec, using a long-term precession model. 1) No assumptions are made about whether the coordinates represent starlight and embody astrometric effects such as parallax or aberration. More...
 
void iauLtecm (double epj, double rm[3][3])
 ICRS equatorial to ecliptic rotation matrix, long-term. More...
 
void iauLteqec (double epj, double dr, double dd, double *dl, double *db)
 Transformation from ICRS equatorial coordinates to ecliptic coordinates. More...
 
void iauG2icrs (double dl, double db, double *dr, double *dd)
 Transformation from Galactic Coordinates to ICRS. More...
 
void iauIcrs2g (double dr, double dd, double *dl, double *db)
 Transformation from ICRS to Galactic Coordinates. More...
 
int iauEform (int n, double *a, double *f)
 Earth reference ellipsoids. More...
 
int iauGc2gd (int n, double xyz[3], double *elong, double *phi, double *height)
 Transform geocentric coordinates to geodetic. More...
 
int iauGc2gde (double a, double f, double xyz[3], double *elong, double *phi, double *height)
 Transform geocentric coordinates to geodetic. More...
 
int iauGd2gc (int n, double elong, double phi, double height, double xyz[3])
 Transform geodetic coordinates to geocentric. More...
 
int iauGd2gce (double a, double f, double elong, double phi, double height, double xyz[3])
 Transform geodetic coordinates to geocentric. More...
 
int iauD2dtf (const char *scale, int ndp, double d1, double d2, int *iy, int *im, int *id, int ihmsf[4])
 Format for output a 2-part Julian Date. More...
 
int iauDat (int iy, int im, int id, double fd, double *deltat)
 For a given UTC date, calculate delta(AT) = TAI-UTC. More...
 
double iauDtdb (double date1, double date2, double ut, double elong, double u, double v)
 An approximation to TDB-TT. More...
 
int iauDtf2d (const char *scale, int iy, int im, int id, int ihr, int imn, double sec, double *d1, double *d2)
 Encode date and time fields into 2-part Julian Date. More...
 
int iauTaitt (double tai1, double tai2, double *tt1, double *tt2)
 TAI to TT. More...
 
int iauTaiut1 (double tai1, double tai2, double dta, double *ut11, double *ut12)
 TAI to UT1. More...
 
int iauTaiutc (double tai1, double tai2, double *utc1, double *utc2)
 TAI to UTC. More...
 
int iauTcbtdb (double tcb1, double tcb2, double *tdb1, double *tdb2)
 TCB to TDB. More...
 
int iauTcgtt (double tcg1, double tcg2, double *tt1, double *tt2)
 TCG to TT. More...
 
int iauTdbtcb (double tdb1, double tdb2, double *tcb1, double *tcb2)
 TDB to TCB. More...
 
int iauTdbtt (double tdb1, double tdb2, double dtr, double *tt1, double *tt2)
 TDB to TT. More...
 
int iauTttai (double tt1, double tt2, double *tai1, double *tai2)
 TT to TAI. More...
 
int iauTttcg (double tt1, double tt2, double *tcg1, double *tcg2)
 TT to TCG. More...
 
int iauTttdb (double tt1, double tt2, double dtr, double *tdb1, double *tdb2)
 TT to TDB. More...
 
int iauTtut1 (double tt1, double tt2, double dt, double *ut11, double *ut12)
 TT to UT1. More...
 
int iauUt1tai (double ut11, double ut12, double dta, double *tai1, double *tai2)
 UT1 to TAI. More...
 
int iauUt1tt (double ut11, double ut12, double dt, double *tt1, double *tt2)
 UT1 to TT. More...
 
int iauUt1utc (double ut11, double ut12, double dut1, double *utc1, double *utc2)
 UT1 to UTC. More...
 
int iauUtctai (double utc1, double utc2, double *tai1, double *tai2)
 UTC to TAI. More...
 
int iauUtcut1 (double utc1, double utc2, double dut1, double *ut11, double *ut12)
 UTC to UT1. More...
 
void iauAe2hd (double az, double el, double phi, double *ha, double *dec)
 Horizon to equatorial coordinates: transform azimuth and altitude to hour angle and declination. More...
 
void iauHd2ae (double ha, double dec, double phi, double *az, double *el)
 Equatorial to horizon coordinates. More...
 
double iauHd2pa (double ha, double dec, double phi)
 Parallactic angle for a given hour angle and declination.Notes: More...
 
int iauTpors (double xi, double eta, double a, double b, double *a01, double *b01, double *a02, double *b02)
 In the tangent plane projection, determine the spherical coordinates of the tangent point. More...
 
int iauTporv (double xi, double eta, double v[3], double v01[3], double v02[3])
 In the tangent plane projection, determine the direction cosines of the tangent point. More...
 
void iauTpsts (double xi, double eta, double a0, double b0, double *a, double *b)
 In the tangent plane projection, solve for the spherical coordinates of the star. More...
 
void iauTpstv (double xi, double eta, double v0[3], double v[3])
 In the tangent plane projection, solve for the direction cosines of the star. More...
 
int iauTpxes (double a, double b, double a0, double b0, double *xi, double *eta)
 In the tangent plane projection, solve for the star's rectangular coordinates in the tangent plane.Notes: More...
 
int iauTpxev (double v[3], double v0[3], double *xi, double *eta)
 In the tangent plane projection, solve for the star's rectangular coordinates in the tangent plane.In the tangent plane projection, given celestial direction cosines for a star and the tangent point, solve for the star's rectangular coordinates in the tangent plane. More...
 
void iauA2af (int ndp, double angle, char *sign, int idmsf[4])
 Decompose radians into degrees, arcminutes, arcseconds, fraction. More...
 
void iauA2tf (int ndp, double angle, char *sign, int ihmsf[4])
 Decompose radians into hours, minutes, seconds, fraction. More...
 
int iauAf2a (char s, int ideg, int iamin, double asec, double *rad)
 Convert degrees, arcminutes, arcseconds to radians. More...
 
double iauAnp (double a)
 Normalize angle into the range 0 <= a < 2pi. More...
 
double iauAnpm (double a)
 Normalize angle into the range -pi <= a < +pi. More...
 
void iauD2tf (int ndp, double days, char *sign, int ihmsf[4])
 Decompose days to hours, minutes, seconds, fraction. More...
 
int iauTf2a (char s, int ihour, int imin, double sec, double *rad)
 Convert hours, minutes, seconds to radians. More...
 
int iauTf2d (char s, int ihour, int imin, double sec, double *days)
 Convert hours, minutes, seconds to days. More...
 
void iauRx (double phi, double r[3][3])
 Rotate an r-matrix about the x-axis. More...
 
void iauRy (double theta, double r[3][3])
 Rotate an r-matrix about the y-axis. More...
 
void iauRz (double psi, double r[3][3])
 Rotate an r-matrix about the z-axis. More...
 
void iauCp (double p[3], double c[3])
 Copy a p-vector. More...
 
void iauCpv (double pv[2][3], double c[2][3])
 Copy a position/velocity vector. More...
 
void iauCr (double r[3][3], double c[3][3])
 Copy an r-matrix. More...
 
void iauP2pv (double p[3], double pv[2][3])
 Extend a p-vector to a pv-vector by appending a zero velocity. More...
 
void iauPv2p (double pv[2][3], double p[3])
 Discard velocity component of a pv-vector. More...
 
void iauIr (double r[3][3])
 Initialize an r-matrix to the identity matrix. More...
 
void iauZp (double p[3])
 Zero a p-vector. More...
 
void iauZpv (double pv[2][3])
 Zero a pv-vector. More...
 
void iauZr (double r[3][3])
 Initialize an r-matrix to the null matrix. More...
 
void iauRxr (double a[3][3], double b[3][3], double atb[3][3])
 Multiply two r-matrices. More...
 
void iauTr (double r[3][3], double rt[3][3])
 Transpose an r-matrix. More...
 
void iauRxp (double r[3][3], double p[3], double rp[3])
 Multiply a p-vector by an r-matrix. More...
 
void iauRxpv (double r[3][3], double pv[2][3], double rpv[2][3])
 Multiply a pv-vector by an r-matrix. More...
 
void iauTrxp (double r[3][3], double p[3], double trp[3])
 Multiply a p-vector by the transpose of an r-matrix. More...
 
void iauTrxpv (double r[3][3], double pv[2][3], double trpv[2][3])
 Multiply a pv-vector by the transpose of an r-matrix. More...
 
void iauRm2v (double r[3][3], double w[3])
 Express an r-matrix as an r-vector. More...
 
void iauRv2m (double w[3], double r[3][3])
 Form the r-matrix corresponding to a given r-vector. More...
 
double iauPap (double a[3], double b[3])
 Position-angle from two p-vectors. More...
 
double iauPas (double al, double ap, double bl, double bp)
 Position-angle from spherical coordinates. More...
 
double iauSepp (double a[3], double b[3])
 Angular separation between two p-vectors. More...
 
double iauSeps (double al, double ap, double bl, double bp)
 Angular separation between two sets of spherical coordinates. More...
 
void iauC2s (double p[3], double *theta, double *phi)
 P-vector to spherical coordinates. More...
 
void iauP2s (double p[3], double *theta, double *phi, double *r)
 P-vector to spherical polar coordinates. More...
 
void iauPv2s (double pv[2][3], double *theta, double *phi, double *r, double *td, double *pd, double *rd)
 Convert position/velocity from Cartesian to spherical coordinates. More...
 
void iauS2c (double theta, double phi, double c[3])
 Convert spherical coordinates to Cartesian. More...
 
void iauS2p (double theta, double phi, double r, double p[3])
 Convert spherical polar coordinates to p-vector. More...
 
void iauS2pv (double theta, double phi, double r, double td, double pd, double rd, double pv[2][3])
 
double iauPdp (double a[3], double b[3])
 p-vector inner (=scalar=dot) product. More...
 
double iauPm (double p[3])
 Modulus of p-vector. More...
 
void iauPmp (double a[3], double b[3], double amb[3])
 P-vector subtraction. More...
 
void iauPn (double p[3], double *r, double u[3])
 Convert a p-vector into modulus and unit vector. More...
 
void iauPpp (double a[3], double b[3], double apb[3])
 P-vector addition. More...
 
void iauPpsp (double a[3], double s, double b[3], double apsb[3])
 P-vector scale and addition. More...
 
void iauPvdpv (double a[2][3], double b[2][3], double adb[2])
 Inner (=scalar=dot) product of two pv-vectors. More...
 
void iauPvm (double pv[2][3], double *r, double *s)
 Modulus of pv-vector. More...
 
void iauPvmpv (double a[2][3], double b[2][3], double amb[2][3])
 Subtract one pv-vector from another. More...
 
void iauPvppv (double a[2][3], double b[2][3], double apb[2][3])
 Add one pv-vector to another. More...
 
void iauPvu (double dt, double pv[2][3], double upv[2][3])
 Update a pv-vector. More...
 
void iauPvup (double dt, double pv[2][3], double p[3])
 Update a pv-vector, discarding the velocity component. More...
 
void iauPvxpv (double a[2][3], double b[2][3], double axb[2][3])
 Outer (=vector=cross) product of two pv-vectors.Notes: More...
 
void iauPxp (double a[3], double b[3], double axb[3])
 p-vector outer (=vector=cross) product. More...
 
void iauS2xpv (double s1, double s2, double pv[2][3], double spv[2][3])
 Multiply a pv-vector by two scalars. More...
 
void iauSxp (double s, double p[3], double sp[3])
 Multiply a p-vector by a scalar. More...
 
void iauSxpv (double s, double pv[2][3], double spv[2][3])
 Multiply a pv-vector by a scalar. More...
 

Function Documentation

◆ iauLtpequ()

void iauLtpequ ( double  epj,
double  veq[3] 
)

Long-term precession of the equator. Notes:

1) The returned vector is with respect to the J2000.0 mean equator and equinox.

2) The Vondrak et al. (2011, 2012) 400 millennia precession model agrees with the IAU 2006 precession at J2000.0 and stays within 100 microarcseconds during the 20th and 21st centuries. It is accurate to a few arcseconds throughout the historical period, worsening to a few tenths of a degree at the end of the +/- 200,000 year time span.

Parameters
[in]epjJulian epoch (TT)
[out]veqequator pole unit vector

◆ iauS2pv()

void iauS2pv ( double  theta,
double  phi,
double  r,
double  td,
double  pd,
double  rd,
double  pv[2][3] 
)

◆ iauTpors()

int iauTpors ( double  xi,
double  eta,
double  a,
double  b,
double *  a01,
double *  b01,
double *  a02,
double *  b02 
)

In the tangent plane projection, determine the spherical coordinates of the tangent point.

In the tangent plane projection, given the rectangular coordinates of a star and its spherical coordinates, determine the spherical coordinates of the tangent point.

Notes:

1) The tangent plane projection is also called the "gnomonic projection" and the "central projection".

2) The eta axis points due north in the adopted coordinate system. If the spherical coordinates are observed (RA,Dec), the tangent plane coordinates (xi,eta) are conventionally called the "standard coordinates". If the spherical coordinates are with respect to a right-handed triad, (xi,eta) are also right-handed. The units of (xi,eta) are, effectively, radians at the tangent point.

3) All angular arguments are in radians.

4) The angles a01 and a02 are returned in the range 0-2pi. The angles b01 and b02 are returned in the range +/-pi, but in the usual, non-pole-crossing, case, the range is +/-pi/2.

5) Cases where there is no solution can arise only near the poles. For example, it is clearly impossible for a star at the pole itself to have a non-zero xi value, and hence it is meaningless to ask where the tangent point would have to be to bring about this combination of xi and dec.

6) Also near the poles, cases can arise where there are two useful solutions. The return value indicates whether the second of the two solutions returned is useful; 1 indicates only one useful solution, the usual case.

7) The basis of the algorithm is to solve the spherical triangle PSC, where P is the north celestial pole, S is the star and C is the tangent point. The spherical coordinates of the tangent point are [a0,b0]; writing rho^2 = (xi^2+eta^2) and r^2 = (1+rho^2), side c is then (pi/2-b), side p is sqrt(xi^2+eta^2) and side s (to be found) is (pi/2-b0). Angle C is given by sin(C) = xi/rho and cos(C) = eta/rho. Angle P (to be found) is the longitude difference between star and tangent point (a-a0).

8) This function is a member of the following set:

         spherical      vector         solve for

         iauTpxes      iauTpxev         xi,eta
         iauTpsts      iauTpstv          star
       > iauTpors <    iauTporv         origin
Parameters
[in]xirectangular coordinates of star image
[in]etarectangular coordinates of star image
[out]a01tangent point's spherical coordinates soln 1
[out]b01tangent point's spherical coordinates soln 1
[out]a02tangent point's spherical coordinates soln 2
[out]b02tangent point's spherical coordinates soln 2
Returns
number of solutions: 0= no solutions returnd, 1 = only the first solution is useful, 2= both solutions are useful.
Here is the call graph for this function: