85 nbZero =
new int[signatureLength];
86 int totalSignatureLength=0;
88 is.open(dbFileName.c_str(), std::ifstream::binary);
91 cerr <<
"Warning: Error opening file " << dbFileName << endl;
93 is.seekg(0,ios_base::beg);
94 is.read((
char*)&totalSignatureLength,
sizeof(totalSignatureLength));
95 is.read((
char*)&nSignatures,
sizeof(nSignatures));
96 cerr <<
"Sig Length : " << totalSignatureLength << endl;
97 cerr <<
"Nb signatures : " << nSignatures << endl;
99 signatureLength = totalSignatureLength;
101 for (
int sigIndex = 0; sigIndex < nSignatures; sigIndex++) {
105 is.read((
char*)signatures[sigIndex].getData(), totalSignatureLength/8);
110 cerr <<
"Test loadHAshed db : ";
119 vector<int> sortBuffer ( nSignatures );
120 vector<int> *result =
new vector<int> ( beam );
121 for (
int i = 0; i < nSignatures; i++ )
123 if (signatureLength > 0)
124 cerr <<
"before sort " << *sortBuffer.begin() <<
" " ;
127 nth_element ( sortBuffer.begin(),
128 sortBuffer.begin() + beam,
130 (comparePermutedSignatures ( permutations, *
this ) ) );
132 cerr <<
"after sort " << *sortBuffer.begin() <<
" " ;
135 copy ( sortBuffer.begin(), sortBuffer.begin() + beam, (*result).begin() );
149 for (
int sig = 0; sig < nSignatures; sig++)
150 for (
int s = 0; s < signatureLength; s++)
151 if (!signatures[sig].getBit(s))
153 std::ostringstream oss;
154 oss <<
"Sigs zeroes/ones count : " << std::endl;
155 for (
int s = 0; s < signatureLength; s++)
156 oss << nbZero[s] <<
"/" << nSignatures - nbZero[s] <<
",";
158 std::cerr << oss.str();