added perf test
authorIlya Lavrenov <ilya.lavrenov@itseez.com>
Wed, 5 Feb 2014 15:35:00 +0000 (19:35 +0400)
committerIlya Lavrenov <ilya.lavrenov@itseez.com>
Wed, 5 Feb 2014 16:24:30 +0000 (20:24 +0400)
modules/core/include/opencv2/core/mat.hpp
modules/core/perf/opencl/perf_arithm.cpp
modules/core/src/umatrix.cpp
modules/core/test/ocl/test_matrix_expr.cpp
modules/superres/src/input_array_utility.cpp

index 99e7694..db1e8fa 100644 (file)
@@ -1222,8 +1222,6 @@ public:
     //! per-element matrix multiplication by means of matrix expressions
     UMat mul(InputArray m, double scale=1) const;
 
-    //! computes cross-product of 2 3D vectors
-    UMat cross(InputArray m) const;
     //! computes dot-product
     double dot(InputArray m) const;
 
index dc5cc07..ec9bb26 100644 (file)
@@ -706,6 +706,28 @@ OCL_PERF_TEST_P(NormFixture, Norm,
     SANITY_CHECK(res, 1e-5, ERROR_RELATIVE);
 }
 
+///////////// UMat::dot ////////////////////////
+
+typedef Size_MatType UMatDotFixture;
+
+OCL_PERF_TEST_P(UMatDotFixture, UMatDot,
+            ::testing::Combine(OCL_PERF_ENUM(OCL_SIZE_1, OCL_SIZE_2, OCL_SIZE_3), OCL_TEST_TYPES))
+{
+    const Size_MatType_t params = GetParam();
+    const Size srcSize = get<0>(params);
+    const int type = get<1>(params);
+    double r = 0.0;
+
+    checkDeviceMaxMemoryAllocSize(srcSize, type);
+
+    UMat src1(srcSize, type), src2(srcSize, type);
+    declare.in(src1, src2, WARMUP_RNG);
+
+    OCL_TEST_CYCLE() r = src1.dot(src2);
+
+    SANITY_CHECK(r, 1e-5, ERROR_RELATIVE);
+}
+
 ///////////// Repeat ////////////////////////
 
 typedef Size_MatType RepeatFixture;
index bb9bbb4..1dd7b4d 100644 (file)
@@ -551,14 +551,6 @@ int UMat::checkVector(int _elemChannels, int _depth, bool _requireContinuous) co
     ? (int)(total()*channels()/_elemChannels) : -1;
 }
 
-
-UMat UMat::cross(InputArray) const
-{
-    CV_Error(CV_StsNotImplemented, "");
-    return UMat();
-}
-
-
 UMat UMat::reshape(int _cn, int _newndims, const int* _newsz) const
 {
     if(_newndims == dims)
@@ -819,6 +811,8 @@ UMat UMat::mul(InputArray m, double scale) const
     return dst;
 }
 
+#ifdef HAVE_OPENCL
+
 static bool ocl_dot( InputArray _src1, InputArray _src2, double & res )
 {
     int type = _src1.type(), depth = CV_MAT_DEPTH(type);
@@ -861,6 +855,8 @@ static bool ocl_dot( InputArray _src1, InputArray _src2, double & res )
     return false;
 }
 
+#endif
+
 double UMat::dot(InputArray m) const
 {
     CV_Assert(m.sameSize(*this) && m.type() == type());
index 33be862..167026d 100644 (file)
@@ -1,48 +1,9 @@
-/*M///////////////////////////////////////////////////////////////////////////////////////
-//
-//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
-//
-//  By downloading, copying, installing or using the software you agree to this license.
-//  If you do not agree to this license, do not download, install,
-//  copy or use the software.
-//
-//
-//                           License Agreement
-//                For Open Source Computer Vision Library
-//
-// Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved.
-// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved.
-// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved.
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html.
+
+// Copyright (C) 2014, Advanced Micro Devices, Inc., all rights reserved.
 // Third party copyrights are property of their respective owners.
-//
-// @Authors
-//    Jia Haipeng, jiahaipeng95@gmail.com
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-//   * Redistribution's of source code must retain the above copyright notice,
-//     this list of conditions and the following disclaimer.
-//
-//   * Redistribution's in binary form must reproduce the above copyright notice,
-//     this list of conditions and the following disclaimer in the documentation
-//     and/or other materials provided with the distribution.
-//
-//   * The name of the copyright holders may not be used to endorse or promote products
-//     derived from this software without specific prior written permission.
-//
-// This software is provided by the copyright holders and contributors "as is" and
-// any express or implied warranties, including, but not limited to, the implied
-// warranties of merchantability and fitness for a particular purpose are disclaimed.
-// In no event shall the Intel Corporation or contributors be liable for any direct,
-// indirect, incidental, special, exemplary, or consequential damages
-// (including, but not limited to, procurement of substitute goods or services;
-// loss of use, data, or profits; or business interruption) however caused
-// and on any theory of liability, whether in contract, strict liability,
-// or tort (including negligence or otherwise) arising in any way out of
-// the use of this software, even if advised of the possibility of such damage.
-//
-//M*/
 
 #include "test_precomp.hpp"
 #include "opencv2/ts/ocl_test.hpp"
index 6b306d2..9f4f229 100644 (file)
@@ -223,7 +223,6 @@ namespace
             break;
 
         case _InputArray::UMAT:
-        case _InputArray::UEXPR:
             src.getUMat().convertTo(dst, depth, scale);
             break;