/*** * * *  a s t r o l i b . h                  * * * ***/
/*** * * *  header file for astrolib		 * * * ***/
/*** * * *  Βιβλιοθήκες αστρονομικών συναρτήσεων * * * ***/
/*** * * *  βασισμένες στο "Practical Astronomy  * * * ***/
/*** * * *  with your Calculator - Peter Duffett * * * ***/
/*** * * *                 Smith                 * * * ***/



int	MOD(int, int);
double JDGreekEaster(double );
double YYMMDD2JD(double , double , double);
void JD2YYMMDD(double , double* , double* , double*);
int FindDayOfTheWeek(double);
double HHMMSS2DecHour(double , double , double );
double DecHour2HHMMSS(double , double* , double* );
double DDDecHour2DecDay(double , double );
double DecDay2DDDecHour(double , double*  );
double LT2UTC(double ,double );
double UTC2LT(double , double );
double UTC2GST(double );
double GST2UTC(double , double );
double GST2LST(double , double );
double LST2GST(double , double );
void SystemTransform(double ,double , double* , double* , double[3][3] );
void PrecessionTransform(double ,double ,int ,double[] ,double[] ,double[] ,double[] );
void radec2azalt(double , double ,int ,double[] ,double[] ,double[] ,double[] );
void azalt2radec(double , double ,int ,double[] ,double[] ,double[] ,double[] );
double obliquity(double);
void radec2lamdabeta(double ,int ,double[] ,double[] ,double[] ,double[] );
void lamdabeta2radec(double ,int ,double[] ,double[] ,double[] ,double[] );
void radec2galactic(int ,double[] ,double[] ,double[] ,double[] );
void galactic2radec(int ,double[] ,double[] ,double[] ,double[] );
void Transform_radec_nutationANDaberration(char , double ,int ,double[] ,double[] ,double[] ,double[] );
void Transform_lamdabeta2radec_nutationANDaberration(char ,double ,int ,double[] ,double[] ,double[], double[] );
double refraction(double ,double ,double );
void GeocentricParalax(double, double , double , double , int ,double[] ,double[] ,double[] ,double[] );
double JD_from_light_travel_delay(double ,double );
double sun_longitude(double );
double sun_distance(double );
double sun_angular_size(double );
void calculateMoon(double ,double[6] );


#ifndef PI
#define	PI	3.1415926535897932385
#endif

#ifndef PRECESSION
#define PRECESSION '\x01'
#endif

#ifndef NUTATION
#define NUTATION '\x02'
#endif

#ifndef ABERRATION
#define ABERRATION '\x04'
#endif

#ifndef GEOPARALAX
#define GEOPARALAX '\x08'
#endif

#ifndef REFRACTION
#define REFRACTION '\x10'
#endif

#ifndef LIGHTTRAVEL
#define LIGHTTRAVEL '\x20'
#endif

#ifndef TDTDIFFERENCE
#define TDTDIFFERENCE '\x40'
#endif

#ifndef FLAGS_RESET
#define FLAGS_RESET '\x00'
#endif

#ifndef LIGHT_SPEED
#define LIGHT_SPEED 2.99793e5	/*Light speed in vacuum (km/s)*/
#endif

typedef struct StarTAG{
	double ra;
	double dec;
	double mag;
}STAR;