Merge pull request #9145 from alalek:ipp_minmaxidx_nan

This commit is contained in:
Alexander Alekhin 2017-07-12 15:37:53 +00:00
commit 617e6b4cc9
2 changed files with 8 additions and 0 deletions

View File

@ -209,6 +209,8 @@ CV_EXPORTS void scalarToRawData(const cv::Scalar& s, void* buf, int type, int un
#define IPP_DISABLE_RESIZE_NEAREST 1 // Accuracy mismatch (max diff 1) #define IPP_DISABLE_RESIZE_NEAREST 1 // Accuracy mismatch (max diff 1)
#define IPP_DISABLE_RESIZE_AREA 1 // Accuracy mismatch (max diff 1) #define IPP_DISABLE_RESIZE_AREA 1 // Accuracy mismatch (max diff 1)
#define IPP_DISABLE_MINMAX_NAN_SSE42 1 // cv::minMaxIdx problem with NaN input
// Temporary disabled named IPP region. Performance // Temporary disabled named IPP region. Performance
#define IPP_DISABLE_PERF_COPYMAKE 1 // performance variations #define IPP_DISABLE_PERF_COPYMAKE 1 // performance variations
#define IPP_DISABLE_PERF_LUT 1 // there are no performance benefits (PR #2653) #define IPP_DISABLE_PERF_LUT 1 // there are no performance benefits (PR #2653)

View File

@ -2534,6 +2534,12 @@ static bool ipp_minMaxIdx(Mat &src, double* _minVal, double* _maxVal, int* _minI
#if IPP_VERSION_X100 >= 700 #if IPP_VERSION_X100 >= 700
CV_INSTRUMENT_REGION_IPP() CV_INSTRUMENT_REGION_IPP()
#if IPP_DISABLE_MINMAX_NAN_SSE42
// Disable 32F processing only
if(src.depth() == CV_32F && !(ipp::getIppFeatures()&ippCPUID_AVX))
return false;
#endif
IppStatus status; IppStatus status;
IppDataType dataType = ippiGetDataType(src.depth()); IppDataType dataType = ippiGetDataType(src.depth());
float minVal = 0; float minVal = 0;