Mercurial > hg > silvet
changeset 54:a54df67e607e preshift
Merge from default branch
author | Chris Cannam |
---|---|
date | Mon, 07 Apr 2014 17:36:40 +0100 |
parents | 22553e7b2a63 (current diff) 9e2d1f6cd43a (diff) |
children | 384338fa460d |
files | src/EM.cpp src/EM.h |
diffstat | 2 files changed, 20 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/EM.cpp Mon Apr 07 17:07:51 2014 +0100 +++ b/src/EM.cpp Mon Apr 07 17:36:40 2014 +0100 @@ -96,6 +96,24 @@ } void +EM::normaliseSources(Grid &sources) +{ + V denominators(sources[0].size()); + + for (int i = 0; i < (int)sources.size(); ++i) { + for (int j = 0; j < (int)sources[i].size(); ++j) { + denominators[j] += sources[i][j]; + } + } + + for (int i = 0; i < (int)sources.size(); ++i) { + for (int j = 0; j < (int)sources[i].size(); ++j) { + sources[i][j] /= denominators[j]; + } + } +} + +void EM::iterate(V column) { normalise(column); @@ -176,8 +194,8 @@ newSources[i][n] = pow(newSources[i][n], m_sourceSparsity); } } - normalise(newSources[i]); } + normaliseSources(newSources); m_pitches = newPitches; m_sources = newSources;