summaryrefslogtreecommitdiff
path: root/model
diff options
context:
space:
mode:
Diffstat (limited to 'model')
-rw-r--r--model/rankaccu.cpp19
-rw-r--r--model/rankaccu.h2
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