comparison src/EM.cpp @ 54:a54df67e607e preshift

Merge from default branch
author Chris Cannam
date Mon, 07 Apr 2014 17:36:40 +0100
parents ce1d88759557 9e2d1f6cd43a
children 384338fa460d
comparison
equal deleted inserted replaced
52:22553e7b2a63 54:a54df67e607e
90 for (int i = 0; i < (int)column.size(); ++i) { 90 for (int i = 0; i < (int)column.size(); ++i) {
91 sum += column[i]; 91 sum += column[i];
92 } 92 }
93 for (int i = 0; i < (int)column.size(); ++i) { 93 for (int i = 0; i < (int)column.size(); ++i) {
94 column[i] /= sum; 94 column[i] /= sum;
95 }
96 }
97
98 void
99 EM::normaliseSources(Grid &sources)
100 {
101 V denominators(sources[0].size());
102
103 for (int i = 0; i < (int)sources.size(); ++i) {
104 for (int j = 0; j < (int)sources[i].size(); ++j) {
105 denominators[j] += sources[i][j];
106 }
107 }
108
109 for (int i = 0; i < (int)sources.size(); ++i) {
110 for (int j = 0; j < (int)sources[i].size(); ++j) {
111 sources[i][j] /= denominators[j];
112 }
95 } 113 }
96 } 114 }
97 115
98 void 116 void
99 EM::iterate(V column) 117 EM::iterate(V column)
174 } 192 }
175 if (m_sourceSparsity != 1.0) { 193 if (m_sourceSparsity != 1.0) {
176 newSources[i][n] = pow(newSources[i][n], m_sourceSparsity); 194 newSources[i][n] = pow(newSources[i][n], m_sourceSparsity);
177 } 195 }
178 } 196 }
179 normalise(newSources[i]); 197 }
180 } 198 normaliseSources(newSources);
181 199
182 m_pitches = newPitches; 200 m_pitches = newPitches;
183 m_sources = newSources; 201 m_sources = newSources;
184 } 202 }
185 203