123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- #include <u.h>
- #include <libc.h>
- #pragma varargck type "R" double
- #pragma varargck type "D" double
- typedef struct Obj1 Obj1;
- typedef struct Obj2 Obj2;
- typedef struct Obj3 Obj3;
- typedef struct Occ Occ;
- typedef struct Event Event;
- typedef struct Tim Tim;
- typedef struct Moontab Moontab;
- #define NPTS 12
- #define PER 1.0
- enum
- {
- DARK = 1<<0,
- SIGNIF = 1<<1,
- PTIME = 1<<2,
- LIGHT = 1<<3,
- };
- struct Obj1
- {
- double ra;
- double decl2;
- double semi2;
- double az;
- double el;
- double mag;
- };
- struct Obj2
- {
- char* name;
- char* name1;
- void (*obj)(void);
- Obj1 point[NPTS+2];
- };
- struct Obj3
- {
- double t1;
- double e1;
- double t2;
- double e2;
- double t3;
- double e3;
- double t4;
- double e4;
- double t5;
- double e5;
- };
- struct Event
- {
- char* format;
- char* arg1;
- char* arg2;
- double tim;
- int flag;
- };
- struct Moontab
- {
- double f;
- char c[4];
- };
- struct Occ
- {
- Obj1 act;
- Obj1 del0;
- Obj1 del1;
- Obj1 del2;
- };
- struct Tim
- {
- double ifa[5];
- char tz[4];
- };
- double converge;
- char flags[128];
- int nperiods;
- double wlong, awlong, nlat, elev;
- double obliq, phi, eps, tobliq;
- double dphi, deps;
- double day, deld, per;
- double eday, capt, capt2, capt3, gst;
- double pi, pipi, radian, radsec, deltat;
- double erad, glat;
- double xms, yms, zms;
- double xdot, ydot, zdot;
- double ecc, incl, node, argp, mrad, anom, motion;
- double lambda, beta, rad, mag, semi;
- double alpha, delta, rp, hp;
- double ra, decl, semi2;
- double lha, decl2, lmb2;
- double az, el;
- double meday, seday, mhp, salph, sdelt, srad;
- double* cafp;
- char* cacp;
- double rah, ram, ras, dday, dmin, dsec;
- long sao;
- double da, dd, px, epoch;
- char line[100];
- Obj2 osun;
- Obj2 omoon;
- Obj2 oshad;
- Obj2 omerc;
- Obj2 ovenus;
- Obj2 omars;
- Obj2 osat;
- Obj2 ouran;
- Obj2 onept;
- Obj2 oplut;
- Obj2 ojup;
- Obj2 ostar;
- Obj2 ocomet;
- Obj3 occ;
- Obj2* eobj1;
- Obj2* eobj2;
- char* startab;
- extern int dmo[];
- extern Obj2* objlst[];
- extern double venfp[];
- extern char vencp[];
- extern double sunfp[];
- extern char suncp[];
- extern double mercfp[];
- extern char merccp[];
- extern double nutfp[];
- extern char nutcp[];
- extern Moontab moontab[];
- extern void args(int, char**);
- extern void bdtsetup(double, Tim*);
- extern double betcross(double);
- extern double convdate(Tim*);
- extern double cosadd(int, double, ...);
- extern double cosx(double, int, int, int, int, double);
- extern double dist(Obj1*, Obj1*);
- extern double dsrc(double, Tim*, int);
- extern void dtsetup(double, Tim*);
- extern int evcomp(void*, void*);
- extern void event(char*, char*, char*, double, int);
- extern void evflush(void);
- extern double fmod(double, double);
- extern void fstar(void);
- extern void fsun(void);
- extern void geo(void);
- extern void helio(void);
- extern void icosadd(double*, char*);
- extern void init(void);
- extern void jup(void);
- extern int lastsun(Tim*, int);
- extern void main(int, char**);
- extern void mars(void);
- extern double melong(Obj2*);
- extern void merc(void);
- extern void moon(void);
- extern void numb(int);
- extern void nutate(void);
- extern void occult(Obj2*, Obj2*, double);
- extern void output(char*, Obj1*);
- extern void pdate(double);
- extern double pinorm(double);
- extern void ptime(double);
- extern void pstime(double);
- extern double pyth(double);
- extern double readate(void);
- extern double readdt(void);
- extern void readlat(int);
- extern double rise(Obj2*, double);
- extern int rline(int);
- extern void sat(void);
- extern void uran(void);
- extern void nept(void);
- extern void plut(void);
- extern void satel(double);
- extern void satels(void);
- extern void search(void);
- extern double set(Obj2*, double);
- extern void set3pt(Obj2*, int, Occ*);
- extern void setime(double);
- extern void setobj(Obj1*);
- extern void setpt(Occ*, double);
- extern void shad(void);
- extern double sinadd(int, double, ...);
- extern double sinx(double, int, int, int, int, double);
- extern char* skip(int);
- extern double solstice(int);
- extern void star(void);
- extern void stars(void);
- extern void sun(void);
- extern double sunel(double);
- extern void venus(void);
- extern int vis(double, double, double, double);
- extern void comet(void);
- extern int Rconv(Fmt*);
- extern int Dconv(Fmt*);
- extern double etdate(long, int, double);
|