Ignore:
Timestamp:
Dec 22, 2006, 1:10:54 AM (15 years ago)
Author:
Jari Häkkinen
Message:

Addresses #170..

File:
1 edited

Legend:

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

    r680 r714  
    5151    for (size_t i=0; i<vec_.size(); i++)
    5252      vec_[i]=i;
     53  }
     54
     55  size_t SVindex::index_first(void) const
     56  {
     57    assert(index_first_<size());
     58    return index_first_;
     59  }
     60
     61  size_t SVindex::index_second(void) const
     62  {
     63    assert(index_second_<size());
     64    return index_second_;
    5365  }
    5466
     
    7082  }
    7183
    72   void SVindex::sv_first(void)
    73   {
    74     // if already sv, do nothing
    75     if (index_first_<nof_sv())
    76       return;
    77 
    78     // swap elements
    79     if(index_second_==nof_sv_){
    80       index_second_=index_first_;
    81     }
    82     vec_[index_first_]=vec_[nof_sv_];
    83     vec_[nof_sv_]=value_first_;
    84     index_first_ = nof_sv_;
    85 
    86     nof_sv_++;
    87 
    88   }
    89 
    90   void SVindex::sv_second(void)
    91   {
    92     // if already sv, do nothing
    93     if (index_second_<nof_sv())
    94       return;
    95 
    96     // swap elements
    97     if(index_first_==nof_sv_){
    98       index_first_=index_second_;
    99     }
    100 
    101     vec_[index_second_]=vec_[nof_sv_];
    102     vec_[nof_sv_]=value_second_;
    103     index_second_=nof_sv_;
    104 
    105     nof_sv_++;
     84  size_t SVindex::nof_sv(void) const
     85  {
     86    return nof_sv_;
    10687  }
    10788
     
    143124  }
    144125
     126  size_t SVindex::size(void) const
     127  {
     128    return vec_.size();
     129  }
     130
     131  void SVindex::sv_first(void)
     132  {
     133    // if already sv, do nothing
     134    if (index_first_<nof_sv())
     135      return;
     136
     137    // swap elements
     138    if(index_second_==nof_sv_){
     139      index_second_=index_first_;
     140    }
     141    vec_[index_first_]=vec_[nof_sv_];
     142    vec_[nof_sv_]=value_first_;
     143    index_first_ = nof_sv_;
     144
     145    nof_sv_++;
     146
     147  }
     148
     149  void SVindex::sv_second(void)
     150  {
     151    // if already sv, do nothing
     152    if (index_second_<nof_sv())
     153      return;
     154
     155    // swap elements
     156    if(index_first_==nof_sv_){
     157      index_first_=index_second_;
     158    }
     159
     160    vec_[index_second_]=vec_[nof_sv_];
     161    vec_[nof_sv_]=value_second_;
     162    index_second_=nof_sv_;
     163
     164    nof_sv_++;
     165  }
     166
    145167  void SVindex::update_first(const size_t i)
    146168  {
     
    157179  }
    158180
     181  size_t SVindex::value_first(void) const
     182  {
     183    assert(value_first_<size());
     184    return value_first_;
     185  }
     186
     187  size_t SVindex::value_second(void) const
     188  {
     189    assert(value_second_<size());
     190    return value_second_;
     191  }
     192
     193  size_t SVindex::operator()(size_t i) const
     194  {
     195    assert(i<size());
     196    assert(vec_[i]<size());
     197    return vec_[i];
     198  }
     199
    159200}}} // of namespace classifier, yat, and theplu
Note: See TracChangeset for help on using the changeset viewer.