diff --git a/modules/core/perf/opencl/perf_arithm.cpp b/modules/core/perf/opencl/perf_arithm.cpp index 04d343a136..cb14aa92b1 100644 --- a/modules/core/perf/opencl/perf_arithm.cpp +++ b/modules/core/perf/opencl/perf_arithm.cpp @@ -688,6 +688,24 @@ OCL_PERF_TEST_P(PowFixture, Pow, ::testing::Combine( SANITY_CHECK(dst, 1.5e-6, ERROR_RELATIVE); } +///////////// iPow //////////////////////// +OCL_PERF_TEST_P(PowFixture, iPow, ::testing::Combine( + OCL_TEST_SIZES, OCL_PERF_ENUM(CV_8UC1, CV_8SC1,CV_16UC1,CV_16SC1,CV_32SC1))) +{ + const Size_MatType_t params = GetParam(); + const Size srcSize = get<0>(params); + const int type = get<1>(params); + + checkDeviceMaxMemoryAllocSize(srcSize, type); + + UMat src(srcSize, type), dst(srcSize, type); + randu(src, 0, 100); + declare.in(src).out(dst); + + OCL_TEST_CYCLE() cv::pow(src, 7.0, dst); + + SANITY_CHECK_NOTHING(); +} ///////////// AddWeighted//////////////////////// typedef Size_MatType AddWeightedFixture; diff --git a/modules/core/src/mathfuncs.cpp b/modules/core/src/mathfuncs.cpp index 764d2d9b03..e1906fcc8f 100644 --- a/modules/core/src/mathfuncs.cpp +++ b/modules/core/src/mathfuncs.cpp @@ -791,7 +791,7 @@ struct iPow_SIMD #if (CV_SIMD || CV_SIMD_SCALABLE) template <> -struct iPow_SIMD +struct iPow_SIMD { int operator() ( const uchar * src, uchar * dst, int len, int power ) { @@ -871,7 +871,7 @@ struct iPow_SIMD }; template <> -struct iPow_SIMD +struct iPow_SIMD { int operator() ( const ushort * src, ushort * dst, int len, int power) {