summaryrefslogtreecommitdiff
path: root/tools/fileDataProvider.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/fileDataProvider.cpp')
-rw-r--r--tools/fileDataProvider.cpp17
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)