summaryrefslogtreecommitdiff
path: root/tools/dataProvider.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/dataProvider.h')
-rw-r--r--tools/dataProvider.h23
1 files changed, 20 insertions, 3 deletions
diff --git a/tools/dataProvider.h b/tools/dataProvider.h
index d311149..bff1f44 100644
--- a/tools/dataProvider.h
+++ b/tools/dataProvider.h
@@ -4,6 +4,7 @@
#include<Eigen/Dense>
#include "../tools/easylogging++.h"
#include<vector>
+#include<list>
// TODO decide how to construct training data
// One possible way for training data:
@@ -19,6 +20,23 @@ typedef Eigen::MatrixXd DataSet;
typedef Eigen::VectorXd Labels;
+typedef struct DataEntry{
+ int qid;
+ double rank;
+ Eigen::VectorXd feature;
+} DataEntry;
+
+class DataList{
+private:
+ int n;
+ std::list<DataEntry> data;
+public:
+ int getSize(){return data.size();}
+ void addEntry(DataEntry d){data.push_front(d);}
+ void setfSize(int fsize){n=fsize;}
+ int getfSize(){return n;}
+};
+
class DataProvider //Virtual base class for data input
{
protected:
@@ -34,10 +52,9 @@ public:
return attrSize;
}
- bool EOFile(){return eof;};
+ bool EOFile(){return eof;}
- virtual int getDataSet(DataSet &out) = 0;
- virtual int getLabel(Labels &out) = 0;
+ virtual int getDataSet(DataList &out) = 0;
virtual int open()=0;
virtual int close()=0;
};