Blame


1 cd5bae78 2004-04-21 devnull #include <u.h>
2 cd5bae78 2004-04-21 devnull #include <libc.h>
3 cd5bae78 2004-04-21 devnull
4 cbeb0b26 2006-04-01 devnull #ifdef VARARGCK
5 cbeb0b26 2006-04-01 devnull #pragma varargck type "R" double
6 cbeb0b26 2006-04-01 devnull #pragma varargck type "D" double
7 cbeb0b26 2006-04-01 devnull #endif
8 cd5bae78 2004-04-21 devnull
9 1813809c 2006-05-24 devnull #undef sun
10 1813809c 2006-05-24 devnull #define sun astrosun /* not the machine! */
11 1813809c 2006-05-24 devnull #undef fmod
12 1813809c 2006-05-24 devnull #define fmod astrofmod /* ours is always positive */
13 1813809c 2006-05-24 devnull
14 cd5bae78 2004-04-21 devnull typedef struct Obj1 Obj1;
15 cd5bae78 2004-04-21 devnull typedef struct Obj2 Obj2;
16 cd5bae78 2004-04-21 devnull typedef struct Obj3 Obj3;
17 cd5bae78 2004-04-21 devnull typedef struct Occ Occ;
18 cd5bae78 2004-04-21 devnull typedef struct Event Event;
19 cd5bae78 2004-04-21 devnull typedef struct Tim Tim;
20 cd5bae78 2004-04-21 devnull typedef struct Moontab Moontab;
21 cd5bae78 2004-04-21 devnull
22 cd5bae78 2004-04-21 devnull #define NPTS 12
23 cd5bae78 2004-04-21 devnull #define PER 1.0
24 cd5bae78 2004-04-21 devnull
25 cd5bae78 2004-04-21 devnull enum
26 cd5bae78 2004-04-21 devnull {
27 cd5bae78 2004-04-21 devnull DARK = 1<<0,
28 cd5bae78 2004-04-21 devnull SIGNIF = 1<<1,
29 cd5bae78 2004-04-21 devnull PTIME = 1<<2,
30 cbeb0b26 2006-04-01 devnull LIGHT = 1<<3
31 cd5bae78 2004-04-21 devnull };
32 cd5bae78 2004-04-21 devnull
33 cd5bae78 2004-04-21 devnull struct Obj1
34 cd5bae78 2004-04-21 devnull {
35 cd5bae78 2004-04-21 devnull double ra;
36 cd5bae78 2004-04-21 devnull double decl2;
37 cd5bae78 2004-04-21 devnull double semi2;
38 cd5bae78 2004-04-21 devnull double az;
39 cd5bae78 2004-04-21 devnull double el;
40 cd5bae78 2004-04-21 devnull double mag;
41 cd5bae78 2004-04-21 devnull };
42 cd5bae78 2004-04-21 devnull struct Obj2
43 cd5bae78 2004-04-21 devnull {
44 cd5bae78 2004-04-21 devnull char* name;
45 cd5bae78 2004-04-21 devnull char* name1;
46 cd5bae78 2004-04-21 devnull void (*obj)(void);
47 cd5bae78 2004-04-21 devnull Obj1 point[NPTS+2];
48 cd5bae78 2004-04-21 devnull };
49 cd5bae78 2004-04-21 devnull struct Obj3
50 cd5bae78 2004-04-21 devnull {
51 cd5bae78 2004-04-21 devnull double t1;
52 cd5bae78 2004-04-21 devnull double e1;
53 cd5bae78 2004-04-21 devnull double t2;
54 cd5bae78 2004-04-21 devnull double e2;
55 cd5bae78 2004-04-21 devnull double t3;
56 cd5bae78 2004-04-21 devnull double e3;
57 cd5bae78 2004-04-21 devnull double t4;
58 cd5bae78 2004-04-21 devnull double e4;
59 cd5bae78 2004-04-21 devnull double t5;
60 cd5bae78 2004-04-21 devnull double e5;
61 cd5bae78 2004-04-21 devnull };
62 cd5bae78 2004-04-21 devnull struct Event
63 cd5bae78 2004-04-21 devnull {
64 cd5bae78 2004-04-21 devnull char* format;
65 cd5bae78 2004-04-21 devnull char* arg1;
66 cd5bae78 2004-04-21 devnull char* arg2;
67 cd5bae78 2004-04-21 devnull double tim;
68 cd5bae78 2004-04-21 devnull int flag;
69 cd5bae78 2004-04-21 devnull };
70 cd5bae78 2004-04-21 devnull struct Moontab
71 cd5bae78 2004-04-21 devnull {
72 cd5bae78 2004-04-21 devnull double f;
73 cd5bae78 2004-04-21 devnull char c[4];
74 cd5bae78 2004-04-21 devnull };
75 cd5bae78 2004-04-21 devnull struct Occ
76 cd5bae78 2004-04-21 devnull {
77 cd5bae78 2004-04-21 devnull Obj1 act;
78 cd5bae78 2004-04-21 devnull Obj1 del0;
79 cd5bae78 2004-04-21 devnull Obj1 del1;
80 cd5bae78 2004-04-21 devnull Obj1 del2;
81 cd5bae78 2004-04-21 devnull };
82 cd5bae78 2004-04-21 devnull struct Tim
83 cd5bae78 2004-04-21 devnull {
84 cd5bae78 2004-04-21 devnull double ifa[5];
85 cd5bae78 2004-04-21 devnull char tz[4];
86 cd5bae78 2004-04-21 devnull };
87 cd5bae78 2004-04-21 devnull
88 cd5bae78 2004-04-21 devnull double converge;
89 cd5bae78 2004-04-21 devnull
90 cd5bae78 2004-04-21 devnull char flags[128];
91 cd5bae78 2004-04-21 devnull int nperiods;
92 cd5bae78 2004-04-21 devnull double wlong, awlong, nlat, elev;
93 cd5bae78 2004-04-21 devnull double obliq, phi, eps, tobliq;
94 cd5bae78 2004-04-21 devnull double dphi, deps;
95 cd5bae78 2004-04-21 devnull double day, deld, per;
96 cd5bae78 2004-04-21 devnull double eday, capt, capt2, capt3, gst;
97 cd5bae78 2004-04-21 devnull double pi, pipi, radian, radsec, deltat;
98 cd5bae78 2004-04-21 devnull double erad, glat;
99 cd5bae78 2004-04-21 devnull double xms, yms, zms;
100 cd5bae78 2004-04-21 devnull double xdot, ydot, zdot;
101 cd5bae78 2004-04-21 devnull
102 cd5bae78 2004-04-21 devnull double ecc, incl, node, argp, mrad, anom, motion;
103 cd5bae78 2004-04-21 devnull
104 cd5bae78 2004-04-21 devnull double lambda, beta, rad, mag, semi;
105 cd5bae78 2004-04-21 devnull double alpha, delta, rp, hp;
106 cd5bae78 2004-04-21 devnull double ra, decl, semi2;
107 cd5bae78 2004-04-21 devnull double lha, decl2, lmb2;
108 cd5bae78 2004-04-21 devnull double az, el;
109 cd5bae78 2004-04-21 devnull
110 cd5bae78 2004-04-21 devnull double meday, seday, mhp, salph, sdelt, srad;
111 cd5bae78 2004-04-21 devnull
112 cd5bae78 2004-04-21 devnull double* cafp;
113 cd5bae78 2004-04-21 devnull char* cacp;
114 cd5bae78 2004-04-21 devnull
115 cd5bae78 2004-04-21 devnull double rah, ram, ras, dday, dmin, dsec;
116 cd5bae78 2004-04-21 devnull long sao;
117 cd5bae78 2004-04-21 devnull double da, dd, px, epoch;
118 cd5bae78 2004-04-21 devnull char line[100];
119 cd5bae78 2004-04-21 devnull Obj2 osun;
120 cd5bae78 2004-04-21 devnull Obj2 omoon;
121 cd5bae78 2004-04-21 devnull Obj2 oshad;
122 cd5bae78 2004-04-21 devnull Obj2 omerc;
123 cd5bae78 2004-04-21 devnull Obj2 ovenus;
124 cd5bae78 2004-04-21 devnull Obj2 omars;
125 cd5bae78 2004-04-21 devnull Obj2 osat;
126 cd5bae78 2004-04-21 devnull Obj2 ouran;
127 cd5bae78 2004-04-21 devnull Obj2 onept;
128 cd5bae78 2004-04-21 devnull Obj2 oplut;
129 cd5bae78 2004-04-21 devnull Obj2 ojup;
130 cd5bae78 2004-04-21 devnull Obj2 ostar;
131 cd5bae78 2004-04-21 devnull Obj2 ocomet;
132 cd5bae78 2004-04-21 devnull Obj3 occ;
133 cd5bae78 2004-04-21 devnull Obj2* eobj1;
134 cd5bae78 2004-04-21 devnull Obj2* eobj2;
135 cd5bae78 2004-04-21 devnull
136 cd5bae78 2004-04-21 devnull char* startab;
137 cd5bae78 2004-04-21 devnull
138 cd5bae78 2004-04-21 devnull extern int dmo[];
139 cd5bae78 2004-04-21 devnull extern Obj2* objlst[];
140 cd5bae78 2004-04-21 devnull
141 cd5bae78 2004-04-21 devnull extern double venfp[];
142 cd5bae78 2004-04-21 devnull extern char vencp[];
143 cd5bae78 2004-04-21 devnull extern double sunfp[];
144 cd5bae78 2004-04-21 devnull extern char suncp[];
145 cd5bae78 2004-04-21 devnull extern double mercfp[];
146 cd5bae78 2004-04-21 devnull extern char merccp[];
147 cd5bae78 2004-04-21 devnull extern double nutfp[];
148 cd5bae78 2004-04-21 devnull extern char nutcp[];
149 cd5bae78 2004-04-21 devnull extern Moontab moontab[];
150 cd5bae78 2004-04-21 devnull
151 cd5bae78 2004-04-21 devnull extern void args(int, char**);
152 cd5bae78 2004-04-21 devnull extern void bdtsetup(double, Tim*);
153 cd5bae78 2004-04-21 devnull extern double betcross(double);
154 cd5bae78 2004-04-21 devnull extern double convdate(Tim*);
155 2ad582ee 2006-05-27 devnull extern double cosadd(int, ...);
156 cd5bae78 2004-04-21 devnull extern double cosx(double, int, int, int, int, double);
157 cd5bae78 2004-04-21 devnull extern double dist(Obj1*, Obj1*);
158 cd5bae78 2004-04-21 devnull extern double dsrc(double, Tim*, int);
159 cd5bae78 2004-04-21 devnull extern void dtsetup(double, Tim*);
160 cbeb0b26 2006-04-01 devnull /*extern int evcomp(void*, void*);*/
161 cd5bae78 2004-04-21 devnull extern void event(char*, char*, char*, double, int);
162 cd5bae78 2004-04-21 devnull extern void evflush(void);
163 cd5bae78 2004-04-21 devnull extern double fmod(double, double);
164 cd5bae78 2004-04-21 devnull extern void fstar(void);
165 cd5bae78 2004-04-21 devnull extern void fsun(void);
166 cd5bae78 2004-04-21 devnull extern void geo(void);
167 cd5bae78 2004-04-21 devnull extern void helio(void);
168 cd5bae78 2004-04-21 devnull extern void icosadd(double*, char*);
169 cd5bae78 2004-04-21 devnull extern void init(void);
170 cd5bae78 2004-04-21 devnull extern void jup(void);
171 cd5bae78 2004-04-21 devnull extern int lastsun(Tim*, int);
172 cd5bae78 2004-04-21 devnull extern int main(int, char**);
173 cd5bae78 2004-04-21 devnull extern void mars(void);
174 cd5bae78 2004-04-21 devnull extern double melong(Obj2*);
175 cd5bae78 2004-04-21 devnull extern void merc(void);
176 cd5bae78 2004-04-21 devnull extern void moon(void);
177 cd5bae78 2004-04-21 devnull extern void numb(int);
178 cd5bae78 2004-04-21 devnull extern void nutate(void);
179 cd5bae78 2004-04-21 devnull extern void occult(Obj2*, Obj2*, double);
180 cd5bae78 2004-04-21 devnull extern void output(char*, Obj1*);
181 cd5bae78 2004-04-21 devnull extern void pdate(double);
182 cd5bae78 2004-04-21 devnull extern double pinorm(double);
183 cd5bae78 2004-04-21 devnull extern void ptime(double);
184 cd5bae78 2004-04-21 devnull extern void pstime(double);
185 cd5bae78 2004-04-21 devnull extern double pyth(double);
186 cd5bae78 2004-04-21 devnull extern double readate(void);
187 cd5bae78 2004-04-21 devnull extern double readdt(void);
188 cd5bae78 2004-04-21 devnull extern void readlat(int);
189 cd5bae78 2004-04-21 devnull extern double rise(Obj2*, double);
190 cd5bae78 2004-04-21 devnull extern int rline(int);
191 cd5bae78 2004-04-21 devnull extern void sat(void);
192 cd5bae78 2004-04-21 devnull extern void uran(void);
193 cd5bae78 2004-04-21 devnull extern void nept(void);
194 cd5bae78 2004-04-21 devnull extern void plut(void);
195 cd5bae78 2004-04-21 devnull extern void satel(double);
196 cd5bae78 2004-04-21 devnull extern void satels(void);
197 cd5bae78 2004-04-21 devnull extern void search(void);
198 cd5bae78 2004-04-21 devnull extern double set(Obj2*, double);
199 cd5bae78 2004-04-21 devnull extern void set3pt(Obj2*, int, Occ*);
200 cd5bae78 2004-04-21 devnull extern void setime(double);
201 cd5bae78 2004-04-21 devnull extern void setobj(Obj1*);
202 cd5bae78 2004-04-21 devnull extern void setpt(Occ*, double);
203 cd5bae78 2004-04-21 devnull extern void shad(void);
204 2ad582ee 2006-05-27 devnull extern double sinadd(int, ...);
205 cd5bae78 2004-04-21 devnull extern double sinx(double, int, int, int, int, double);
206 cd5bae78 2004-04-21 devnull extern char* skip(int);
207 cd5bae78 2004-04-21 devnull extern double solstice(int);
208 cd5bae78 2004-04-21 devnull extern void star(void);
209 cd5bae78 2004-04-21 devnull extern void stars(void);
210 cd5bae78 2004-04-21 devnull extern void sun(void);
211 cd5bae78 2004-04-21 devnull extern double sunel(double);
212 cd5bae78 2004-04-21 devnull extern void venus(void);
213 cd5bae78 2004-04-21 devnull extern int vis(double, double, double, double);
214 cd5bae78 2004-04-21 devnull extern void comet(void);
215 cd5bae78 2004-04-21 devnull extern int Rconv(Fmt*);
216 cd5bae78 2004-04-21 devnull extern int Dconv(Fmt*);
217 cd5bae78 2004-04-21 devnull extern double etdate(long, int, double);