Ignore:
Timestamp:
Feb 23, 2008, 11:52:43 PM (14 years ago)
Author:
Peter
Message:

using Index class instead of std::vector<size_t>

File:
1 edited

Legend:

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

    r1121 r1134  
    3838    : DataLookup2D(own), data_(&data)
    3939  {
    40     row_index_.reserve(data_->rows());
    41     for(size_t i=0;i<(*data_).rows();i++)
    42       row_index_.push_back(i);
    43     column_index_.reserve(data_->columns());
    44     for(size_t i=0;i<(*data_).columns();i++)
    45       column_index_.push_back(i);
     40    column_index_ = utility::Index(data.columns());
     41    row_index_ = utility::Index(data.rows());
    4642  }
    4743 
     
    4945
    5046  MatrixLookup::MatrixLookup(const utility::Matrix& data,
    51                              const std::vector<size_t>& row,
    52                              const std::vector<size_t>& col)
     47                             const utility::Index& row,
     48                             const utility::Index& col)
    5349    : DataLookup2D(row,col), data_(&data)
    5450  {
    55     // Checking that each row index is less than data.rows()
    56     assert(row.empty() ||
    57            *(std::max_element(row.begin(),row.end()))<data.rows());
    58     // Checking that each column index is less than data.column()
    59     assert(col.empty() ||
    60            *(std::max_element(col.begin(),col.end()))<data.columns());
    6151  }
    6252 
     
    6454
    6555  MatrixLookup::MatrixLookup(const utility::Matrix& data,
    66                              const std::vector<size_t>& index,
     56                             const utility::Index& index,
    6757                             const bool row)
    6858    : DataLookup2D(), data_(&data)
    6959  {
    7060    if (row){
    71       // Checking that each row index is less than data.rows()
    72       assert(index.empty() ||
    73              *(std::max_element(index.begin(),index.end()))<data.rows());
    7461      row_index_=index;
    75       assert(column_index_.empty());
    76       column_index_.reserve(data.columns());
    77       for (size_t i=0; i<data.columns(); i++)
    78         column_index_.push_back(i);
     62      column_index_ = utility::Index(data.columns());
    7963    }
    8064    else{
    81       // Checking that each column index is less than data.column()
    82       assert(index.empty() ||
    83              *(std::max_element(index.begin(),index.end()))<data.columns());
    8465      column_index_=index;
    85       assert(row_index_.empty());
    86       column_index_.reserve(data.rows());
    87       for (size_t i=0; i<data.rows(); i++)
    88         row_index_.push_back(i);
     66      row_index_ = utility::Index(data.rows());
    8967    }
    9068  }
     
    10381
    10482  MatrixLookup::MatrixLookup(const MatrixLookup& other,
    105                              const std::vector<size_t>& row,
    106                              const std::vector<size_t>& col)
     83                             const utility::Index& row,
     84                             const utility::Index& col)
    10785    : DataLookup2D(other,row,col), data_(other.data_)
    10886  {
     
    11593
    11694  MatrixLookup::MatrixLookup(const MatrixLookup& other,
    117                              const std::vector<size_t>& index, bool row)
     95                             const utility::Index& index, bool row)
    11896    : DataLookup2D(other,index,row), data_(other.data_)
    11997  {
     
    122100      ++(*ref_count_);
    123101
    124     // Checking that no index is out of range
    125     assert(row_index_.empty() ||
    126            *(max_element(row_index_.begin(), row_index_.end()))<data_->rows());
    127     assert(column_index_.empty() ||
    128            *(max_element(column_index_.begin(), column_index_.end()))<
    129            data_->columns());
    130102  }
    131103 
     
    146118    data_ = new utility::Matrix(is,sep);
    147119    ref_count_= new u_int(1);
    148     for(size_t i=0;i<(*data_).rows();i++)
    149       row_index_.push_back(i);
    150     for(size_t i=0;i<(*data_).columns();i++)
    151       column_index_.push_back(i);
     120    row_index_ = utility::Index(data_->rows());
     121    column_index_ = utility::Index(data_->columns());
    152122  }
    153123
     
    203173
    204174  const MatrixLookup*
    205   MatrixLookup::selected(const std::vector<size_t>& i) const
     175  MatrixLookup::selected(const utility::Index& i) const
    206176  {
    207177    return new MatrixLookup(*this,i, true);
     
    211181
    212182  const MatrixLookup*
    213   MatrixLookup::training_data(const std::vector<size_t>& i) const
     183  MatrixLookup::training_data(const utility::Index& i) const
    214184  {
    215185    return new MatrixLookup(*this,i, false);
     
    219189
    220190  const MatrixLookup*
    221   MatrixLookup::validation_data(const std::vector<size_t>& train,
    222                                 const std::vector<size_t>& val) const
     191  MatrixLookup::validation_data(const utility::Index& train,
     192                                const utility::Index& val) const
    223193  {
    224194    return new MatrixLookup(*this,val, false);
Note: See TracChangeset for help on using the changeset viewer.