// Copyright (C) 1999 Jean-Marc Valin #ifndef VQ_H #define VQ_H //#include "kmeans.h" #include "Object.h" #include namespace FD { /**This is a vector quantization class*/ class VQ : public Object { protected: float (*dist)(const float *, const float*, int); int length; public: static float euclidian (const float *x, const float *y, int len) { float sum1=0,sum2=0,sum3=0,sum4=0; const float *end = x+len; while (x &operator[] (int i) const = 0; virtual int getClassID (const float *v, float *dist_return = NULL) const = 0; //virtual void calcDist (const float *v, float *dist_return) const = 0; virtual void printOn(std::ostream &out=std::cout) const = 0; virtual void readFrom (std::istream &in=std::cin) = 0; }; }//namespace FD #endif