| 172 | |
| 173 | template <class Sample> |
| 174 | double GetMaximumAbsolute(const std::vector<std::vector<Sample>>& spectrogram) { |
| 175 | double max_absolute = 0.0; |
| 176 | for (int i = 0; i < spectrogram.size(); ++i) { |
| 177 | for (int j = 0; j < spectrogram[i].size(); ++j) { |
| 178 | double absolute_value = std::abs(spectrogram[i][j]); |
| 179 | if (absolute_value > max_absolute) { |
| 180 | max_absolute = absolute_value; |
| 181 | } |
| 182 | } |
| 183 | } |
| 184 | return max_absolute; |
| 185 | } |
| 186 | |
| 187 | template <class ExpectedSample, class ActualSample> |
| 188 | void CompareMagnitudeData( |