Mercurial > hg > qm-dsp
annotate maths/KLDivergence.h @ 31:dfe38135e4c7
* Add cosine distance and the self-similarity matrix used for SB rhythmic
similarity
* Pull out SB timbral similarity KL divergence into its own file
author | cannam |
---|---|
date | Fri, 18 Jan 2008 14:40:20 +0000 |
parents | |
children | 499d438b52ba |
rev | line source |
---|---|
cannam@31 | 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ |
cannam@31 | 2 |
cannam@31 | 3 /* |
cannam@31 | 4 QM DSP Library |
cannam@31 | 5 |
cannam@31 | 6 Centre for Digital Music, Queen Mary, University of London. |
cannam@31 | 7 This file copyright 2008 QMUL |
cannam@31 | 8 All rights reserved. |
cannam@31 | 9 */ |
cannam@31 | 10 |
cannam@31 | 11 #ifndef KLDIVERGENCE_H |
cannam@31 | 12 #define KLDIVERGENCE_H |
cannam@31 | 13 |
cannam@31 | 14 #include <vector> |
cannam@31 | 15 |
cannam@31 | 16 using std::vector; |
cannam@31 | 17 |
cannam@31 | 18 /** |
cannam@31 | 19 * Calculate a symmetrised Kullback-Leibler divergence of Gaussian |
cannam@31 | 20 * models based on mean and variance vectors. All input vectors must |
cannam@31 | 21 * be of equal size. |
cannam@31 | 22 */ |
cannam@31 | 23 |
cannam@31 | 24 class KLDivergence |
cannam@31 | 25 { |
cannam@31 | 26 public: |
cannam@31 | 27 KLDivergence() { } |
cannam@31 | 28 ~KLDivergence() { } |
cannam@31 | 29 |
cannam@31 | 30 double distance(const vector<double> &means1, |
cannam@31 | 31 const vector<double> &variances1, |
cannam@31 | 32 const vector<double> &means2, |
cannam@31 | 33 const vector<double> &variances2); |
cannam@31 | 34 }; |
cannam@31 | 35 |
cannam@31 | 36 #endif |
cannam@31 | 37 |