plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

astro.h (4208B)


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