annotate libtests/0003/prog1.c @ 539:06ed85832c3b multiprobeLSH

Optimized the query_loop_points inner loop for memcpy and I/O efficiency. Uses sparse seeks and reads to perform scattered reads across data set. Current version does not cache fid between open calls to the same trackID.
author mas01mc
date Sat, 07 Feb 2009 01:20:05 +0000
parents 342822c2d49a
children bcc7a6ddb2c8
rev   line source
mas01cr@498 1 #include "audioDB_API.h"
mas01cr@498 2 #include "test_utils_lib.h"
mas01ik@355 3
mas01cr@498 4 int main(int argc, char **argv) {
mas01cr@498 5 adb_t *adb;
mas01ik@355 6
mas01cr@498 7 clean_remove_db(TESTDB);
mas01cr@498 8 if(!(adb = audiodb_create(TESTDB, 0, 0, 0)))
mas01cr@498 9 return 1;
mas01cr@498 10 if(audiodb_l2norm(adb))
mas01cr@498 11 return 1;
mas01ik@355 12
mas01cr@498 13 adb_datum_t datum = {1, 1, "testfeature", (double[1]) {1}, NULL, NULL};
mas01cr@498 14 if(audiodb_insert_datum(adb, &datum))
mas01cr@498 15 return 1;
mas01ik@355 16
mas01cr@498 17 adb_query_id_t qid = {0};
mas01cr@498 18 qid.datum = &datum;
mas01cr@498 19 qid.sequence_length = 1;
mas01cr@498 20 qid.sequence_start = 0;
mas01cr@498 21 adb_query_parameters_t parms =
mas01cr@498 22 {ADB_ACCUMULATION_DB, ADB_DISTANCE_DOT_PRODUCT, 10, 0};
mas01cr@498 23 adb_query_refine_t refine = {0};
mas01cr@498 24 refine.hopsize = 1;
mas01ik@355 25
mas01cr@498 26 adb_query_spec_t spec;
mas01cr@498 27 spec.qid = qid;
mas01cr@498 28 spec.params = parms;
mas01cr@498 29 spec.refine = refine;
mas01ik@355 30
mas01cr@498 31 adb_query_results_t *results = audiodb_query_spec(adb, &spec);
mas01cr@498 32 if(!results || results->nresults != 1) return 1;
mas01cr@498 33 result_present_or_fail(results, "testfeature", 1, 0, 0);
mas01cr@498 34 audiodb_query_free_results(adb, &spec, results);
mas01ik@355 35
mas01cr@498 36 audiodb_close(adb);
mas01ik@355 37
mas01cr@498 38 return 104;
mas01ik@355 39 }