Mercurial > hg > audiodb
changeset 70:c3f7ee73bdde
Fix various off-by-one errors in the radius search (makes tests/0010
pass)
author | mas01cr |
---|---|
date | Wed, 26 Sep 2007 15:14:54 +0000 |
parents | 8ef2efe604c9 |
children | 749cc091d99f |
files | audioDB.cpp |
diffstat | 1 files changed, 5 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/audioDB.cpp Wed Sep 26 15:12:49 2007 +0000 +++ b/audioDB.cpp Wed Sep 26 15:14:54 2007 +0000 @@ -1937,13 +1937,13 @@ unsigned processedTracks=0; for(i=0; i<dbH->numFiles; i++){ if(trackTable[i]>sequenceLength-1){ - w = trackTable[i]-sequenceLength; + w = trackTable[i]-sequenceLength+1; pn = sMeanL2+i; *pn=0; while(w--) if(*ps>0) *pn+=*ps++; - *pn/=trackTable[i]-sequenceLength; + *pn/=trackTable[i]-sequenceLength+1; SILENCE_THRESH+=*pn; processedTracks++; } @@ -2118,7 +2118,7 @@ trackOffset=trackOffsetTable[track]; // numDoubles offset trackIndexOffset=trackOffset/dbH->dim; // numVectors offset - if(sequenceLength<trackTable[track]){ // test for short sequences + if(sequenceLength<=trackTable[track]){ // test for short sequences if(verbosity>7) { cerr << track << "." << trackIndexOffset << "." << trackTable[track] << " | ";cerr.flush(); @@ -2192,8 +2192,8 @@ } // Search for minimum distance by shingles (concatenated vectors) - for(j=0;j<numVectors-wL;j+=HOP_SIZE) - for(k=0;k<trackTable[track]-wL;k+=HOP_SIZE){ + 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) { cerr << thisDist << " " << qNorm[j] << " " << sNorm[trackIndexOffset+k] << endl;