Mercurial > hg > audiodb
changeset 207:861e4bc95547 refactoring
Move some code around a little.
author | mas01cr |
---|---|
date | Wed, 28 Nov 2007 17:22:42 +0000 |
parents | 3c7c8b84e4f3 |
children | cb126d467344 |
files | query.cpp |
diffstat | 1 files changed, 26 insertions(+), 34 deletions(-) [+] |
line wrap: on
line diff
--- a/query.cpp Wed Nov 28 17:04:09 2007 +0000 +++ b/query.cpp Wed Nov 28 17:22:42 2007 +0000 @@ -77,10 +77,6 @@ } } -// k nearest-neighbor (k-NN) search between query and target tracks -// efficient implementation based on matched filter -// assumes normed shingles -// outputs distances of retrieved shingles, max retreived = pointNN shingles per per track void audioDB::trackSequenceQueryNN(const char* dbName, const char* inFile, adb__queryResponse *adbQueryResponse){ initTables(dbName, inFile); @@ -324,19 +320,6 @@ std::cerr << track << "." << trackIndexOffset << "." << trackTable[track] << " | ";std::cerr.flush(); } - // Sum products matrix - for(j=0; j<numVectors;j++){ - D[j]=new double[trackTable[track]]; - assert(D[j]); - - } - - // Matched filter matrix - for(j=0; j<numVectors;j++){ - DD[j]=new double[trackTable[track]]; - assert(DD[j]); - } - if (trackTable[track] * sizeof(double) * dbH->dim > data_buffer_size) { if(data_buffer) { free(data_buffer); @@ -353,6 +336,19 @@ read(dbfid, data_buffer, trackTable[track] * sizeof(double) * dbH->dim); + // Sum products matrix + for(j=0; j<numVectors;j++){ + D[j]=new double[trackTable[track]]; + assert(D[j]); + + } + + // Matched filter matrix + for(j=0; j<numVectors;j++){ + DD[j]=new double[trackTable[track]]; + assert(DD[j]); + } + // Dot product for(j=0; j<numVectors; j++) for(k=0; k<trackTable[track]; k++){ @@ -575,10 +571,6 @@ delete[] meanDBdur; } -// Radius search between query and target tracks -// efficient implementation based on matched filter -// assumes normed shingles -// outputs count of retrieved shingles, max retreived = one shingle per query shingle per track void audioDB::trackSequenceQueryRad(const char* dbName, const char* inFile, adb__queryResponse *adbQueryResponse){ initTables(dbName, inFile); @@ -818,19 +810,6 @@ std::cerr << track << "." << trackIndexOffset << "." << trackTable[track] << " | ";std::cerr.flush(); } - // Sum products matrix - for(j=0; j<numVectors;j++){ - D[j]=new double[trackTable[track]]; - assert(D[j]); - - } - - // Matched filter matrix - for(j=0; j<numVectors;j++){ - DD[j]=new double[trackTable[track]]; - assert(DD[j]); - } - if (trackTable[track] * sizeof(double) * dbH->dim > data_buffer_size) { if(data_buffer) { free(data_buffer); @@ -847,6 +826,19 @@ read(dbfid, data_buffer, trackTable[track] * sizeof(double) * dbH->dim); + // Sum products matrix + for(j=0; j<numVectors;j++){ + D[j]=new double[trackTable[track]]; + assert(D[j]); + + } + + // Matched filter matrix + for(j=0; j<numVectors;j++){ + DD[j]=new double[trackTable[track]]; + assert(DD[j]); + } + // Dot product for(j=0; j<numVectors; j++) for(k=0; k<trackTable[track]; k++){