From ed1ca00bf6e71c628b182f2210608b8e4485aa0a Mon Sep 17 00:00:00 2001 From: Ilya Lavrenov Date: Fri, 4 Apr 2014 14:18:53 +0400 Subject: [PATCH] cv::magnitude --- modules/core/src/mathfuncs.cpp | 12 ++++++++++++ modules/core/src/stat.cpp | 1 + 2 files changed, 13 insertions(+) diff --git a/modules/core/src/mathfuncs.cpp b/modules/core/src/mathfuncs.cpp index cc5088d..51830db 100644 --- a/modules/core/src/mathfuncs.cpp +++ b/modules/core/src/mathfuncs.cpp @@ -238,6 +238,12 @@ float cubeRoot( float value ) static void Magnitude_32f(const float* x, const float* y, float* mag, int len) { +#ifdef HAVE_IPP + IppStatus status = ippsMagnitude_32f(x, y, mag, len); + if (status == ippStsNoErr) + return; +#endif + int i = 0; #if CV_SSE @@ -264,6 +270,12 @@ static void Magnitude_32f(const float* x, const float* y, float* mag, int len) static void Magnitude_64f(const double* x, const double* y, double* mag, int len) { +#ifdef HAVE_IPP + IppStatus status = ippsMagnitude_64f(x, y, mag, len); + if (status == ippStsNoErr) + return; +#endif + int i = 0; #if CV_SSE2 diff --git a/modules/core/src/stat.cpp b/modules/core/src/stat.cpp index 0e3d44e..c507779 100644 --- a/modules/core/src/stat.cpp +++ b/modules/core/src/stat.cpp @@ -2016,6 +2016,7 @@ double cv::norm( InputArray _src, int normType, InputArray _mask ) #if defined (HAVE_IPP) && (IPP_VERSION_MAJOR >= 7) size_t total_size = src.total(); int rows = src.size[0], cols = (int)(total_size/rows); + if( (src.dims == 2 || (src.isContinuous() && mask.isContinuous())) && cols > 0 && (size_t)rows*cols == total_size && (normType == NORM_INF || normType == NORM_L1 || -- 2.7.4