00001 #ifndef ASTROUTIL_H
00002 #define ASTROUTIL_H
00003
00004 #define OreToDec(x,y,z) (x)+(y)/60.+(z)/3600.
00005
00006 #define R_TERRA 6378.145e3F
00007 #define PI 3.141592654F
00008 #define PI2 (PI*2.F)
00009 #define D2R 0.017453292F
00010 #define R2D 57.29578122F
00011 #define H2R 0.261799387F
00012 #define J1900 2415020.0F
00013 #define B1950 2433282.423F
00014 #define J2000 2451545.0F
00015 #define SECS2RADS 206264.806247096355F
00016
00017 #define J2 1.0822e-3
00018
00019 #define MinutesPerDay (24.*60.0F)
00020 const double SecondsPerDay=86400;
00021 #define CLUCE 2.997925e+5
00022
00023 #define EarthFlat (1/298.25)
00024 #define SiderealSolar 1.0027379093
00025 #define SidRate (PI2*SiderealSolar/SecondsPerDay)
00026 #define GM 398600.0F
00027
00028 #define Epsilon (D2R/3600)
00029 #define SunRadius 695000
00030 #define SunSemiMajorAxis 149598845.0
00031 #define SQR(x) ((x)*(x))
00032
00033 typedef struct Cart{
00034 double x, y, z;
00035 }CARTES;
00036
00037 typedef struct Sphe{
00038 double l, b, r;
00039 }SPHER;
00040
00041 void range (double *s, double m);
00042 void sphcart (SPHER s, CARTES *c);
00043 void car2sph (CARTES c,SPHER *s);
00044
00045 double GetJD(int An,int Me,int Gio,double utc);
00046 double GetGMST(double J_D);
00047 double Kepler(double MeanAnomaly,double Eccentricity);
00048 void matrix_transpose(double a[3][3], double b[3][3]);
00049 void matrix_multiply(double a[3][3], double b[3][3], double c[3][3]);
00050 void calc_unit_vector(double a[3], double b[3]);
00051 void vector_cross_product(double a[3], double b[3], double c[3]);
00052 void vector_matrix_multiply(const double a[3], double b[3][3], double c[3]);
00053 double modulo(double a, double b);
00054 void eqtogal(double ra, double dec,double *l,double *b);
00055 void galtoeq(double l,double b, double *ra, double *dec);
00056 void vector_dot_product(double a[3],double b[3],double *mod,double *angle);
00057 double modulo_vet(double a[3]);
00058 int vector2radec (double *pos, double *ra, double *dec);
00059 void Sfer2xyz (double ra, double dec,double *vector);
00060 int InsideSAA(double lon, double lat);
00061 void GetRockMat(const double pp[3],const double rock,const int orb,double ppr[3]);
00062 #endif