From 5ddbefd8c49159535bf0f493557e141587a130fb Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 6 Feb 2019 13:25:57 +0100 Subject: [PATCH] Do not take logarithm of values <= 0, fixes #5164 --- rtengine/EdgePreservingDecomposition.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtengine/EdgePreservingDecomposition.cc b/rtengine/EdgePreservingDecomposition.cc index d946fe0f3..6505cedab 100644 --- a/rtengine/EdgePreservingDecomposition.cc +++ b/rtengine/EdgePreservingDecomposition.cc @@ -894,12 +894,12 @@ void EdgePreservingDecomposition::CompressDynamicRange(float *Source, float Scal #endif for(int ii = 0; ii < n - 3; ii += 4) { - _mm_storeu_ps( &Source[ii], xlogf(LVFU(Source[ii]) + epsv)); + _mm_storeu_ps( &Source[ii], xlogf(vmaxf(LVFU(Source[ii]), ZEROV) + epsv)); } } for(int ii = n - (n % 4); ii < n; ii++) { - Source[ii] = xlogf(Source[ii] + eps); + Source[ii] = xlogf(std::max(Source[ii], 0.f) + eps); } #else @@ -908,7 +908,7 @@ void EdgePreservingDecomposition::CompressDynamicRange(float *Source, float Scal #endif for(int ii = 0; ii < n; ii++) { - Source[ii] = xlogf(Source[ii] + eps); + Source[ii] = xlogf(std::max(Source[ii], 0.f) + eps); } #endif