cannam@31: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ cannam@31: cannam@31: /* cannam@31: QM DSP Library cannam@31: cannam@31: Centre for Digital Music, Queen Mary, University of London. cannam@31: This file copyright 2008 QMUL cannam@31: All rights reserved. cannam@31: */ cannam@31: cannam@31: #ifndef KLDIVERGENCE_H cannam@31: #define KLDIVERGENCE_H cannam@31: cannam@31: #include cannam@31: cannam@31: using std::vector; cannam@31: cannam@31: /** cannam@31: * Calculate a symmetrised Kullback-Leibler divergence of Gaussian cannam@31: * models based on mean and variance vectors. All input vectors must cannam@31: * be of equal size. cannam@31: */ cannam@31: cannam@31: class KLDivergence cannam@31: { cannam@31: public: cannam@31: KLDivergence() { } cannam@31: ~KLDivergence() { } cannam@31: cannam@31: double distance(const vector &means1, cannam@31: const vector &variances1, cannam@31: const vector &means2, cannam@31: const vector &variances2); cannam@31: }; cannam@31: cannam@31: #endif cannam@31: