diff options
Diffstat (limited to 'tools/dataProvider.h')
-rw-r--r-- | tools/dataProvider.h | 23 |
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; }; |