if (!doubleSupport && (depth2 == CV_64F || depth1 == CV_64F))
return false;
- if( (oclop == OCL_OP_MUL_SCALE || oclop == OCL_OP_DIV_SCALE) && (depth1 >= CV_32F || depth2 >= CV_32F || ddepth >= CV_32F) )
- return false;
-
int kercn = haveMask || haveScalar ? cn : ocl::predictOptimalVectorWidth(_src1, _src2, _dst);
int scalarcn = kercn == 3 ? 4 : kercn, rowsPerWI = d.isIntel() ? 4 : 1;
flipHoriz( dst.data, dst.step, dst.data, dst.step, dst.size(), esz );
}
-/*#ifdef HAVE_OPENCL
+#if defined HAVE_OPENCL && !defined __APPLE__
static bool ocl_repeat(InputArray _src, int ny, int nx, OutputArray _dst)
{
return k.run(2, globalsize, NULL, false);
}
-#endif*/
+#endif
void repeat(InputArray _src, int ny, int nx, OutputArray _dst)
{
Size ssize = _src.size();
_dst.create(ssize.height*ny, ssize.width*nx, _src.type());
- /*CV_OCL_RUN(_dst.isUMat(),
- ocl_repeat(_src, ny, nx, _dst))*/
+#if !defined __APPLE__
+ CV_OCL_RUN(_dst.isUMat(),
+ ocl_repeat(_src, ny, nx, _dst))
+#endif
Mat src = _src.getMat(), dst = _dst.getMat();
Size dsize = dst.size();
OCL_OFF(cv::multiply(src1_roi, val, dst1_roi, val[0]));
OCL_ON(cv::multiply(usrc1_roi, val, udst1_roi, val[0]));
- Near(udst1_roi.depth() >= CV_32F ? 1e-2 : 1);
+ Near(udst1_roi.depth() >= CV_32F ? 2e-2 : 1);
}
}
OCL_OFF(cv::divide(src1_roi, src2_roi, dst1_roi, val[0]));
OCL_ON(cv::divide(usrc1_roi, usrc2_roi, udst1_roi, val[0]));
- Near(udst1_roi.depth() >= CV_32F ? 4e-3 : 1);
+ Near(udst1_roi.depth() >= CV_32F ? 2e-2 : 1);
}
}