More VQ utility work. Utils now include:
[platform/upstream/libvorbis.git] / vq / genericdata.c
1 /********************************************************************
2  *                                                                  *
3  * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE.  *
4  * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY *
5  * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE.    *
6  * PLEASE READ THESE TERMS DISTRIBUTING.                            *
7  *                                                                  *
8  * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-2000             *
9  * by Monty <monty@xiph.org> and The XIPHOPHORUS Company            *
10  * http://www.xiph.org/                                             *
11  *                                                                  *
12  ********************************************************************
13
14  function: generic euclidian distance metric for VQ codebooks
15  last mod: $Id: genericdata.c,v 1.1 2000/01/05 10:14:55 xiphmont Exp $
16
17  ********************************************************************/
18
19 #include <stdlib.h>
20 #include <math.h>
21 #include <stdio.h>
22 #include "vqgen.h"
23 #include "vqext.h"
24
25 char *vqext_booktype="GENERICdata";  
26 int vqext_aux=0;                
27 quant_meta q={0,0,0,0};          /* non sequence data; each scalar 
28                                     independent */
29
30 double *vqext_weight(vqgen *v,double *p){
31   /*noop*/
32   return(p);
33 }
34
35                             /* candidate,actual */
36 double vqext_metric(vqgen *v,double *e, double *p){
37   int i;
38   double acc=0.;
39   for(i=0;i<v->elements;i++){
40     double val=p[i]-e[i];
41     acc+=val*val;
42   }
43   return acc;
44 }
45
46 void vqext_addpoint_adj(vqgen *v,double *b,int start,int dim,int cols){
47   vqgen_addpoint(v,b+start,NULL);
48 }
49
50 void vqext_preprocess(vqgen *v){
51   /* noop */
52 }
53
54