Mercurial > hg > audiodb
view l2norm.cpp @ 584:e3790284fd4a
Merged through librdf storage hooks and apache2 module.
Squashed commit of the following:
commit a6cfca8f04036e12e7d7fcd55c47224e802582f0
Author: Michael Jewell <mjewell@harrison.(none)>
Date: Fri Jul 31 15:23:32 2009 +0100
Removed leftover bits and bobs.
commit f1f0dd074d0767de3e24ba636779fd8701d73d9e
Author: Michael Jewell <mjewell@harrison.(none)>
Date: Fri Jul 31 15:07:20 2009 +0100
Simple test of database creation via librdf.
commit 90e6350538e004d8785137e5ff2ac878c22a5d42
Author: Michael Jewell <mjewell@harrison.(none)>
Date: Fri Jul 31 15:05:10 2009 +0100
Added the apache2 module which will hook into the librdf storage module
commit c75bf53763b7078c83ae97fcf247da2576baa79a
Author: Michael Jewell <mjewell@harrison.(none)>
Date: Fri Jul 31 15:04:53 2009 +0100
Added sparql librdf source - requires the librdf sources to compile.
commit 0646f0190112a73ddb2533537e2cc9832c066b52
Author: Michael Jewell <mjewell@harrison.(none)>
Date: Mon Jul 27 12:12:26 2009 +0100
Adding execution to mod_audiodb
commit 8f83f27ba4d917278bca0c7cb665d930e28c86df
Author: Michael Jewell <mjewell@harrison.(none)>
Date: Wed Jul 22 12:15:57 2009 +0100
Some initial returns for the sparql handler.
commit dc639aed11943a5b0c379eb47cf293f76908b1b7
Author: Michael Jewell <mjewell@harrison.(none)>
Date: Wed Jul 22 12:06:20 2009 +0100
Added a little setup.sh script to do libtoolize/autoconf etc.
commit 3a679da499db647fc82cf2797daeb5cc44ed7655
Author: Michael Jewell <mjewell@harrison.(none)>
Date: Wed Jul 22 12:03:42 2009 +0100
Adding initial bits for apache mod
author | mas01mj |
---|---|
date | Fri, 31 Jul 2009 14:36:12 +0000 |
parents | cc2b97d020b1 |
children | fdcd436d7cbd 70acfcb5010a |
line wrap: on
line source
extern "C" { #include "audioDB_API.h" } #include "audioDB-internals.h" static int audiodb_l2norm_existing(adb_t *adb) { double *data_buffer, *l2norm_buffer; adb_header_t *header = adb->header; size_t data_buffer_size = align_page_up(header->length); size_t nvectors = header->length / (sizeof(double) * header->dim); /* FIXME: this map of the vector data will lose if we ever turn the * l2norm flag on when we have already inserted a large number of * vectors, as the mmap() will fail. "Don't do that, then" is one * possible answer. */ mmap_or_goto_error(double *, data_buffer, header->dataOffset, data_buffer_size); l2norm_buffer = (double *) malloc(nvectors * sizeof(double)); if(!l2norm_buffer) { goto error; } audiodb_l2norm_buffer(data_buffer, header->dim, nvectors, l2norm_buffer); if(lseek(adb->fd, adb->header->l2normTableOffset, SEEK_SET) == (off_t) -1) { goto error; } write_or_goto_error(adb->fd, l2norm_buffer, nvectors * sizeof(double)); munmap(data_buffer, data_buffer_size); free(l2norm_buffer); return 0; error: maybe_munmap(data_buffer, data_buffer_size); if(l2norm_buffer) { free(l2norm_buffer); } return 1; } int audiodb_l2norm(adb_t *adb) { adb_header_t *header = adb->header; if(!(adb->flags & O_RDWR)) { return 1; } if(header->flags & ADB_HEADER_FLAG_L2NORM) { /* non-error code for forthcoming backwards-compatibility * reasons */ return 0; } if((!(header->flags & ADB_HEADER_FLAG_REFERENCES)) && (header->length > 0)) { if(audiodb_l2norm_existing(adb)) { goto error; } } adb->header->flags |= ADB_HEADER_FLAG_L2NORM; return audiodb_sync_header(adb); error: return 1; }