# HG changeset patch # User mas01cr # Date 1190296756 0 # Node ID 3e80b146c07c1992d4378c531336504df956de76 # Parent cd851d1fbc624385f606750596130337548a361b Decorate if(verbosity>...) clauses with braces, for avoidance of doubt. (Should save a few fflush()es per run :) diff -r cd851d1fbc62 -r 3e80b146c07c audioDB.cpp --- a/audioDB.cpp Thu Sep 20 13:54:28 2007 +0000 +++ b/audioDB.cpp Thu Sep 20 13:59:16 2007 +0000 @@ -237,8 +237,9 @@ exit(1); } else - if(verbosity>3) + if(verbosity>3) { cerr << "Setting radius to " << radius << endl; + } } if(args_info.SERVER_given){ @@ -483,8 +484,9 @@ error("write error", "", "write"); // mmap the output file - if(verbosity) + if(verbosity) { cerr << "header size:" << O2_HEADERSIZE << endl; + } if ((db = (char*) mmap(0, O2_DEFAULTDBSIZE, PROT_READ | PROT_WRITE, MAP_SHARED, dbfid, 0)) == (caddr_t) -1) error("mmap error for creating database", "", "mmap"); @@ -500,9 +502,9 @@ dbH->flags=0; //O2_FLAG_L2NORM; memcpy (db, dbH, O2_HEADERSIZE); - if(verbosity) + if(verbosity) { cerr << COM_CREATE << " " << dbName << endl; - + } } @@ -597,16 +599,18 @@ } if(alreadyInserted){ - if(verbosity) + if(verbosity) { cerr << "Warning: key already exists in database, ignoring: " <dim); if(!numVectors){ - if(verbosity) + if(verbosity) { cerr << "Warning: ignoring zero-length feature vector file:" << key << endl; + } // CLEAN UP munmap(indata,statbuf.st_size); munmap(db,O2_DEFAULTDBSIZE); @@ -646,9 +650,10 @@ // Report status status(dbName); - if(verbosity) + if(verbosity) { cerr << COM_INSERT << " " << dbName << " " << numVectors << " vectors " << (statbuf.st_size-sizeof(int)) << " bytes." << endl; + } // CLEAN UP munmap(indata,statbuf.st_size); @@ -701,8 +706,9 @@ cerr << "expected " << numVectors << " found " << numtimes << endl; error("Times file is incorrect length for features file",inFile); } - if(verbosity>2) + if(verbosity>2) { cerr << "numtimes: " << numtimes << endl; + } } } } @@ -816,16 +822,18 @@ } if(alreadyInserted){ - if(verbosity) + if(verbosity) { cerr << "Warning: key already exists in database:" << thisKey << endl; + } } else{ // Make a track index table of features to file indexes unsigned numVectors = (statbuf.st_size-sizeof(int))/(sizeof(double)*dbH->dim); if(!numVectors){ - if(verbosity) + if(verbosity) { cerr << "Warning: ignoring zero-length feature vector file:" << thisKey << endl; + } } else{ if(usingTimes){ @@ -880,9 +888,10 @@ MAP_SHARED, dbfid, 0)) == (caddr_t) -1) error("mmap error for creating database", "", "mmap"); - if(verbosity) + if(verbosity) { cerr << COM_BATCHINSERT << " " << dbName << " " << totalVectors << " vectors " << totalVectors*dbH->dim*sizeof(double) << " bytes." << endl; + } // Report status status(dbName); @@ -1083,8 +1092,9 @@ if(queryPoint>numVectors-1) error("queryPoint > numVectors in query"); else{ - if(verbosity>1) + if(verbosity>1) { cerr << "query point: " << queryPoint << endl; cerr.flush(); + } query=query+queryPoint*dbH->dim; numVectors=queryPoint+1; j=1; @@ -1129,8 +1139,9 @@ } gettimeofday(&tv2, NULL); - if(verbosity>1) + if(verbosity>1) { cerr << endl << " elapsed time:" << ( tv2.tv_sec*1000 + tv2.tv_usec/1000 ) - ( tv1.tv_sec*1000+tv1.tv_usec/1000 ) << " msec" << endl; + } if(adbQueryResult==0){ // Output answer @@ -1271,8 +1282,9 @@ if(queryPoint>numVectors-1) error("queryPoint > numVectors in query"); else{ - if(verbosity>1) + if(verbosity>1) { cerr << "query point: " << queryPoint << endl; cerr.flush(); + } query=query+queryPoint*dbH->dim; numVectors=queryPoint+1; } @@ -1301,8 +1313,9 @@ } trackOffset=trackOffsetTable[track]; // numDoubles offset trackIndexOffset=trackOffset/dbH->dim; // numVectors offset - if(verbosity>7) + if(verbosity>7) { cerr << track << "." << trackOffset/(dbH->dim) << "." << trackTable[track] << " | ";cerr.flush(); + } if(dbH->flags & O2_FLAG_L2NORM) usingQueryPoint?query=queryCopy+queryPoint*dbH->dim:query=queryCopy; @@ -1384,13 +1397,15 @@ } // tracks gettimeofday(&tv2, NULL); - if(verbosity>1) + if(verbosity>1) { cerr << endl << "processed tracks :" << processedTracks << " elapsed time:" << ( tv2.tv_sec*1000 + tv2.tv_usec/1000 ) - ( tv1.tv_sec*1000+tv1.tv_usec/1000 ) << " msec" << endl; + } if(adbQueryResult==0){ - if(verbosity>1) + if(verbosity>1) { cerr<1) + if(verbosity>1) { cerr << "performing norms ... "; cerr.flush(); + } unsigned dbVectors = dbH->length/(sizeof(double)*dbH->dim); // Make a copy of the query @@ -1527,16 +1543,17 @@ } ps = sNorm + trackTable[i]; } - if(verbosity>1) + if(verbosity>1) { cerr << "processedTracks: " << processedTracks << endl; - + } SILENCE_THRESH/=processedTracks; USE_THRESH=1; // Turn thresholding on DIFF_THRESH=SILENCE_THRESH; // mean shingle power SILENCE_THRESH/=5; // 20% of the mean shingle power is SILENCE - if(verbosity>4) + if(verbosity>4) { cerr << "silence thresh: " << SILENCE_THRESH; + } w=sequenceLength-1; i=1; tmp1=*qNorm; @@ -1559,12 +1576,13 @@ } qMeanL2 /= numVectors-sequenceLength+1; - if(verbosity>1) - cerr << "done." << endl; + if(verbosity>1) { + cerr << "done." << endl; + } - - if(verbosity>1) + if(verbosity>1) { cerr << "matching tracks..." << endl; + } assert(pointNN>0 && pointNN<=O2_MAXNN); assert(trackNN>0 && trackNN<=O2_MAXNN); @@ -1619,8 +1637,9 @@ meanQdur+=timesdata[k]; } meanQdur/=k; - if(verbosity>1) + if(verbosity>1) { cerr << "mean query file duration: " << meanQdur << endl; + } meanDBdur = new double[dbH->numFiles]; assert(meanDBdur); for(k=0; knumFiles; k++){ @@ -1635,8 +1654,9 @@ if(queryPoint>numVectors || queryPoint>numVectors-wL+1) error("queryPoint > numVectors-wL+1 in query"); else{ - if(verbosity>1) + if(verbosity>1) { cerr << "query point: " << queryPoint << endl; cerr.flush(); + } query=query+queryPoint*dbH->dim; qNorm=qNorm+queryPoint; numVectors=wL; @@ -1694,8 +1714,9 @@ if(sequenceLength<=trackTable[track]){ // test for short sequences - if(verbosity>7) + if(verbosity>7) { cerr << track << "." << trackIndexOffset << "." << trackTable[track] << " | ";cerr.flush(); + } // Sum products matrix for(j=0; j3 && usingTimes){ + if(verbosity>3 && usingTimes) { cerr << "meanQdur=" << meanQdur << " meanDBdur=" << meanDBdur[track] << endl; cerr.flush(); } @@ -1759,7 +1780,7 @@ (usingTimes && fabs(meanDBdur[track]-meanQdur)3 && usingTimes){ + if(verbosity>3 && usingTimes) { cerr << "within duration tolerance." << endl; cerr.flush(); } @@ -1768,8 +1789,9 @@ for(j=0;j<=numVectors-wL;j+=HOP_SIZE) for(k=0;k<=trackTable[track]-wL;k+=HOP_SIZE){ thisDist=2-(2/(qNorm[j]*sNorm[trackIndexOffset+k]))*DD[j][k]; - if(verbosity>10) + if(verbosity>10) { cerr << thisDist << " " << qNorm[j] << " " << sNorm[trackIndexOffset+k] << endl; + } // Gather chi^2 statistics if(thisDist3) + if(verbosity>3) { cerr << fileTable+track*O2_FILETABLESIZE << " " << thisDist << endl; + } // All the track stuff goes here @@ -1871,15 +1894,16 @@ } gettimeofday(&tv2,NULL); - if(verbosity>1){ + if(verbosity>1) { cerr << endl << "processed tracks :" << processedTracks << " matched tracks: " << successfulTracks << " elapsed time:" << ( tv2.tv_sec*1000 + tv2.tv_usec/1000 ) - ( tv1.tv_sec*1000+tv1.tv_usec/1000 ) << " msec" << endl; cerr << "sampleCount: " << sampleCount << " sampleSum: " << sampleSum << " logSampleSum: " << logSampleSum << " minSample: " << minSample << " maxSample: " << maxSample << endl; } if(adbQueryResult==0){ - if(verbosity>1) + if(verbosity>1) { cerr<flags & O2_FLAG_L2NORM) ) error("Database must be L2 normed for sequence query","use -l2norm"); - if(verbosity>1) + if(verbosity>1) { cerr << "performing norms ... "; cerr.flush(); + } unsigned dbVectors = dbH->length/(sizeof(double)*dbH->dim); // Make a copy of the query @@ -2017,16 +2042,17 @@ } ps = sNorm + trackTable[i]; } - if(verbosity>1) + if(verbosity>1) { cerr << "processedTracks: " << processedTracks << endl; - + } SILENCE_THRESH/=processedTracks; USE_THRESH=1; // Turn thresholding on DIFF_THRESH=SILENCE_THRESH; // mean shingle power SILENCE_THRESH/=5; // 20% of the mean shingle power is SILENCE - if(verbosity>4) + if(verbosity>4) { cerr << "silence thresh: " << SILENCE_THRESH; + } w=sequenceLength-1; i=1; tmp1=*qNorm; @@ -2049,12 +2075,13 @@ } qMeanL2 /= numVectors-sequenceLength+1; - if(verbosity>1) + if(verbosity>1) { cerr << "done." << endl; + } - - if(verbosity>1) + if(verbosity>1) { cerr << "matching tracks..." << endl; + } assert(pointNN>0 && pointNN<=O2_MAXNN); assert(trackNN>0 && trackNN<=O2_MAXNN); @@ -2109,8 +2136,9 @@ meanQdur+=timesdata[k]; } meanQdur/=k; - if(verbosity>1) + if(verbosity>1) { cerr << "mean query file duration: " << meanQdur << endl; + } meanDBdur = new double[dbH->numFiles]; assert(meanDBdur); for(k=0; knumFiles; k++){ @@ -2125,8 +2153,9 @@ if(queryPoint>numVectors || queryPoint>numVectors-wL+1) error("queryPoint > numVectors-wL+1 in query"); else{ - if(verbosity>1) + if(verbosity>1) { cerr << "query point: " << queryPoint << endl; cerr.flush(); + } query=query+queryPoint*dbH->dim; qNorm=qNorm+queryPoint; numVectors=wL; @@ -2184,9 +2213,10 @@ if(sequenceLength7) + if(verbosity>7) { cerr << track << "." << trackIndexOffset << "." << trackTable[track] << " | ";cerr.flush(); - + } + // Sum products matrix for(j=0; j3 && usingTimes){ + if(verbosity>3 && usingTimes) { cerr << "meanQdur=" << meanQdur << " meanDBdur=" << meanDBdur[track] << endl; cerr.flush(); } @@ -2249,7 +2279,7 @@ (usingTimes && fabs(meanDBdur[track]-meanQdur)3 && usingTimes){ + if(verbosity>3 && usingTimes) { cerr << "within duration tolerance." << endl; cerr.flush(); } @@ -2258,8 +2288,9 @@ for(j=0;j10) + if(verbosity>10) { cerr << thisDist << " " << qNorm[j] << " " << sNorm[trackIndexOffset+k] << endl; + } // Gather chi^2 statistics if(thisDist3) + if(verbosity>3) { cerr << fileTable+track*O2_FILETABLESIZE << " " << thisDist << endl; + } // All the track stuff goes here n=trackNN; @@ -2338,7 +2370,7 @@ } gettimeofday(&tv2,NULL); - if(verbosity>1){ + if(verbosity>1) { cerr << endl << "processed tracks :" << processedTracks << " matched tracks: " << successfulTracks << " elapsed time:" << ( tv2.tv_sec*1000 + tv2.tv_usec/1000 ) - ( tv1.tv_sec*1000+tv1.tv_usec/1000 ) << " msec" << endl; cerr << "sampleCount: " << sampleCount << " sampleSum: " << sampleSum << " logSampleSum: " << logSampleSum @@ -2346,8 +2378,9 @@ } if(adbQueryResult==0){ - if(verbosity>1) + if(verbosity>1) { cerr<2) + if(verbosity>2) { cerr << "norming " << n << " vectors...";cerr.flush(); + } while(n--){ p=X; L2=0.0; @@ -2418,8 +2452,9 @@ */ X+=dim; } - if(verbosity>2) + if(verbosity>2) { cerr << "done..." << endl; + } } // Unit norm block of features @@ -2433,8 +2468,9 @@ if( !append && (dbH->flags & O2_FLAG_L2NORM) ) error("Database is already L2 normed", "automatic norm on insert is enabled"); - if(verbosity>2) + if(verbosity>2) { cerr << "norming " << n << " vectors...";cerr.flush(); + } double* l2buf = new double[n]; double* l2ptr = l2buf; @@ -2468,8 +2504,9 @@ memcpy(l2normTable+offset, l2buf, n*sizeof(double)); if(l2buf) delete[] l2buf; - if(verbosity>2) + if(verbosity>2) { cerr << "done..." << endl; + } }