CARMA C++
slalib.h
1 #ifndef SLALIBHDEF
2 #define SLALIBHDEF
3 #include <math.h>
4 
5 /*
6 ** - - - - - - - - -
7 ** s l a l i b . h
8 ** - - - - - - - - -
9 **
10 ** Prototype function declarations for slalib library.
11 **
12 ** Last revision: 29 November 1996
13 **
14 ** Copyright P.T.Wallace. All rights reserved.
15 */
16 
17 void slaAddet ( double rm, double dm, double eq, double *rc, double *dc );
18 
19 void slaAfin ( char *string, int *iptr, float *a, int *j );
20 
21 double slaAirmas ( double zd );
22 
23 void slaAltaz ( double ha, double dec, double phi,
24  double *az, double *azd, double *azdd,
25  double *el, double *eld, double *eldd,
26  double *pa, double *pad, double *padd );
27 
28 void slaAmp ( double ra, double da, double date, double eq,
29  double *rm, double *dm );
30 
31 void slaAmpqk ( double ra, double da, double amprms[21],
32  double *rm, double *dm );
33 
34 void slaAop ( double rap, double dap, double date, double dut,
35  double elongm, double phim, double hm, double xp,
36  double yp, double tdk, double pmb, double rh,
37  double wl, double tlr,
38  double *aob, double *zob, double *hob,
39  double *dob, double *rob );
40 
41 void slaAoppa ( double date, double dut, double elongm, double phim,
42  double hm, double xp, double yp, double tdk, double pmb,
43  double rh, double wl, double tlr, double aoprms[14] );
44 
45 void slaAoppat ( double date, double aoprms[14] );
46 
47 void slaAopqk ( double rap, double dap, double aoprms[14],
48  double *aob, double *zob, double *hob,
49  double *dob, double *rob );
50 
51 void slaAtmdsp ( double tdk, double pmb, double rh, double wl1,
52  double a1, double b1, double wl2, double *a2, double *b2 );
53 
54 void slaAv2m ( float axvec[3], float rmat[3][3] );
55 
56 float slaBear ( float a1, float b1, float a2, float b2 );
57 
58 void slaCaf2r ( int ideg, int iamin, float asec, float *rad, int *j );
59 
60 void slaCaldj ( int iy, int im, int id, double *djm, int *j );
61 
62 void slaCalyd ( int iy, int im, int id, int *ny, int *nd, int *j );
63 
64 void slaCc2s ( float v[3], float *a, float *b );
65 
66 void slaCc62s ( float v[6], float *a, float *b, float *r,
67  float *ad, float *bd, float *rd );
68 
69 void slaCd2tf ( int ndp, float days, char *sign, int ihmsf[4] );
70 
71 void slaCldj ( int iy, int im, int id, double *djm, int *j );
72 
73 void slaClyd ( int iy, int im, int id, int *ny, int *nd, int *jstat );
74 
75 void slaCr2af ( int ndp, float angle, char *sign, int idmsf[4] );
76 
77 void slaCr2tf ( int ndp, float angle, char *sign, int ihmsf[4] );
78 
79 void slaCs2c ( float a, float b, float v[3] );
80 
81 void slaCs2c6 ( float a, float b, float r, float ad,
82  float bd, float rd, float v[6] );
83 
84 void slaCtf2d ( int ihour, int imin, float sec, float *days, int *j );
85 
86 void slaCtf2r ( int ihour, int imin, float sec, float *rad, int *j );
87 
88 void slaDaf2r ( int ideg, int iamin, double asec, double *rad, int *j );
89 
90 void slaDafin ( char *string, int *iptr, double *a, int *j );
91 
92 double slaDat ( double dju );
93 
94 void slaDav2m ( double axvec[3], double rmat[3][3] );
95 
96 double slaDbear ( double a1, double b1, double a2, double b2 );
97 
98 void slaDbjin ( char *string, int *nstrt,
99  double *dreslt, int *jf1, int *jf2 );
100 
101 void slaDc62s ( double v[6], double *a, double *b, double *r,
102  double *ad, double *bd, double *rd );
103 
104 void slaDcc2s ( double v[3], double *a, double *b );
105 
106 void slaDcmpf ( double coeffs[6], double *xz, double *yz, double *xs,
107  double *ys, double *perp, double *orient );
108 
109 void slaDcs2c ( double a, double b, double v[3] );
110 
111 void slaDd2tf ( int ndp, double days, char *sign, int ihmsf[4] );
112 
113 void slaDe2h ( double ha, double dec, double phi,
114  double *az, double *el );
115 
116 void slaDeuler ( char *order, double phi, double theta, double psi,
117  double rmat[3][3] );
118 
119 void slaDfltin ( char *string, int *nstrt, double *dreslt, int *jflag );
120 
121 void slaDh2e ( double az, double el, double phi, double *ha, double *dec);
122 
123 void slaDimxv ( double dm[3][3], double va[3], double vb[3] );
124 
125 void slaDjcal ( int ndp, double djm, int iymdf[4], int *j );
126 
127 void slaDjcl ( double djm, int *iy, int *im, int *id, double *fd, int *j );
128 
129 void slaDm2av ( double rmat[3][3], double axvec[3] );
130 
131 void slaDmat ( int n, double *a, double *y, double *d, int *jf, int *iw );
132 
133 void slaDmoon ( double date, double pv[6] );
134 
135 void slaDmxm ( double a[3][3], double b[3][3], double c[3][3] );
136 
137 void slaDmxv ( double dm[3][3], double va[3], double vb[3] );
138 
139 void slaDr2af ( int ndp, double angle, char *sign, int idmsf[4] );
140 
141 void slaDr2tf ( int ndp, double angle, char *sign, int ihmsf[4] );
142 
143 double slaDrange ( double angle );
144 
145 double slaDranrm ( double angle );
146 
147 void slaDs2c6 ( double a, double b, double r, double ad, double bd,
148  double rd, double v[6] );
149 
150 void slaDs2tp ( double ra, double dec, double raz, double decz,
151  double *xi, double *eta, int *j );
152 
153 double slaDsep ( double a1, double b1, double a2, double b2 );
154 
155 double slaDt ( double epoch );
156 
157 void slaDtf2d ( int ihour, int imin, double sec, double *days, int *j );
158 
159 void slaDtf2r ( int ihour, int imin, double sec, double *rad, int *j );
160 
161 void slaDtp2s ( double xi, double eta, double raz, double decz,
162  double *ra, double *dec );
163 
164 void slaDtp2v ( double xi, double eta, double v0[3], double v[3] );
165 
166 void slaDtps2c ( double xi, double eta, double ra, double dec,
167  double *raz1, double *decz1,
168  double *raz2, double *decz2, int *n );
169 
170 void slaDtpv2c ( double xi, double eta, double v[3],
171  double v01[3], double v02[3], int *n );
172 
173 double slaDtt ( double dju );
174 
175 void slaDv2tp ( double v[3], double v0[3], double *xi, double *eta, int *j );
176 
177 double slaDvdv ( double va[3], double vb[3] );
178 
179 void slaDvn ( double v[3], double uv[3], double *vm );
180 
181 void slaDvxv ( double va[3], double vb[3], double vc[3] );
182 
183 void slaE2h ( float ha, float dec, float phi, float *az, float *el );
184 
185 void slaEarth ( int iy, int id, float fd, float posvel[6] );
186 
187 void slaEcleq ( double dl, double db, double date, double *dr, double *dd );
188 
189 void slaEcmat ( double date, double rmat[3][3] );
190 
191 void slaEcor ( float rm, float dm, int iy, int id, float fd,
192  float *rv, float *tl );
193 
194 void slaEg50 ( double dr, double dd, double *dl, double *db );
195 
196 double slaEpb ( double date );
197 
198 double slaEpb2d ( double epb );
199 
200 double slaEpco ( char k0, char k, double e );
201 
202 double slaEpj ( double date );
203 
204 double slaEpj2d ( double epj );
205 
206 void slaEqecl ( double dr, double dd, double date, double *dl, double *db );
207 
208 double slaEqeqx ( double date );
209 
210 void slaEqgal ( double dr, double dd, double *dl, double *db );
211 
212 void slaEtrms ( double ep, double ev[3] );
213 
214 void slaEuler ( char *order, float phi, float theta, float psi,
215  float rmat[3][3] );
216 
217 void slaEvp ( double date, double deqx,
218  double dvb[3], double dpb[3],
219  double dvh[3], double dph[3] );
220 
221 void slaFitxy ( int itype, int np, double xye[][2], double xym[][2],
222  double coeffs[6], int *j );
223 
224 void slaFk425 ( double r1950, double d1950, double dr1950,
225  double dd1950, double p1950, double v1950,
226  double *r2000, double *d2000, double *dr2000,
227  double *dd2000, double *p2000, double *v2000 );
228 
229 void slaFk45z ( double r1950, double d1950, double bepoch,
230  double *r2000, double *d2000 );
231 
232 void slaFk524 ( double r2000, double d2000, double dr2000,
233  double dd2000, double p2000, double v2000,
234  double *r1950, double *d1950, double *dr1950,
235  double *dd1950, double *p1950, double *v1950 );
236 
237 void slaFk54z ( double r2000, double d2000, double bepoch,
238  double *r1950, double *d1950,
239  double *dr1950, double *dd1950 );
240 
241 void slaFlotin ( char *string, int *nstrt, float *reslt, int *jflag );
242 
243 void slaGaleq ( double dl, double db, double *dr, double *dd );
244 
245 void slaGalsup ( double dl, double db, double *dsl, double *dsb );
246 
247 void slaGe50 ( double dl, double db, double *dr, double *dd );
248 
249 void slaGeoc ( double p, double h, double *r, double *z );
250 
251 double slaGmst ( double ut1 );
252 
253 double slaGmsta ( double date, double ut1 );
254 
255 void slaH2e ( float az, float el, float phi, float *ha, float *dec );
256 
257 void slaImxv ( float rm[3][3], float va[3], float vb[3] );
258 
259 void slaIntin ( char *string, int *nstrt, long *ireslt, int *jflag );
260 
261 void slaInvf ( double fwds[6], double bkwds[6], int *j );
262 
263 void slaKbj ( int jb, double e, char *k, int *j );
264 
265 void slaM2av ( float rmat[3][3], float axvec[3] );
266 
267 void slaMap ( double rm, double dm, double pr, double pd,
268  double px, double rv, double eq, double date,
269  double *ra, double *da );
270 
271 void slaMappa ( double eq, double date, double amprms[21] );
272 
273 void slaMapqk ( double rm, double dm, double pr, double pd,
274  double px, double rv, double amprms[21],
275  double *ra, double *da );
276 
277 void slaMapqkz ( double rm, double dm, double amprms[21],
278  double *ra, double *da );
279 
280 void slaMoon ( int iy, int id, float fd, float posvel[6] );
281 
282 void slaMxm ( float a[3][3], float b[3][3], float c[3][3] );
283 
284 void slaMxv ( float rm[3][3], float va[3], float vb[3] );
285 
286 void slaNut ( double date, double rmatn[3][3] );
287 
288 void slaNutc ( double date, double *dpsi, double *deps, double *eps0 );
289 
290 void slaOap ( char *type, double ob1, double ob2, double date,
291  double dut, double elongm, double phim, double hm,
292  double xp, double yp, double tdk, double pmb,
293  double rh, double wl, double tlr,
294  double *rap, double *dap );
295 
296 void slaOapqk ( char *type, double ob1, double ob2, double aoprms[14],
297  double *rap, double *dap );
298 
299 void slaObs ( int n, char *c, char *name, double *w, double *p, double *h );
300 
301 double slaPa ( double ha, double dec, double phi );
302 
303 void slaPcd ( double disco, double *x, double *y );
304 
305 void slaPda2h ( double p, double d, double a,
306  double *h1, int *j1, double *h2, int *j2 );
307 
308 void slaPdq2h ( double p, double d, double q,
309  double *h1, int *j1, double *h2, int *j2 );
310 
311 void slaPlanet ( double date, int np, double pv[6], int *j );
312 
313 void slaPm ( double r0, double d0, double pr, double pd,
314  double px, double rv, double ep0, double ep1,
315  double *r1, double *d1 );
316 
317 void slaPolmo ( double elongm, double phim, double xp, double yp,
318  double *elong, double *phi, double *daz );
319 
320 void slaPrebn ( double bep0, double bep1, double rmatp[3][3] );
321 
322 void slaPrec ( double ep0, double ep1, double rmatp[3][3] );
323 
324 void slaPrecl ( double ep0, double ep1, double rmatp[3][3] );
325 
326 void slaPreces ( char sys[3], double ep0, double ep1,
327  double *ra, double *dc );
328 
329 void slaPrenut ( double epoch, double date, double rmatpn[3][3] );
330 
331 void slaPvobs ( double p, double h, double stl, double pv[6] );
332 
333 void slaPxy ( int np, double xye[][2], double xym[][2],
334  double coeffs[6],
335  double xyp[][2], double *xrms, double *yrms, double *rrms );
336 
337 float slaRange ( float angle );
338 
339 float slaRanorm ( float angle );
340 
341 double slaRcc ( double tdb, double ut1, double wl, double u, double v );
342 
343 void slaRdplan ( double date, int np, double elong, double phi,
344  double *ra, double *dec, double *diam );
345 
346 void slaRefco ( double hm, double tdk, double pmb, double rh,
347  double wl, double phi, double tlr, double eps,
348  double *refa, double *refb );
349 
350 void slaRefro ( double zobs, double hm, double tdk, double pmb,
351  double rh, double wl, double phi, double tlr, double eps,
352  double *ref );
353 
354 void slaRefv ( double vu[3], double refa, double refb, double vr[3] );
355 
356 void slaRefz ( double zu, double refa, double refb, double *zr );
357 
358 float slaRverot ( float phi, float ra, float da, float st );
359 
360 float slaRvgalc ( float r2000, float d2000 );
361 
362 float slaRvlg ( float r2000, float d2000 );
363 
364 float slaRvlsrd ( float r2000, float d2000 );
365 
366 float slaRvlsrk ( float r2000, float d2000 );
367 
368 void slaS2tp ( float ra, float dec, float raz, float decz,
369  float *xi, float *eta, int *j );
370 
371 float slaSep ( float a1, float b1, float a2, float b2 );
372 
373 void slaSmat ( int n, float *a, float *y, float *d, int *jf, int *iw );
374 
375 void slaSubet ( double rc, double dc, double eq,
376  double *rm, double *dm );
377 
378 void slaSupgal ( double dsl, double dsb, double *dl, double *db );
379 
380 void slaSvd ( int m, int n, int mp, int np,
381  double *a, double *w, double *v, double *work,
382  int *jstat );
383 
384 void slaSvdcov ( int n, int np, int nc,
385  double *w, double *v, double *work, double *cvm );
386 
387 void slaSvdsol ( int m, int n, int mp, int np,
388  double *b, double *u, double *w, double *v,
389  double *work, double *x );
390 
391 void slaTp2s ( float xi, float eta, float raz, float decz,
392  float *ra, float *dec );
393 
394 void slaTp2v ( float xi, float eta, float v0[3], float v[3] );
395 
396 void slaTps2c ( float xi, float eta, float ra, float dec,
397  float *raz1, float *decz1,
398  float *raz2, float *decz2, int *n );
399 
400 void slaTpv2c ( float xi, float eta, float v[3],
401  float v01[3], float v02[3], int *n );
402 
403 void slaUnpcd ( double disco, double *x, double *y );
404 
405 void slaV2tp ( float v[3], float v0[3], float *xi, float *eta, int *j );
406 
407 float slaVdv ( float va[3], float vb[3] );
408 
409 void slaVn ( float v[3], float uv[3], float *vm );
410 
411 void slaVxv ( float va[3], float vb[3], float vc[3] );
412 
413 void slaXy2xy ( double x1, double y1, double coeffs[6],
414  double *x2, double *y2 );
415 
416 double slaZd ( double ha, double dec, double phi );
417 
418 #endif