Changeset 2601 in Sophya


Ignore:
Timestamp:
Aug 16, 2004, 6:14:00 PM (21 years ago)
Author:
cmv
Message:

add routine arguments by reference cmv 16/08/04

Location:
trunk/SophyaExt/XAstroPack
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaExt/XAstroPack/tstxastro.cc

    r2322 r2601  
    2424  sscanf(arg[2],"%lf,%c",&val0,&unite);
    2525
    26   val = val0; InRange(&val,range);
     26  val = val0; InRange(val,range);
    2727  printf("InRange(%.9f, %.2f) = %.9f\n",val0,range,val);
    28   val = val0; InRange(&val,range,vmax);
     28  val = val0; InRange(val,range,vmax);
    2929  printf("InRange(%.9f, %.2f, %.2f) = %.9f\n",val0,range,vmax,val);
    3030
     
    3333    else if(unite=='d') un = TypUniteD;
    3434      else un = TypUniteR;
    35   val = val0; InRangeCoLat(&val,un);
     35  val = val0; InRangeCoLat(val,un);
    3636  printf("InRangeCoLat(%.9f %c) = %.9f\n",val0,unite,val);
    37   val = val0; InRangeLat(&val,un);
     37  val = val0; InRangeLat(val,un);
    3838  printf("InRangeLat(%.9f %c) = %.9f\n",val0,unite,val);
    3939 
     
    106106
    107107  double coord1 = coord1_ini, coord2 = coord2_ini;
    108   unsigned long newtyp = CoordConvertToStd(typ,&coord1,&coord2);
     108  unsigned long newtyp = CoordConvertToStd(typ,coord1,coord2);
    109109  string newstr = DecodeTypAstro(newtyp);
    110110
  • trunk/SophyaExt/XAstroPack/xastropack.h

    r2552 r2601  
    8181// ------------------- Utilitaires -------------------
    8282unsigned long CoordConvertToStd(unsigned long typ,double* coord1,double* coord2);
     83inline unsigned long CoordConvertToStd(unsigned long typ,double &coord1,double &coord2)
     84       {return CoordConvertToStd(typ,&coord1,&coord2);}
     85
    8386unsigned long GetCoordUnit(int coordnum,unsigned long typ);
     87
    8488unsigned long DecodeTypAstro(const char *ctype);
    8589inline unsigned long DecodeTypAstro(const string stype)
    86                 {return DecodeTypAstro(stype.c_str());}
     90       {return DecodeTypAstro(stype.c_str());}
    8791string        DecodeTypAstro(unsigned long typ);
     92
    8893void ToCoLat(double* val,unsigned long typ);
     94inline void ToCoLat(double &val,unsigned long typ)
     95       {ToCoLat(&val,typ);}
     96
    8997void InRangeLat(double* val,unsigned long typ);
     98inline void InRangeLat(double &val,unsigned long typ)
     99       {InRangeLat(&val,typ);}
     100
    90101void InRangeCoLat(double* val,unsigned long typ);
     102inline void InRangeCoLat(double &val,unsigned long typ)
     103       {InRangeCoLat(&val,typ);}
    91104
    92105/*!
     
    105118inline void InRange(double *val,double range)
    106119             {*val-=range*floor(*val/range);}
     120inline void InRange(double &val,double range)
     121             {val-=range*floor(val/range);}
     122
    107123inline void InRange(double *val,double range,double vmax)
    108124         {InRange(val,range); if(*val>vmax) *val-=range;}
     125inline void InRange(double &val,double range,double vmax)
     126         {InRange(val,range); if(val>vmax) val-=range;}
    109127
    110128// ------------------- Gestions des temps -------------------
     
    120138
    121139double MJDfrDate(double dy,int mn,int yr);
     140
    122141void DatefrMJD(double mjd,double *dy,int *mn,int *yr);
     142inline void DatefrMJD(double mjd,double &dy,int &mn,int &yr)
     143       {DatefrMJD(mjd,&dy,&mn,&yr);}
     144
    123145double YearfrMJD(double mjd);
     146
    124147double MJDfrYear(double yr);
     148
    125149void YDfrMJD(double mjd,double *dy,int *yr);
     150inline void YDfrMJD(double mjd,double &dy,int &yr)
     151       {YDfrMJD(mjd,&dy,&yr);}
     152
    126153int IsLeapYear(int y);
     154
    127155int DayOrder(double mjd,int *dow);
     156inline int DayOrder(double mjd,int &dow)
     157       {return DayOrder(mjd,&dow);}
     158
    128159int DaysInMonth(double mjd);
    129160double MJDat0hFrMJD(double mjd);
     
    142173double GST0(double mjd0);
    143174double LSTfrMJD(double mjd,double geolng);
     175
    144176void HMSfrHdec(double hd,int *h,int *mn,double *s);
     177inline void HMSfrHdec(double hd,int &h,int &mn,double &s)
     178       {HMSfrHdec(hd,&h,&mn,&s);}
     179
    145180double HdecfrHMS(int h,int mn,double s);
    146181string ToStringHMS(int h,int mn,double s);
     
    149184// ------------------- Calculs Divers -------------------
    150185void Precess(double mjd1,double mjd2,double ra1,double dec1,double *ra2,double *dec2);
     186inline void Precess(double mjd1,double mjd2,double ra1,double dec1,double &ra2,double &dec2)
     187       {Precess(mjd1,mjd2,ra1,dec1,&ra2,&dec2);}
     188
    151189inline void PrecessInPlace(double mjd1,double mjd2,double* ra,double* dec) {
    152190  double ra1=*ra, dec1=*dec;
    153191  Precess(mjd1,mjd2,ra1,dec1,ra,dec);
    154192}
     193inline void PrecessInPlace(double mjd1,double mjd2,double &ra,double &dec) {
     194  double ra1=ra, dec1=dec;
     195  Precess(mjd1,mjd2,ra1,dec1,ra,dec);
     196}
     197
    155198double AirmassfrAlt(double alt);
    156199double HelioCorr(double jd,double ra,double dec);
     
    177220
    178221void EqtoGal(double mjd,double ra,double dec,double *glng,double *glat);
     222inline void EqtoGal(double mjd,double ra,double dec,double &glng,double &glat)
     223       {EqtoGal(mjd,ra,dec,&glng,&glat);}
     224
     225
    179226void GaltoEq(double mjd,double glng,double glat,double *ra,double *dec);
     227inline void GaltoEq(double mjd,double glng,double glat,double &ra,double &dec)
     228       {GaltoEq( mjd, glng, glat, &ra, &dec);}
     229
    180230void EqHtoHor(double geolat,double ha,double dec,double *az,double *alt);
     231inline void EqHtoHor(double geolat,double ha,double dec,double &az,double &alt)
     232       {EqHtoHor( geolat, ha, dec, &az, &alt);}
     233
    181234void HortoEqH(double geolat,double az,double alt,double *ha,double *dec);
     235inline void HortoEqH(double geolat,double az,double alt,double &ha,double &dec)
     236       {HortoEqH( geolat, az, alt, &ha, &dec);}
     237
    182238void EqtoHor(double geolat,double lst,double ra,double dec,double *az,double *alt);
     239inline void EqtoHor(double geolat,double lst,double ra,double dec,double &az,double &alt)
     240       {EqtoHor( geolat, lst, ra, dec, &az, &alt);}
     241
    183242void HortoEq(double geolat,double lst,double az,double alt,double *ra,double *dec);
     243inline void HortoEq(double geolat,double lst,double az,double alt,double &ra,double &dec)
     244       {HortoEq( geolat, lst, az, alt, &ra, &dec);}
     245
    184246void EqtoEcl(double mjd,double ra,double dec,double *eclng,double *eclat);
     247inline void EqtoEcl(double mjd,double ra,double dec,double &eclng,double &eclat)
     248       {EqtoEcl( mjd, ra, dec, &eclng, &eclat);}
     249
    185250void EcltoEq(double mjd,double eclng,double eclat,double *ra,double *dec);
     251inline void EcltoEq(double mjd,double eclng,double eclat,double &ra,double &dec)
     252       {EcltoEq( mjd, eclng, eclat, &ra, &dec);}
    186253
    187254// ------------------- Positions des astres -------------------
    188255void SunPos(double mjd,double *eclsn,double *ecbsn,double *rsn);
     256inline void SunPos(double mjd,double &eclsn,double &ecbsn,double &rsn)
     257       {SunPos( mjd, &eclsn, &ecbsn, &rsn);}
     258
    189259void MoonPos(double mjd,double *lmn,double *bmn,double *rho);
     260inline void MoonPos(double mjd,double &lmn,double &bmn,double &rho)
     261       {MoonPos( mjd, &lmn, &bmn, &rho);}
     262
    190263void PlanetPos(double mjd,PLCode numplan,double *sunecl,double *sunecb,double *sundist
    191264               ,double *geodist,double *geoecl,double *geoecb
    192265               ,double *diamang,double *mag);
     266inline void PlanetPos(double mjd,PLCode numplan,double &sunecl,double &sunecb,double &sundist
     267               ,double &geodist,double &geoecl,double &geoecb
     268               ,double &diamang,double &mag)
     269       {PlanetPos(mjd,numplan,&sunecl,&sunecb,&sundist,&geodist,&geoecl,&geoecb,&diamang,&mag);}
     270
    193271/*! \ingroup XAstroPack
    194272\brief Same as PlanetPos above with less arguments
     
    200278 PlanetPos(mjd,numplan,&sunecl,&sunecb,&sundist,geodist,geoecl,geoecb,diamang,&mag);
    201279}
     280inline void PlanetPos(double mjd,PLCode numplan,double &geoecl,double &geoecb
     281                      ,double &geodist,double &diamang)
     282{
     283 double sunecl,sunecb,sundist,mag;
     284 PlanetPos(mjd,numplan,sunecl,sunecb,sundist,geodist,geoecl,geoecb,diamang,mag);
     285}
    202286
    203287/*! \ingroup XAstroPack
     
    208292  PlanetPos(mjd,JUPITER,ecl,ecb,geodist,diamang);
    209293}
     294inline void JupiterPos(double mjd,double &ecl,double &ecb,double &geodist,double &diamang)
     295{
     296  PlanetPos(mjd,JUPITER,ecl,ecb,geodist,diamang);
     297}
    210298
    211299/*! \ingroup XAstroPack
     
    216304  PlanetPos(mjd,SATURN,ecl,ecb,geodist,diamang);
    217305}
     306inline void SaturnPos(double mjd,double &ecl,double &ecb,double &geodist,double &diamang)
     307{
     308  PlanetPos(mjd,SATURN,ecl,ecb,geodist,diamang);
     309}
    218310
    219311#endif
Note: See TracChangeset for help on using the changeset viewer.