Ignore:
Timestamp:
05/18/12 17:50:11 (12 years ago)
Author:
Takeshi Nakazato
Message:

New Development: No

JIRA Issue: No

Ready for Test: Yes

Interface Changes: No

What Interface Changed: Please list interface changes

Test Programs: List test programs

Put in Release Notes: Yes/No?

Module(s): Module Names change impacts.

Description: Describe your changes here...

Minor speedup that STIdxIterAcc skips to update internal storage and
just update data length and pointer when specified column has only
one value.


File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/hpc33/src/STIdxIter.h

    r2533 r2536  
    5757  void next() ;
    5858  Vector<uInt> getRows( StorageInitPolicy policy=COPY ) ;
    59 // private:
    60 //   Block<uInt> storage_m ;
    61 //   IPosition pos_m ;
    6259} ;
    6360
     
    7067  Vector<uInt> getRows( StorageInitPolicy policy=COPY ) ;
    7168private:
    72   Int isChanged( Vector<uInt> &idx ) ;
     69  Int isChanged( Block<uInt> &idx ) ;
    7370  uInt *updateStorage( Int &icol, uInt *base, uInt &v ) ;
    7471
    75   Vector<uInt> prev_m ;
    76 //   Block<uInt> storage_m ;
    77 //   IPosition pos_m ;
     72  Block<uInt> prev_m ;
    7873  Block<uInt> len_m ;
     74  Block<Bool> skip_m ;
    7975} ;
    8076
     
    9389  void next() { iter_m->next() ; } ;
    9490  vector<uInt> getRowsSTL() { return tovector( iter_m->getRows() ) ; } ;
     91  // !!!you should not use policy=TAKE_OVER since it causes problem!!!
    9592  Vector<uInt> getRows( StorageInitPolicy policy=COPY ) ;
    9693protected:
     
    107104  STIdxIterNormal() ;
    108105  STIdxIterNormal( const string &name,
    109                                 const vector<string> &cols ) ;
     106                   const vector<string> &cols ) ;
    110107  STIdxIterNormal( const CountedPtr<Scantable> &s,
    111                                 const vector<string> &cols ) ;
     108                   const vector<string> &cols ) ;
    112109  ~STIdxIterNormal() ;
    113110protected:
     
    121118  STIdxIterAcc() ;
    122119  STIdxIterAcc( const string &name,
    123                              const vector<string> &cols ) ;
     120                const vector<string> &cols ) ;
    124121  STIdxIterAcc( const CountedPtr<Scantable> &s,
    125                              const vector<string> &cols ) ;
     122                const vector<string> &cols ) ;
    126123  ~STIdxIterAcc() ;
    127124protected:
    128   void init( Table &t,
    129              const vector<string> &cols ) ;
     125  virtual void init( Table &t,
     126                     const vector<string> &cols ) ;
    130127} ;
     128
     129// class STIdxIterExAcc : public STIdxIterAcc
     130// {
     131//   STIdxIterExAcc() ;
     132//   STIdxIterExAcc( const string &name,
     133//                   const vector<string> &cols ) ;
     134//   STIdxIterExAcc( const CountedPtr<Scantable> &s,
     135//                   const vector<string> &cols ) ;
     136//   ~STIdxIterExAcc() ;
     137// protected:
     138//   virtual void init( Table &t,
     139//                      const vector<string> &cols ) ;
     140// } ;
    131141
    132142} // namespace
Note: See TracChangeset for help on using the changeset viewer.