Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

slalib.h

Go to the documentation of this file.
00001 /*******************************************************************************
00002 * E.S.O. - VLT project
00003 *
00004 * "@(#) $Id: slalib.h,v 1.17 2001/02/05 10:15:33 vltsccm Exp $"
00005 *
00006 * who       when      what
00007 * --------  --------  ----------------------------------------------
00008 * rkarban  05/02/01  created from generic slalib sources
00009 */
00010 
00011 /************************************************************************
00012  *
00013  *----------------------------------------------------------------------
00014  */
00015 
00016 
00017 
00018 #ifndef SLALIBHDEF
00019 #define SLALIBHDEF
00020 
00021 #ifdef __cplusplus
00022 extern "C" {
00023 #endif
00024 
00025 #include <math.h>
00026 
00027 /*
00028 **  - - - - - - - - -
00029 **   s l a l i b . h
00030 **  - - - - - - - - -
00031 **
00032 **  Prototype function declarations for slalib library.
00033 **
00034 **  Last revision:   16 June 2000
00035 **
00036 **  Copyright P.T.Wallace.  All rights reserved.
00037 */
00038 
00039 void slaAddet ( double rm, double dm, double eq, double *rc, double *dc );
00040 
00041 void slaAfin ( char *string, int *iptr, float *a, int *j );
00042 
00043 double slaAirmas ( double zd );
00044 
00045 void slaAltaz ( double ha, double dec, double phi,
00046                 double *az, double *azd, double *azdd,
00047                 double *el, double *eld, double *eldd,
00048                 double *pa, double *pad, double *padd );
00049 
00050 void slaAmp ( double ra, double da, double date, double eq,
00051               double *rm, double *dm );
00052 
00053 void slaAmpqk ( double ra, double da, double amprms[21],
00054                 double *rm, double *dm );
00055 
00056 void slaAop ( double rap, double dap, double date, double dut,
00057               double elongm, double phim, double hm, double xp,
00058               double yp, double tdk, double pmb, double rh,
00059               double wl, double tlr,
00060               double *aob, double *zob, double *hob,
00061               double *dob, double *rob );
00062 
00063 void slaAoppa ( double date, double dut, double elongm, double phim,
00064                 double hm, double xp, double yp, double tdk, double pmb,
00065                 double rh, double wl, double tlr, double aoprms[14] );
00066 
00067 void slaAoppat ( double date, double aoprms[14] );
00068 
00069 void slaAopqk ( double rap, double dap, double aoprms[14],
00070                 double *aob, double *zob, double *hob,
00071                 double *dob, double *rob );
00072 
00073 void slaAtmdsp ( double tdk, double pmb, double rh, double wl1,
00074                  double a1, double b1, double wl2, double *a2, double *b2 );
00075 
00076 void slaAv2m ( float axvec[3], float rmat[3][3] );
00077 
00078 float slaBear ( float a1, float b1, float a2, float b2 );
00079 
00080 void slaCaf2r ( int ideg, int iamin, float asec, float *rad, int *j );
00081 
00082 void slaCaldj ( int iy, int im, int id, double *djm, int *j );
00083 
00084 void slaCalyd ( int iy, int im, int id, int *ny, int *nd, int *j );
00085 
00086 void slaCc2s ( float v[3], float *a, float *b );
00087 
00088 void slaCc62s ( float v[6], float *a, float *b, float *r,
00089                 float *ad, float *bd, float *rd );
00090 
00091 void slaCd2tf ( int ndp, float days, char *sign, int ihmsf[4] );
00092 
00093 void slaCldj ( int iy, int im, int id, double *djm, int *j );
00094 
00095 void slaClyd ( int iy, int im, int id, int *ny, int *nd, int *jstat );
00096 
00097 void slaCombn ( int nsel, int ncand, int list[], int *j );
00098 
00099 void slaCr2af ( int ndp, float angle, char *sign, int idmsf[4] );
00100 
00101 void slaCr2tf ( int ndp, float angle, char *sign, int ihmsf[4] );
00102 
00103 void slaCs2c ( float a, float b, float v[3] );
00104 
00105 void slaCs2c6 ( float a, float b, float r, float ad,
00106                 float bd, float rd, float v[6] );
00107 
00108 void slaCtf2d ( int ihour, int imin, float sec, float *days, int *j );
00109 
00110 void slaCtf2r ( int ihour, int imin, float sec, float *rad, int *j );
00111 
00112 void slaDaf2r ( int ideg, int iamin, double asec, double *rad, int *j );
00113 
00114 void slaDafin ( char *string, int *iptr, double *a, int *j );
00115 
00116 double slaDat ( double dju );
00117 
00118 void slaDav2m ( double axvec[3], double rmat[3][3] );
00119 
00120 double slaDbear ( double a1, double b1, double a2, double b2 );
00121 
00122 void slaDbjin ( char *string, int *nstrt,
00123                 double *dreslt, int *jf1, int *jf2 );
00124 
00125 void slaDc62s ( double v[6], double *a, double *b, double *r,
00126                 double *ad, double *bd, double *rd );
00127 
00128 void slaDcc2s ( double v[3], double *a, double *b );
00129 
00130 void slaDcmpf ( double coeffs[6], double *xz, double *yz, double *xs,
00131                 double *ys, double *perp, double *orient );
00132 
00133 void slaDcs2c ( double a, double b, double v[3] );
00134 
00135 void slaDd2tf ( int ndp, double days, char *sign, int ihmsf[4] );
00136 
00137 void slaDe2h ( double ha, double dec, double phi,
00138                double *az, double *el );
00139 
00140 void slaDeuler ( char *order, double phi, double theta, double psi,
00141                  double rmat[3][3] );
00142 
00143 void slaDfltin ( char *string, int *nstrt, double *dreslt, int *jflag );
00144 
00145 void slaDh2e ( double az, double el, double phi, double *ha, double *dec);
00146 
00147 void slaDimxv ( double dm[3][3], double va[3], double vb[3] );
00148 
00149 void slaDjcal ( int ndp, double djm, int iymdf[4], int *j );
00150 
00151 void slaDjcl ( double djm, int *iy, int *im, int *id, double *fd, int *j );
00152 
00153 void slaDm2av ( double rmat[3][3], double axvec[3] );
00154 
00155 void slaDmat ( int n, double *a, double *y, double *d, int *jf, int *iw );
00156 
00157 void slaDmoon ( double date, double pv[6] );
00158 
00159 void slaDmxm ( double a[3][3], double b[3][3], double c[3][3] );
00160 
00161 void slaDmxv ( double dm[3][3], double va[3], double vb[3] );
00162 
00163 double slaDpav ( double v1[3], double v2[3] );
00164 
00165 void slaDr2af ( int ndp, double angle, char *sign, int idmsf[4] );
00166 
00167 void slaDr2tf ( int ndp, double angle, char *sign, int ihmsf[4] );
00168 
00169 double slaDrange ( double angle );
00170 
00171 double slaDranrm ( double angle );
00172 
00173 void slaDs2c6 ( double a, double b, double r, double ad, double bd,
00174                 double rd, double v[6] );
00175 
00176 void slaDs2tp ( double ra, double dec, double raz, double decz,
00177                 double *xi, double *eta, int *j );
00178 
00179 double slaDsep ( double a1, double b1, double a2, double b2 );
00180 
00181 double slaDsepv ( double v1[3], double v2[3] );
00182 
00183 double slaDt ( double epoch );
00184 
00185 void slaDtf2d ( int ihour, int imin, double sec, double *days, int *j );
00186 
00187 void slaDtf2r ( int ihour, int imin, double sec, double *rad, int *j );
00188 
00189 void slaDtp2s ( double xi, double eta, double raz, double decz,
00190                 double *ra, double *dec );
00191 
00192 void slaDtp2v ( double xi, double eta, double v0[3], double v[3] );
00193 
00194 void slaDtps2c ( double xi, double eta, double ra, double dec,
00195                  double *raz1, double *decz1,
00196                  double *raz2, double *decz2, int *n );
00197 
00198 void slaDtpv2c ( double xi, double eta, double v[3],
00199                  double v01[3], double v02[3], int *n );
00200 
00201 double slaDtt ( double dju );
00202 
00203 void slaDv2tp ( double v[3], double v0[3], double *xi, double *eta, int *j );
00204 
00205 double slaDvdv ( double va[3], double vb[3] );
00206 
00207 void slaDvn ( double v[3], double uv[3], double *vm );
00208 
00209 void slaDvxv ( double va[3], double vb[3], double vc[3] );
00210 
00211 void slaE2h ( float ha, float dec, float phi, float *az, float *el );
00212 
00213 void slaEarth ( int iy, int id, float fd, float posvel[6] );
00214 
00215 void slaEcleq ( double dl, double db, double date, double *dr, double *dd );
00216 
00217 void slaEcmat ( double date, double rmat[3][3] );
00218 
00219 void slaEcor ( float rm, float dm, int iy, int id, float fd,
00220                float *rv, float *tl );
00221 
00222 void slaEg50 ( double dr, double dd, double *dl, double *db );
00223 
00224 void slaEl2ue ( double date, int jform, double epoch, double orbinc,
00225                 double anode, double perih, double aorq, double e,
00226                 double aorl, double dm, double u[], int *jstat );
00227 
00228 double slaEpb ( double date );
00229 
00230 double slaEpb2d ( double epb );
00231 
00232 double slaEpco ( char k0, char k, double e );
00233 
00234 double slaEpj ( double date );
00235 
00236 double slaEpj2d ( double epj );
00237 
00238 void slaEqecl ( double dr, double dd, double date, double *dl, double *db );
00239 
00240 double slaEqeqx ( double date );
00241 
00242 void slaEqgal ( double dr, double dd, double *dl, double *db );
00243 
00244 void slaEtrms ( double ep, double ev[3] );
00245 
00246 void slaEuler ( char *order, float phi, float theta, float psi,
00247                 float rmat[3][3] );
00248 
00249 void slaEvp ( double date, double deqx,
00250               double dvb[3], double dpb[3],
00251               double dvh[3], double dph[3] );
00252 
00253 void slaFitxy ( int itype, int np, double xye[][2], double xym[][2],
00254                 double coeffs[6], int *j );
00255 
00256 void slaFk425 ( double r1950, double d1950, double dr1950,
00257                 double dd1950, double p1950, double v1950,
00258                 double *r2000, double *d2000, double *dr2000,
00259                 double *dd2000, double *p2000, double *v2000 );
00260 
00261 void slaFk45z ( double r1950, double d1950, double bepoch,
00262                 double *r2000, double *d2000 );
00263 
00264 void slaFk524 ( double r2000, double d2000, double dr2000,
00265                 double dd2000, double p2000, double v2000,
00266                 double *r1950, double *d1950, double *dr1950,
00267                 double *dd1950, double *p1950, double *v1950 );
00268 
00269 void slaFk52h ( double r5, double d5, double dr5, double dd5,
00270                 double *dr, double *dh, double *drh, double *ddh );
00271 
00272 void slaFk54z ( double r2000, double d2000, double bepoch,
00273                 double *r1950, double *d1950,
00274                 double *dr1950, double *dd1950 );
00275 
00276 void slaFk5hz ( double r5, double d5, double epoch,
00277                 double *rh, double *dh );
00278 
00279 void slaFlotin ( char *string, int *nstrt, float *reslt, int *jflag );
00280 
00281 void slaGaleq ( double dl, double db, double *dr, double *dd );
00282 
00283 void slaGalsup ( double dl, double db, double *dsl, double *dsb );
00284 
00285 void slaGe50 ( double dl, double db, double *dr, double *dd );
00286 
00287 void slaGeoc ( double p, double h, double *r, double *z );
00288 
00289 double slaGmst ( double ut1 );
00290 
00291 double slaGmsta ( double date, double ut1 );
00292 
00293 void slaH2e ( float az, float el, float phi, float *ha, float *dec );
00294 
00295 void slaH2fk5 ( double dr, double dh, double drh, double ddh,
00296                 double *r5, double *d5, double *dr5, double *dd5 );
00297 
00298 void slaHfk5z ( double rh, double dh, double epoch,
00299                 double *r5, double *d5, double *dr5, double *dd5 );
00300 
00301 void slaImxv ( float rm[3][3], float va[3], float vb[3] );
00302 
00303 void slaIntin ( char *string, int *nstrt, long *ireslt, int *jflag );
00304 
00305 void slaInvf ( double fwds[6], double bkwds[6], int *j );
00306 
00307 void slaKbj ( int jb, double e, char *k, int *j );
00308 
00309 void slaM2av ( float rmat[3][3], float axvec[3] );
00310 
00311 void slaMap ( double rm, double dm, double pr, double pd,
00312               double px, double rv, double eq, double date,
00313               double *ra, double *da );
00314 
00315 void slaMappa ( double eq, double date, double amprms[21] );
00316 
00317 void slaMapqk ( double rm, double dm, double pr, double pd,
00318                 double px, double rv, double amprms[21],
00319                 double *ra, double *da );
00320 
00321 void slaMapqkz ( double rm, double dm, double amprms[21],
00322                  double *ra, double *da );
00323 
00324 void slaMoon ( int iy, int id, float fd, float posvel[6] );
00325 
00326 void slaMxm ( float a[3][3], float b[3][3], float c[3][3] );
00327 
00328 void slaMxv ( float rm[3][3], float va[3], float vb[3] );
00329 
00330 void slaNut ( double date, double rmatn[3][3] );
00331 
00332 void slaNutc ( double date, double *dpsi, double *deps, double *eps0 );
00333 
00334 void slaOap ( char *type, double ob1, double ob2, double date,
00335               double dut, double elongm, double phim, double hm,
00336               double xp, double yp, double tdk, double pmb,
00337               double rh, double wl, double tlr,
00338               double *rap, double *dap );
00339 
00340 void slaOapqk ( char *type, double ob1, double ob2, double aoprms[14],
00341                 double *rap, double *dap );
00342 
00343 void slaObs ( int n, char *c, char *name, double *w, double *p, double *h );
00344 
00345 double slaPa ( double ha, double dec, double phi );
00346 
00347 double slaPav ( float v1[3], float v2[3] );
00348 
00349 void slaPcd ( double disco, double *x, double *y );
00350 
00351 void slaPda2h ( double p, double d, double a,
00352                 double *h1, int *j1, double *h2, int *j2 );
00353 
00354 void slaPdq2h ( double p, double d, double q,
00355                 double *h1, int *j1, double *h2, int *j2 );
00356 
00357 void slaPermut ( int n, int istate[], int iorder[], int *j );
00358 
00359 void slaPertel (int jform, double date0, double date1,
00360                 double epoch0, double orbi0, double anode0,
00361                 double perih0, double aorq0, double e0, double am0,
00362                 double *epoch1, double *orbi1, double *anode1,
00363                 double *perih1, double *aorq1, double *e1, double *am1,
00364                 int *jstat );
00365 
00366 void slaPertue ( double date, double u[], int *jstat );
00367 
00368 void slaPlanel ( double date, int jform, double epoch, double orbinc,
00369                  double anode, double perih, double aorq,  double e,
00370                  double aorl, double dm, double pv[6], int *jstat );
00371 
00372 void slaPlanet ( double date, int np, double pv[6], int *j );
00373 
00374 void slaPlante ( double date, double elong, double phi, int jform,
00375                  double epoch, double orbinc, double anode, double perih,
00376                  double aorq, double e, double aorl, double dm,
00377                  double *ra, double *dec, double *r, int *jstat );
00378 
00379 void slaPm ( double r0, double d0, double pr, double pd,
00380              double px, double rv, double ep0, double ep1,
00381              double *r1, double *d1 );
00382 
00383 void slaPolmo ( double elongm, double phim, double xp, double yp,
00384                 double *elong, double *phi, double *daz );
00385 
00386 void slaPrebn ( double bep0, double bep1, double rmatp[3][3] );
00387 
00388 void slaPrec ( double ep0, double ep1, double rmatp[3][3] );
00389 
00390 void slaPrecl ( double ep0, double ep1, double rmatp[3][3] );
00391 
00392 void slaPreces ( char sys[3], double ep0, double ep1,
00393                  double *ra, double *dc );
00394 
00395 void slaPrenut ( double epoch, double date, double rmatpn[3][3] );
00396 
00397 void slaPv2el ( double pv[], double date, double pmass, int jformr,
00398                 int *jform, double *epoch, double *orbinc,
00399                 double *anode, double *perih, double *aorq, double *e,
00400                 double *aorl, double *dm, int *jstat );
00401 
00402 void slaPv2ue ( double pv[], double date, double pmass,
00403                 double u[], int *jstat );
00404 
00405 void slaPvobs ( double p, double h, double stl, double pv[6] );
00406 
00407 void slaPxy ( int np, double xye[][2], double xym[][2],
00408               double coeffs[6],
00409               double xyp[][2], double *xrms, double *yrms, double *rrms );
00410 
00411 float slaRange ( float angle );
00412 
00413 float slaRanorm ( float angle );
00414 
00415 double slaRcc ( double tdb, double ut1, double wl, double u, double v );
00416 
00417 void slaRdplan ( double date, int np, double elong, double phi,
00418                  double *ra, double *dec, double *diam );
00419 
00420 void slaRefco ( double hm, double tdk, double pmb, double rh,
00421                 double wl, double phi, double tlr, double eps,
00422                 double *refa, double *refb );
00423 
00424 void slaRefcoq ( double tdk, double pmb, double rh, double wl,
00425                 double *refa, double *refb );
00426 
00427 void slaRefro ( double zobs, double hm, double tdk, double pmb,
00428                 double rh, double wl, double phi, double tlr, double eps,
00429                 double *ref );
00430 
00431 void slaRefv ( double vu[3], double refa, double refb, double vr[3] );
00432 
00433 void slaRefz ( double zu, double refa, double refb, double *zr );
00434 
00435 float slaRverot ( float phi, float ra, float da, float st );
00436 
00437 float slaRvgalc ( float r2000, float d2000 );
00438 
00439 float slaRvlg ( float r2000, float d2000 );
00440 
00441 float slaRvlsrd ( float r2000, float d2000 );
00442 
00443 float slaRvlsrk ( float r2000, float d2000 );
00444 
00445 void slaS2tp ( float ra, float dec, float raz, float decz,
00446                float *xi, float *eta, int *j );
00447 
00448 float slaSep ( float a1, float b1, float a2, float b2 );
00449 
00450 float slaSepv ( float v1[3], float v2[3] );
00451 
00452 void slaSmat ( int n, float *a, float *y, float *d, int *jf, int *iw );
00453 
00454 void slaSubet ( double rc, double dc, double eq,
00455                 double *rm, double *dm );
00456 
00457 void slaSupgal ( double dsl, double dsb, double *dl, double *db );
00458 
00459 void slaSvd ( int m, int n, int mp, int np,
00460               double *a, double *w, double *v, double *work,
00461               int *jstat );
00462 
00463 void slaSvdcov ( int n, int np, int nc,
00464                  double *w, double *v, double *work, double *cvm );
00465 
00466 void slaSvdsol ( int m, int n, int mp, int np,
00467                  double *b, double *u, double *w, double *v,
00468                  double *work, double *x );
00469 
00470 void slaTp2s ( float xi, float eta, float raz, float decz,
00471                float *ra, float *dec );
00472 
00473 void slaTp2v ( float xi, float eta, float v0[3], float v[3] );
00474 
00475 void slaTps2c ( float xi, float eta, float ra, float dec,
00476                 float *raz1, float *decz1,
00477                 float *raz2, float *decz2, int *n );
00478 
00479 void slaTpv2c ( float xi, float eta, float v[3],
00480                 float v01[3], float v02[3], int *n );
00481 
00482 void slaUe2el ( double u[], int jformr,
00483                 int *jform, double *epoch, double *orbinc,
00484                 double *anode, double *perih, double *aorq, double *e,
00485                 double *aorl, double *dm, int *jstat );
00486 
00487 void slaUe2pv ( double date, double u[], double pv[], int *jstat );
00488 
00489 void slaUnpcd ( double disco, double *x, double *y );
00490 
00491 void slaV2tp ( float v[3], float v0[3], float *xi, float *eta, int *j );
00492 
00493 float slaVdv ( float va[3], float vb[3] );
00494 
00495 void slaVn ( float v[3], float uv[3], float *vm );
00496 
00497 void slaVxv ( float va[3], float vb[3], float vc[3] );
00498 
00499 void slaXy2xy ( double x1, double y1, double coeffs[6],
00500                 double *x2, double *y2 );
00501 
00502 double slaZd ( double ha, double dec, double phi );
00503 
00504 #ifdef __cplusplus
00505 }
00506 #endif
00507 
00508 #endif

Generated on Wed Dec 3 14:52:19 2003 for ATCS API by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001