cv::multiply
This commit is contained in:
@@ -705,7 +705,7 @@ static void max64f( const double* src1, size_t step1,
|
||||
const double* src2, size_t step2,
|
||||
double* dst, size_t step, Size sz, void* )
|
||||
{
|
||||
#if ARITHM_USE_IPP == 1
|
||||
#if ARITHM_USE_IPP == 1 && !defined HAVE_IPP_ICV_ONLY
|
||||
double* s1 = (double*)src1;
|
||||
double* s2 = (double*)src2;
|
||||
double* d = dst;
|
||||
@@ -825,7 +825,7 @@ static void min64f( const double* src1, size_t step1,
|
||||
const double* src2, size_t step2,
|
||||
double* dst, size_t step, Size sz, void* )
|
||||
{
|
||||
#if ARITHM_USE_IPP == 1
|
||||
#if ARITHM_USE_IPP == 1 && !defined HAVE_IPP_ICV_ONLY
|
||||
double* s1 = (double*)src1;
|
||||
double* s2 = (double*)src2;
|
||||
double* d = dst;
|
||||
@@ -2012,6 +2012,11 @@ static void mul8u( const uchar* src1, size_t step1, const uchar* src2, size_t st
|
||||
uchar* dst, size_t step, Size sz, void* scale)
|
||||
{
|
||||
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;
|
||||
#endif
|
||||
mul_(src1, step1, src2, step2, dst, step, sz, fscale);
|
||||
}
|
||||
|
||||
@@ -2024,13 +2029,25 @@ static void mul8s( const schar* src1, size_t step1, const schar* src2, size_t st
|
||||
static void mul16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2,
|
||||
ushort* dst, size_t step, Size sz, void* scale)
|
||||
{
|
||||
mul_(src1, step1, src2, step2, dst, step, sz, (float)*(const double*)scale);
|
||||
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;
|
||||
#endif
|
||||
mul_(src1, step1, src2, step2, dst, step, sz, fscale);
|
||||
}
|
||||
|
||||
static void mul16s( const short* src1, size_t step1, const short* src2, size_t step2,
|
||||
short* dst, size_t step, Size sz, void* scale)
|
||||
{
|
||||
mul_(src1, step1, src2, step2, dst, step, sz, (float)*(const double*)scale);
|
||||
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;
|
||||
#endif
|
||||
mul_(src1, step1, src2, step2, dst, step, sz, fscale);
|
||||
}
|
||||
|
||||
static void mul32s( const int* src1, size_t step1, const int* src2, size_t step2,
|
||||
@@ -2042,7 +2059,13 @@ static void mul32s( const int* src1, size_t step1, const int* src2, size_t step2
|
||||
static void mul32f( const float* src1, size_t step1, const float* src2, size_t step2,
|
||||
float* dst, size_t step, Size sz, void* scale)
|
||||
{
|
||||
mul_(src1, step1, src2, step2, dst, step, sz, (float)*(const double*)scale);
|
||||
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;
|
||||
#endif
|
||||
mul_(src1, step1, src2, step2, dst, step, sz, fscale);
|
||||
}
|
||||
|
||||
static void mul64f( const double* src1, size_t step1, const double* src2, size_t step2,
|
||||
|
@@ -356,7 +356,7 @@ Mat& Mat::operator = (const Scalar& s)
|
||||
|
||||
if( is[0] == 0 && is[1] == 0 && is[2] == 0 && is[3] == 0 )
|
||||
{
|
||||
#if defined HAVE_IPP && !defined HAVE_IPP_ICV_ONLY
|
||||
#if defined HAVE_IPP && !defined HAVE_IPP_ICV_ONLY && 0
|
||||
if (dims <= 2 || isContinuous())
|
||||
{
|
||||
IppiSize roisize = { cols, rows };
|
||||
@@ -365,10 +365,10 @@ Mat& Mat::operator = (const Scalar& s)
|
||||
roisize.width = (int)total();
|
||||
roisize.height = 1;
|
||||
|
||||
if (ippsZero_8u(data, roisize.width * elemSize()) >= 0)
|
||||
if (ippsZero_8u(data, static_cast<int>(roisize.width * elemSize())) >= 0)
|
||||
return *this;
|
||||
}
|
||||
roisize.width *= elemSize();
|
||||
roisize.width *= (int)elemSize();
|
||||
|
||||
if (ippiSet_8u_C1R(0, data, (int)step, roisize) >= 0)
|
||||
return *this;
|
||||
@@ -416,8 +416,9 @@ Mat& Mat::setTo(InputArray _value, InputArray _mask)
|
||||
#if defined HAVE_IPP && !defined HAVE_IPP_ICV_ONLY
|
||||
if (!mask.empty() && (dims <= 2 || (isContinuous() && mask.isContinuous())))
|
||||
{
|
||||
uchar buf[32];
|
||||
convertAndUnrollScalar( value, type(), buf, 1 );
|
||||
uchar _buf[32];
|
||||
void * buf = _buf;
|
||||
convertAndUnrollScalar( value, type(), _buf, 1 );
|
||||
|
||||
int cn = channels(), depth0 = depth();
|
||||
IppStatus status = (IppStatus)-1;
|
||||
@@ -678,6 +679,7 @@ void flip( InputArray _src, OutputArray _dst, int flip_mode )
|
||||
|
||||
if (src.data == dst.data)
|
||||
{
|
||||
CV_SUPPRESS_DEPRECATED_START
|
||||
ippFuncI =
|
||||
type == CV_8UC1 ? (ippiMirrorI)ippiMirror_8u_C1IR :
|
||||
type == CV_8UC3 ? (ippiMirrorI)ippiMirror_8u_C3IR :
|
||||
@@ -694,6 +696,7 @@ void flip( InputArray _src, OutputArray _dst, int flip_mode )
|
||||
type == CV_32FC1 ? (ippiMirrorI)ippiMirror_32f_C1IR :
|
||||
type == CV_32FC3 ? (ippiMirrorI)ippiMirror_32f_C3IR :
|
||||
type == CV_32FC4 ? (ippiMirrorI)ippiMirror_32f_C4IR : 0;
|
||||
CV_SUPPRESS_DEPRECATED_END
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -3027,6 +3027,7 @@ void cv::transpose( InputArray _src, OutputArray _dst )
|
||||
|
||||
if (dst.data == src.data && dst.cols == dst.rows)
|
||||
{
|
||||
CV_SUPPRESS_DEPRECATED_START
|
||||
ippFuncI =
|
||||
type == CV_8UC1 ? (ippiTransposeI)ippiTranspose_8u_C1IR :
|
||||
type == CV_8UC3 ? (ippiTransposeI)ippiTranspose_8u_C3IR :
|
||||
@@ -3043,6 +3044,7 @@ void cv::transpose( InputArray _src, OutputArray _dst )
|
||||
type == CV_32FC1 ? (ippiTransposeI)ippiTranspose_32f_C1IR :
|
||||
type == CV_32FC3 ? (ippiTransposeI)ippiTranspose_32f_C3IR :
|
||||
type == CV_32FC4 ? (ippiTransposeI)ippiTranspose_32f_C4IR : 0;
|
||||
CV_SUPPRESS_DEPRECATED_END
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Reference in New Issue
Block a user