Changeset 19681 for trunk/Ohana/src/skycalc/include/skycalc_internal.h
- Timestamp:
- Sep 23, 2008, 10:05:34 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/skycalc/include/skycalc_internal.h
r3263 r19681 1 /* header for use by the skycalc library files and stand-alone programs, not needed for external calls */ 1 2 2 /* header for use by the skycalc library files, not needed for external calls */3 4 # include <skycalc.h>5 3 # include <stdio.h> 6 4 # include <math.h> 7 # include <ctype.h> 8 # include <stdarg.h> 9 # include <string.h> 5 # include <stdlib.h> 10 6 # include <time.h> 11 12 /* a couple of the system-dependent magic numbers are defined here */ 13 14 #define SYS_CLOCK_OK 1 /* 1 means ANSI-standard time libraries do work, 15 2 means they don't. This is used by compiler switches in file 5 and 16 the main program. */ 17 18 #define LOG_FILES_OK 1 /* 1 means that log files are enabled. 19 Any other value means they're not. */ 20 21 #define MAX_OBJECTS 500 22 #define MINSHORT -32767 /* min, max short integers and double precision */ 23 #define MAXSHORT 32767 24 #define MAXDOUBLE 1.0e38 25 #define MINDOUBLE -1.0e38 26 #define BUFSIZE 150 7 # include <skycalc.h> 27 8 28 9 /* some (not all) physical, mathematical, and astronomical constants … … 44 25 #define PLANET_TOL 3. /* flag if nearer than 3 degrees 45 26 to a major planet ... */ 46 #define KZEN 0.172 /* zenith extinction, mag, for use47 in lunar sky brightness calculations. */48 #define FIRSTJD 2415387. /* 1901 Jan 1 -- calendrical limit */49 #define LASTJD 2488070. /* 2099 Dec 31 */50 27 51 /* MAGIC NUMBERS which might depend on how accurately double- 52 precision floating point is handled on your machine ... */ 28 # define dCOS(A) ((double) cos ((double)RAD_DEG*A)) 29 # define dSIN(A) ((double) sin ((double)RAD_DEG*A)) 53 30 54 #define EARTH_DIFF 0.05 /* used in numerical 55 differentiation to find earth velocity -- this value gives 56 about 8 digits of numerical accuracy on the VAX, but is 57 about 3 orders of magnitude larger than the value where roundoff 58 errors become apparent. */ 31 /** prototypes of private functions used by the library **/ 59 32 60 #define MIDN_TOL 0.00001 /* this is no longer 61 used -- it was formerly 62 how close (in days) a julian date has to be to midnight 63 before a warning flag is printed for the reader. VAX 64 double precision renders a Julian date considerably 65 more accurately than this. The day and date are now based 66 on the same rounding of the julian date, so they should 67 always agree. */ 33 /* in time.c */ 34 int SC_get_sys_date (struct SC_date_time *date); 35 double SC_date_to_jd (struct SC_date_time date); 36 void SC_jd_to_date (double jdin, struct SC_date_time *date); 37 double SC_lst (double jd, double longit); 38 double SC_adj_time (double x); 68 39 69 /** prototypes **/ 70 int get_sys_date (struct SC_date_time *date); 71 double date_to_jd (struct SC_date_time date); 72 void jd_to_date (double jdin, struct SC_date_time *date); 73 double lst (double jd, double longit); 74 double adj_time (double x); 75 void xyz_cel (double x, double y, double z, double *r, double *d); 76 double atan_circ (double x, double y); 77 double altit (double dec, double ha, double lat, double *az); 78 double ha_alt (double dec, double lat, double alt); 79 void min_max_alt (double lat, double dec, double *min, double *max); 80 double circulo (double x); 81 void precrot (double rorig, double dorig, double orig_epoch, double final_epoch, double *rf, double *df); 82 void geocent (double geolong, double geolat, double height, double *x_geo, double *y_geo, double *z_geo); 83 void eclrot(double jd, double *x, double *y, double *z); 84 double etcorr (double jd); 85 void set_zenith (struct SC_date_time date, double lat, double longit, double epoch, double *ra, double *dec); 86 void lpsun (double jd, double *ra, double *dec); 87 double jd_sun_alt (double alt, double jdguess, double lat, double longit); 88 void accumoon (double jd, double geolat, double lst, double elevsea, 89 double *geora, double *geodec, double *geodist, 90 double *topora, double *topodec, double *topodist); 91 double jd_moon_alt (double alt, double jdguess, double lat, double longit, double elevsea); 40 /* in geometry.c */ 41 void SC_xyz_cel (double x, double y, double z, double *r, double *d); 42 double SC_atan_circ (double x, double y); 43 double SC_altit (double dec, double ha, double lat, double *az); 44 double SC_ha_alt (double dec, double lat, double alt); 45 void SC_min_max_alt (double lat, double dec, double *min, double *max); 46 double SC_circulo (double x); 92 47 93 double sunset_tonight (struct SC_date_time date, double lat, double longit, double elev); 94 double sunrise_tonight (struct SC_date_time date, double lat, double longit, double elev); 48 /* in astro.c */ 49 void SC_precrot (double rorig, double dorig, double orig_epoch, double final_epoch, double *rf, double *df); 50 void SC_geocent (double geolong, double geolat, double height, double *x_geo, double *y_geo, double *z_geo); 51 void SC_eclrot(double jd, double *x, double *y, double *z); 52 double SC_etcorr (double jd); 53 void SC_set_zenith (struct SC_date_time date, double lat, double longit, double epoch, double *ra, double *dec); 95 54 96 int dms_to_ddd (double *Value, char *string); 97 int str_to_radec (double *ra, double *dec, char *str1, char *str2); 98 int chk_time (char *line); 99 double sec_to_jd (time_t second); 100 time_t jd_to_sec (double jd); 101 char *sec_to_date (time_t second); 102 time_t date_to_sec (char *date); 103 int str_to_time (char *line, time_t *second); 104 int str_to_dtime (char *line, double *second); 55 /* in sun.c */ 56 void SC_lpsun (double jd, double *ra, double *dec); 57 double SC_jd_sun_alt (double alt, double jdguess, double lat, double longit); 58 double SC_sunset_tonight (struct SC_date_time date, double lat, double longit, double elev); 59 double SC_sunrise_tonight (struct SC_date_time date, double lat, double longit, double elev); 60 61 /* in moon.c */ 62 void SC_lpmoon(double jd, double lat, double sid, double* ra, double* dec, double* dist); 63 void SC_accumoon (double jd, double geolat, double lst, double elevsea, double *geora, double *geodec, double *geodist, double *topora, double *topodec, double *topodist); 64 double SC_jd_moon_alt (double alt, double jdguess, double lat, double longit, double elevsea); 65 double SC_moonset_tonight (struct SC_date_time date, double lat, double longit, double elevsea, double elev); 66 double SC_moonrise_tonight (struct SC_date_time date, double lat, double longit, double elevsea, double elev); 67 68 // are these defined in here or in libohana? 69 // int dms_to_ddd (double *Value, char *string); 70 // int str_to_radec (double *ra, double *dec, char *str1, char *str2); 71 // int chk_time (char *line); 72 // double sec_to_jd (time_t second); 73 // time_t jd_to_sec (double jd); 74 // char *sec_to_date (time_t second); 75 // time_t date_to_sec (char *date); 76 // int str_to_time (char *line, time_t *second); 77 // int str_to_dtime (char *line, double *second);
Note:
See TracChangeset
for help on using the changeset viewer.
