Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

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