diff options
Diffstat (limited to 'tools/fileDataProvider.cpp')
-rw-r--r-- | tools/fileDataProvider.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/tools/fileDataProvider.cpp b/tools/fileDataProvider.cpp index 9be1132..2b52dc7 100644 --- a/tools/fileDataProvider.cpp +++ b/tools/fileDataProvider.cpp @@ -42,6 +42,11 @@ void RidFileDP::readEntries() { d.clear(); fin >> fsize; LOG(INFO) << "Feature size:" << fsize; + if (!maskinit) + { + for (int i=0;i<fsize;++i) + mask.push_back(1); + } d.setfSize(fsize); while (!fin.eof()) { e = new DataEntry; @@ -52,8 +57,10 @@ void RidFileDP::readEntries() { } e->feature.resize(fsize); e->rank=-1; + double tin; for (int i = 0; i < fsize; ++i) { - fin >> e->feature(i); + fin >> tin; + e->feature(i) = tin*mask[i]; } d.addEntry(e); } @@ -124,6 +131,10 @@ int RidFileDP::getpSize() { return p.size(); }; +void RidFileDP::seed() { + gen.seed(time(NULL)); +} + void RidFileDP::shuffle(vector<DataEntry*> &dat) { DataEntry* e; @@ -131,6 +142,7 @@ void RidFileDP::shuffle(vector<DataEntry*> &dat) for (int i=0;i<sz;++i) { int pos = (int)(gen()%(sz-i)); + cout<<pos<<endl; e=dat[pos]; dat[pos] = dat[sz-i-1]; dat[sz-i-1] = e; @@ -139,7 +151,6 @@ void RidFileDP::shuffle(vector<DataEntry*> &dat) void RidFileDP::take(int n,vector<DataEntry*> &a,vector<DataEntry*> &b) { - gen.seed(time(NULL)); DataEntry *e; if (!read) readEntries(); @@ -148,9 +159,9 @@ void RidFileDP::take(int n,vector<DataEntry*> &a,vector<DataEntry*> &b) a.clear(); b.clear(); std::vector<DataEntry*> &dat = d.getData(); - shuffle(tmp); for (int i=0;i<dat.size();++i) tmp.push_back(dat[i]); + shuffle(tmp); int pos = 0; string qid; for (int i=0;i<n;++i) |