cv::magnitude
authorIlya Lavrenov <ilya.lavrenov@itseez.com>
Fri, 4 Apr 2014 10:18:53 +0000 (14:18 +0400)
committerIlya Lavrenov <ilya.lavrenov@itseez.com>
Tue, 8 Apr 2014 20:11:27 +0000 (00:11 +0400)
modules/core/src/mathfuncs.cpp
modules/core/src/stat.cpp

index cc5088d7115489c6c369e1ab22a701c49e42beda..51830db4c38e5aa0ecba905516cbd7ff5fa72e1e 100644 (file)
@@ -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
index 0e3d44ed6beee4d2af3efe995e75d855f1540bfc..c507779e3d08a0de3352f4fb5af2cf56897035dd 100644 (file)
@@ -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 ||