From 77be0dbd89ee7c32c87b4a4bffab7603681b3c6d Mon Sep 17 00:00:00 2001 From: Roman Tolchenov <roman.tolchenov@stfc.ac.uk> Date: Tue, 12 May 2015 16:17:39 +0100 Subject: [PATCH] Re #11743. Replace inf with nan in normalization. --- Code/Mantid/Framework/API/src/MatrixWorkspace.cpp | 9 +++++++-- .../MantidQt/API/src/MantidQwtIMDWorkspaceData.cpp | 6 +++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Code/Mantid/Framework/API/src/MatrixWorkspace.cpp b/Code/Mantid/Framework/API/src/MatrixWorkspace.cpp index e59421d5920..38d30cb37e2 100644 --- a/Code/Mantid/Framework/API/src/MatrixWorkspace.cpp +++ b/Code/Mantid/Framework/API/src/MatrixWorkspace.cpp @@ -1555,9 +1555,14 @@ signal_t MatrixWorkspace::getSignalAtCoord( switch (normalization) { case NoNormalization: return y; - case VolumeNormalization: + case VolumeNormalization: { // Divide the signal by the area - return y / (yBinSize * (X[i] - X[i - 1])); + auto volume = yBinSize * (X[i] - X[i - 1]); + if (volume == 0.0) { + return std::numeric_limits<double>::quiet_NaN(); + } + return y / volume; + } case NumEventsNormalization: // Not yet implemented, may not make sense return y; diff --git a/Code/Mantid/MantidQt/API/src/MantidQwtIMDWorkspaceData.cpp b/Code/Mantid/MantidQt/API/src/MantidQwtIMDWorkspaceData.cpp index 1212cf2cb5f..d1a16749ee6 100644 --- a/Code/Mantid/MantidQt/API/src/MantidQwtIMDWorkspaceData.cpp +++ b/Code/Mantid/MantidQt/API/src/MantidQwtIMDWorkspaceData.cpp @@ -87,7 +87,11 @@ MantidQwtIMDWorkspaceData::MantidQwtIMDWorkspaceData(Mantid::API::IMDWorkspace_c } // Unit direction of the line m_dir = m_end - m_start; - m_dir.normalize(); + if (m_end != m_start) { + m_dir.normalize(); + } else { + m_dir[0] = 1.0; + } // And cache the X/Y values this->cacheLinePlot(); } -- GitLab