comparison audioDB.cpp @ 224:3a81da6fb1d7

Fixes from refactoring branch: * make O2_MAXFILES twice as big (for KSA_CHARM 1s features); * read data even when track shorter than sequence.
author mas01cr
date Wed, 05 Dec 2007 13:52:51 +0000
parents 7562a833a951
children 2cc06e5b05a5
comparison
equal deleted inserted replaced
210:7562a833a951 224:3a81da6fb1d7
2004 } 2004 }
2005 } 2005 }
2006 2006
2007 trackIndexOffset=trackOffset/dbH->dim; // numVectors offset 2007 trackIndexOffset=trackOffset/dbH->dim; // numVectors offset
2008 2008
2009 if (trackTable[track] * sizeof(double) * dbH->dim > data_buffer_size) {
2010 if(data_buffer) {
2011 free(data_buffer);
2012 }
2013 {
2014 data_buffer_size = trackTable[track] * sizeof(double) * dbH->dim;
2015 void *tmp = malloc(data_buffer_size);
2016 if (tmp == NULL) {
2017 error("error allocating data buffer");
2018 }
2019 data_buffer = (double *) tmp;
2020 }
2021 }
2022
2023 read(dbfid, data_buffer, trackTable[track] * sizeof(double) * dbH->dim);
2024
2009 if(sequenceLength<=trackTable[track]){ // test for short sequences 2025 if(sequenceLength<=trackTable[track]){ // test for short sequences
2010 2026
2011 if(verbosity>7) { 2027 if(verbosity>7) {
2012 cerr << track << "." << trackIndexOffset << "." << trackTable[track] << " | ";cerr.flush(); 2028 cerr << track << "." << trackIndexOffset << "." << trackTable[track] << " | ";cerr.flush();
2013 } 2029 }
2022 // Matched filter matrix 2038 // Matched filter matrix
2023 for(j=0; j<numVectors;j++){ 2039 for(j=0; j<numVectors;j++){
2024 DD[j]=new double[trackTable[track]]; 2040 DD[j]=new double[trackTable[track]];
2025 assert(DD[j]); 2041 assert(DD[j]);
2026 } 2042 }
2027
2028 if (trackTable[track] * sizeof(double) * dbH->dim > data_buffer_size) {
2029 if(data_buffer) {
2030 free(data_buffer);
2031 }
2032 {
2033 data_buffer_size = trackTable[track] * sizeof(double) * dbH->dim;
2034 void *tmp = malloc(data_buffer_size);
2035 if (tmp == NULL) {
2036 error("error allocating data buffer");
2037 }
2038 data_buffer = (double *) tmp;
2039 }
2040 }
2041
2042 read(dbfid, data_buffer, trackTable[track] * sizeof(double) * dbH->dim);
2043 2043
2044 // Dot product 2044 // Dot product
2045 for(j=0; j<numVectors; j++) 2045 for(j=0; j<numVectors; j++)
2046 for(k=0; k<trackTable[track]; k++){ 2046 for(k=0; k<trackTable[track]; k++){
2047 qp=query+j*dbH->dim; 2047 qp=query+j*dbH->dim;
2498 } 2498 }
2499 } 2499 }
2500 2500
2501 trackIndexOffset=trackOffset/dbH->dim; // numVectors offset 2501 trackIndexOffset=trackOffset/dbH->dim; // numVectors offset
2502 2502
2503 if (trackTable[track] * sizeof(double) * dbH->dim > data_buffer_size) {
2504 if(data_buffer) {
2505 free(data_buffer);
2506 }
2507 {
2508 data_buffer_size = trackTable[track] * sizeof(double) * dbH->dim;
2509 void *tmp = malloc(data_buffer_size);
2510 if (tmp == NULL) {
2511 error("error allocating data buffer");
2512 }
2513 data_buffer = (double *) tmp;
2514 }
2515 }
2516
2517 read(dbfid, data_buffer, trackTable[track] * sizeof(double) * dbH->dim);
2518
2503 if(sequenceLength<=trackTable[track]){ // test for short sequences 2519 if(sequenceLength<=trackTable[track]){ // test for short sequences
2504 2520
2505 if(verbosity>7) { 2521 if(verbosity>7) {
2506 cerr << track << "." << trackIndexOffset << "." << trackTable[track] << " | ";cerr.flush(); 2522 cerr << track << "." << trackIndexOffset << "." << trackTable[track] << " | ";cerr.flush();
2507 } 2523 }
2516 // Matched filter matrix 2532 // Matched filter matrix
2517 for(j=0; j<numVectors;j++){ 2533 for(j=0; j<numVectors;j++){
2518 DD[j]=new double[trackTable[track]]; 2534 DD[j]=new double[trackTable[track]];
2519 assert(DD[j]); 2535 assert(DD[j]);
2520 } 2536 }
2521
2522 if (trackTable[track] * sizeof(double) * dbH->dim > data_buffer_size) {
2523 if(data_buffer) {
2524 free(data_buffer);
2525 }
2526 {
2527 data_buffer_size = trackTable[track] * sizeof(double) * dbH->dim;
2528 void *tmp = malloc(data_buffer_size);
2529 if (tmp == NULL) {
2530 error("error allocating data buffer");
2531 }
2532 data_buffer = (double *) tmp;
2533 }
2534 }
2535
2536 read(dbfid, data_buffer, trackTable[track] * sizeof(double) * dbH->dim);
2537 2537
2538 // Dot product 2538 // Dot product
2539 for(j=0; j<numVectors; j++) 2539 for(j=0; j<numVectors; j++)
2540 for(k=0; k<trackTable[track]; k++){ 2540 for(k=0; k<trackTable[track]; k++){
2541 qp=query+j*dbH->dim; 2541 qp=query+j*dbH->dim;