Changeset 1528


Ignore:
Timestamp:
Sep 24, 2008, 5:46:28 PM (15 years ago)
Author:
Peter
Message:

refs #444 - started using boost::permutation_iterator for vector iterators from MatrixLookup? and also removed stride layer for const_iterator (stride was always 1).

Location:
trunk/yat
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/yat/classifier/MatrixLookup.cc

    r1487 r1528  
    150150  MatrixLookup::const_iterator MatrixLookup::begin(void) const
    151151  {
    152     return const_iterator(const_iterator::iterator_type(*this, 0, 0), 1);
     152    return const_iterator(*this, 0, 0);
    153153  }
    154154
     
    156156  MatrixLookup::const_column_iterator MatrixLookup::begin_column(size_t i) const
    157157  {
    158     return const_column_iterator(const_column_iterator::iterator_type(*this, 0,
    159                                                                       i),
    160                                  columns());
     158    return const_column_iterator(data_->begin_column(column_index_[i]),
     159                                 row_index_.begin());
    161160  }
    162161
     
    164163  MatrixLookup::const_row_iterator MatrixLookup::begin_row(size_t i) const
    165164  {
    166     return const_row_iterator(const_row_iterator::iterator_type(*this,i,0), 1);
     165    return const_row_iterator(data_->begin_row(row_index_[i]),
     166                              column_index_.begin());
    167167  }
    168168
     
    176176  MatrixLookup::const_iterator MatrixLookup::end(void) const
    177177  {
    178     return const_iterator(const_iterator::iterator_type(*this, rows(), 0), 1);
     178    return const_iterator(*this, rows(), 0);
    179179  }
    180180
     
    182182  MatrixLookup::const_column_iterator MatrixLookup::end_column(size_t i) const
    183183  {
    184     return
    185       const_column_iterator(const_column_iterator::iterator_type(*this,rows(),
    186                                                                       i),
    187                             columns());
     184    return const_column_iterator(data_->end_column(column_index_[i]),
     185                                 row_index_.end());
    188186  }
    189187
     
    191189  MatrixLookup::const_row_iterator MatrixLookup::end_row(size_t i) const
    192190  {
    193     return const_row_iterator(const_row_iterator::iterator_type(*this,i+1,0),1);
     191    return const_row_iterator(data_->end_row(row_index_[i]),
     192                                 column_index_.end());
    194193  }
    195194
  • trunk/yat/classifier/MatrixLookup.h

    r1487 r1528  
    2929#include "yat/utility/Index.h"
    3030#include "yat/utility/iterator_traits.h"
     31#include "yat/utility/Matrix.h"
    3132#include "yat/utility/SmartPtr.h"
    32 #include "yat/utility/StrideIterator.h"
     33
     34#include <boost/iterator/permutation_iterator.hpp>
    3335
    3436#include <iostream>
     
    3739namespace theplu {
    3840namespace yat {
    39 
    40 namespace utility {
    41   class Matrix;
    42 }
    43 
    4441namespace classifier { 
    4542
     
    7673  public:
    7774    /// 'Read Only' iterator
    78     typedef utility::StrideIterator<
    79     utility::Container2DIterator<const MatrixLookup, const double, void,
    80                                  const double> >
     75    typedef utility::Container2DIterator<const MatrixLookup, const double,
     76                                         void, const double>
    8177    const_iterator;
    8278
     
    8480       'Read only' iterator used to iterate over a column
    8581     */
    86     typedef const_iterator const_column_iterator;
     82    typedef boost::permutation_iterator<utility::Matrix::const_column_iterator,
     83                                        utility::Index::const_iterator>
     84    const_column_iterator;
    8785
    8886    /**
    8987       'Read only' iterator used to iterate over a row
    9088     */
    91     typedef const_iterator const_row_iterator;
     89    typedef const_column_iterator const_row_iterator;
    9290
    9391    ///
  • trunk/yat/utility/Index.cc

    r1487 r1528  
    6565
    6666
     67  Index::const_iterator Index::begin(void) const
     68  {
     69    return index_->begin();
     70  }
     71
     72
     73  Index::const_iterator Index::end(void) const
     74  {
     75    return index_->end();
     76  }
     77
     78
    6779  size_t Index::size(void) const
    6880  {
  • trunk/yat/utility/Index.h

    r1487 r1528  
    4040  public:
    4141    /**
     42       Read only iterator
     43
     44       \since New in yat 0.5
     45     */
     46    typedef std::vector<size_t>::const_iterator const_iterator;
     47
     48    /**
    4249       Creates an empty Index
    4350     */
     
    6875
    6976    /**
     77       \return iterator pointing to first element of Index
     78
     79       \since New in yat 0.5
     80     */
     81    const_iterator begin(void) const;
     82
     83    /**
     84       \return iterator pointing to element one passed last Index
     85
     86       \since New in yat 0.5
     87     */
     88    const_iterator end(void) const;
     89
     90    /**
    7091       \brief access operator
    7192    */
Note: See TracChangeset for help on using the changeset viewer.