Changeset 846 in Sophya for trunk/SophyaLib/HiStats/xntuple.cc


Ignore:
Timestamp:
Apr 10, 2000, 10:36:28 AM (25 years ago)
Author:
ansari
Message:

ajout SetVal pour I/O fichiers fits

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/HiStats/xntuple.cc

    r835 r846  
    927927  }
    928928}
     929////////////// methodes supplementaires pour leserveur de fichiers fits//////
     930//
     931// (protected)
     932//
     933void XNTuple::SetDVal(int i, int k, double v) 
     934{
     935    if( i<0 || i>=mNEnt || k<0 || k>=mD )
     936        THROW(rangeCheckErr) ;
     937   
     938    // Bloc ?
     939    int blk = (int)(i/mBlkSz) ;
     940    int off = i%mBlkSz ;
     941   
     942    // bloc swappe ?
     943    if( ptr[blk]->sw ) { get_blk(blk) ; swap() ; }
     944    ptr[blk]->ddata[off*mD+k]=v ;
     945}
     946void XNTuple::SetFVal(int i, int k, float v)
     947{
     948    if( i<0 || i>=mNEnt || k<mD || k>=(mD+mF) )
     949        THROW(rangeCheckErr) ;
     950    k -= mD ;
     951   
     952    // Bloc ?
     953    int blk = (int)(i/mBlkSz) ;
     954    int off = i%mBlkSz ;
     955   
     956    // bloc swappe ?
     957    if( ptr[blk]->sw ) { get_blk(blk) ; swap() ; }
     958    ptr[blk]->fdata[off*mF+k]=v ;
     959}
     960void  XNTuple::SetIVal(int i, int k, int v) 
     961{
     962    if( i<0 || i>=mNEnt || k<(mD+mF) || k>=(mD+mF+mI) )
     963        THROW(rangeCheckErr) ;
     964    k -= (mD+mF) ; 
     965
     966    // Bloc ?
     967    int blk = (int)(i/mBlkSz) ;
     968    int off = i%mBlkSz ;
     969   
     970    // bloc swappe ?
     971    if( ptr[blk]->sw ) { get_blk(blk) ; swap() ; }
     972
     973    ptr[blk]->idata[off*mI+k]=v ;
     974}
     975void  XNTuple::SetSVal(int i, int k, char* v) 
     976{
     977    if( i<0 || i>=mNEnt || k<(mD+mF+mI) || k>=(mD+mF+mI+mS) )
     978        THROW(rangeCheckErr) ;
     979    k -= (mD+mF+mI) ;
     980   
     981    // Bloc ?
     982    int blk = (int)(i/mBlkSz) ;
     983    int off = i%mBlkSz ;
     984   
     985    // bloc swappe ?
     986    if( ptr[blk]->sw ) { get_blk(blk) ; swap() ; }
     987   
     988    // copie de la chaine
     989        strncpy(ptr[blk]->sdata + (off*mS+k)*(mStrSz+1),v, mStrSz+1) ;   
     990}
     991
     992
     993
     994
     995
    929996
    930997#ifdef __CXX_PRAGMA_TEMPLATES__
Note: See TracChangeset for help on using the changeset viewer.