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++){