// Copyright (C) 1999 Jean-Marc Valin #ifndef RBF_H #define RBF_H #include #include #include "Object.h" #include "kmeans.h" namespace FD { class RBF : public KMeans { public: static float mahalanobis (const float *x, const float *c, const float *y, int len) { float sum1=0,sum2=0,sum3=0,sum4=0; const float *end = x+len; while (x > covar; public: explicit RBF (float (*_dist)(const float *, const float*, int) = euclidian) : KMeans(_dist) {} void train (int codeSize, const std::vector &data/*, const std::vector &data_out*/, int len, bool binary=false); void calcDist (const float *v, float *dist_return) const; void printOn(std::ostream &out=std::cout) const; void readFrom (std::istream &in=std::cin); friend std::istream &operator >> (std::istream &in, RBF &mdl); }; }//namespace FD #endif