Removed incorrect using of rootn() and powr() in ocl_pow
authorAlexander Karsakov <alexander.karsakov@itseez.com>
Thu, 6 Nov 2014 13:23:02 +0000 (16:23 +0300)
committerAlexander Karsakov <alexander.karsakov@itseez.com>
Thu, 6 Nov 2014 13:23:02 +0000 (16:23 +0300)
modules/core/src/mathfuncs.cpp
modules/core/src/opencl/arithm.cl

index 949682f..1c045f3 100644 (file)
@@ -2478,8 +2478,8 @@ static bool ocl_pow(InputArray _src, double power, OutputArray _dst,
     if (depth == CV_64F && !doubleSupport)
         return false;
 
-    bool issqrt = std::abs(power - 0.5) < DBL_EPSILON, nonnegative = power >= 0;
-    const char * const op = issqrt ? "OP_SQRT" : is_ipower ? nonnegative ? "OP_POWN" : "OP_ROOTN" : nonnegative ? "OP_POWR" : "OP_POW";
+    bool issqrt = std::abs(power - 0.5) < DBL_EPSILON;
+    const char * const op = issqrt ? "OP_SQRT" : is_ipower ? "OP_POWN" : "OP_POW";
 
     ocl::Kernel k("KF", ocl::core::arithm_oclsrc,
                   format("-D dstT=%s -D depth=%d -D rowsPerWI=%d -D %s -D UNARY_OP%s",
index 3450666..0b81d76 100644 (file)
 #elif defined OP_POW
 #define PROCESS_ELEM storedst(pow(srcelem1, srcelem2))
 
-#elif defined OP_ROOTN
-#define PROCESS_ELEM storedst(rootn(srcelem1, srcelem2))
-
-#elif defined OP_POWR
-#if depth == 5
-#define PROCESS_ELEM storedst(native_powr(srcelem1, srcelem2))
-#else
-#define PROCESS_ELEM storedst(powr(srcelem1, srcelem2))
-#endif
-
 #elif defined OP_POWN
 #undef workT
 #define workT int