This commit is contained in:
Ilya Lavrenov
2014-04-18 14:25:38 +04:00
parent fe644ede19
commit 51e2a8ec96
6 changed files with 58 additions and 24 deletions

View File

@@ -721,6 +721,7 @@ static void max64f( const double* src1, size_t step1,
}
if (i == sz.height)
return;
setIppErrorStatus();
#endif
vBinOp64<double, OpMax<double>, IF_SIMD(VMax<double>)>(src1, step1, src2, step2, dst, step, sz);
}
@@ -841,6 +842,7 @@ static void min64f( const double* src1, size_t step1,
}
if (i == sz.height)
return;
setIppErrorStatus();
#endif
vBinOp64<double, OpMin<double>, IF_SIMD(VMin<double>)>(src1, step1, src2, step2, dst, step, sz);
}
@@ -2013,9 +2015,12 @@ static void mul8u( const uchar* src1, size_t step1, const uchar* src2, size_t st
{
float fscale = (float)*(const double*)scale;
#if defined HAVE_IPP && !defined HAVE_IPP_ICV_ONLY
if (std::fabs(fscale - 1) <= FLT_EPSILON &&
ippiMul_8u_C1RSfs(src1, (int)step1, src2, (int)step2, dst, (int)step, ippiSize(sz), 0) >= 0)
return;
if (std::fabs(fscale - 1) <= FLT_EPSILON)
{
if (ippiMul_8u_C1RSfs(src1, (int)step1, src2, (int)step2, dst, (int)step, ippiSize(sz), 0) >= 0)
return;
setIppErrorStatus();
}
#endif
mul_(src1, step1, src2, step2, dst, step, sz, fscale);
}
@@ -2031,9 +2036,12 @@ static void mul16u( const ushort* src1, size_t step1, const ushort* src2, size_t
{
float fscale = (float)*(const double*)scale;
#if defined HAVE_IPP && !defined HAVE_IPP_ICV_ONLY
if (std::fabs(fscale - 1) <= FLT_EPSILON &&
ippiMul_16u_C1RSfs(src1, (int)step1, src2, (int)step2, dst, (int)step, ippiSize(sz), 0) >= 0)
return;
if (std::fabs(fscale - 1) <= FLT_EPSILON)
{
if (ippiMul_16u_C1RSfs(src1, (int)step1, src2, (int)step2, dst, (int)step, ippiSize(sz), 0) >= 0)
return;
setIppErrorStatus();
}
#endif
mul_(src1, step1, src2, step2, dst, step, sz, fscale);
}
@@ -2043,9 +2051,12 @@ static void mul16s( const short* src1, size_t step1, const short* src2, size_t s
{
float fscale = (float)*(const double*)scale;
#if defined HAVE_IPP && !defined HAVE_IPP_ICV_ONLY
if (std::fabs(fscale - 1) <= FLT_EPSILON &&
ippiMul_16s_C1RSfs(src1, (int)step1, src2, (int)step2, dst, (int)step, ippiSize(sz), 0) >= 0)
return;
if (std::fabs(fscale - 1) <= FLT_EPSILON)
{
if (ippiMul_16s_C1RSfs(src1, (int)step1, src2, (int)step2, dst, (int)step, ippiSize(sz), 0) >= 0)
return;
setIppErrorStatus();
}
#endif
mul_(src1, step1, src2, step2, dst, step, sz, fscale);
}
@@ -2061,9 +2072,12 @@ static void mul32f( const float* src1, size_t step1, const float* src2, size_t s
{
float fscale = (float)*(const double*)scale;
#if defined HAVE_IPP && !defined HAVE_IPP_ICV_ONLY
if (std::fabs(fscale - 1) <= FLT_EPSILON &&
ippiMul_32f_C1R(src1, (int)step1, src2, (int)step2, dst, (int)step, ippiSize(sz)) >= 0)
return;
if (std::fabs(fscale - 1) <= FLT_EPSILON)
{
if (ippiMul_32f_C1R(src1, (int)step1, src2, (int)step2, dst, (int)step, ippiSize(sz)) >= 0)
return;
setIppErrorStatus();
}
#endif
mul_(src1, step1, src2, step2, dst, step, sz, fscale);
}