diff options
Diffstat (limited to 'model')
-rw-r--r-- | model/rankaccu.cpp | 19 | ||||
-rw-r--r-- | model/rankaccu.h | 2 |
2 files changed, 21 insertions, 0 deletions
diff --git a/model/rankaccu.cpp b/model/rankaccu.cpp index 8404abf..0f55e26 100644 --- a/model/rankaccu.cpp +++ b/model/rankaccu.cpp @@ -128,4 +128,23 @@ void rank_CMC(RidList &D,const std::vector<double> pred,CMC & cmc) { break; // account only for the first match; } } +} + +void rank_pair(RidList &D,const vector<double> pred,vector<double> &pair) +{ + int n =D.getSize(),q=D.getqSize(); + pair.clear(); + for (int i=0;i<n;i+=q) + { + int corr=0; + for (int j=0;j<q;++j) + if (D.getL(i+j)>0) { + corr = j; + break; + } + + for (int j=0;j<q;++j) + if (j!=corr) + pair.push_back(pred[i+corr]-pred[i+j]); + } }
\ No newline at end of file diff --git a/model/rankaccu.h b/model/rankaccu.h index e8da882..8cac56c 100644 --- a/model/rankaccu.h +++ b/model/rankaccu.h @@ -45,4 +45,6 @@ void rank_CMC(RidList &D,const std::vector<double> pred,CMC & cmc); void rank_accu(RidList &D,const std::vector<double> pred); +void rank_pair(RidList &D,const std::vector<double> pred,std::vector<double> &pair); + #endif //RANKSVM_RANKACCU_H |