i = vecOp(src, dst, width, cn);
width *= cn;
-
+ #if CV_ENABLE_UNROLLED
for( ; i <= width - 4; i += 4 )
{
S = (const ST*)src + i;
D[i] = s0; D[i+1] = s1;
D[i+2] = s2; D[i+3] = s3;
}
-
+ #endif
for( ; i < width; i++ )
{
S = (const ST*)src + i;
{
DT* D = (DT*)dst;
i = vecOp(src, dst, width);
+ #if CV_ENABLE_UNROLLED
for( ; i <= width - 4; i += 4 )
{
ST f = ky[0];
D[i] = castOp(s0); D[i+1] = castOp(s1);
D[i+2] = castOp(s2); D[i+3] = castOp(s3);
}
-
+ #endif
for( ; i < width; i++ )
{
ST s0 = ky[0]*((const ST*)src[0])[i] + _delta;
{
DT* D = (DT*)dst;
i = (this->vecOp)(src, dst, width);
-
+ #if CV_ENABLE_UNROLLED
for( ; i <= width - 4; i += 4 )
{
ST f = ky[0];
D[i] = castOp(s0); D[i+1] = castOp(s1);
D[i+2] = castOp(s2); D[i+3] = castOp(s3);
}
-
+ #endif
for( ; i < width; i++ )
{
ST s0 = ky[0]*((const ST*)src[0])[i] + _delta;
{
DT* D = (DT*)dst;
i = this->vecOp(src, dst, width);
-
+ #if CV_ENABLE_UNROLLED
for( ; i <= width - 4; i += 4 )
{
ST f = ky[0];
D[i] = castOp(s0); D[i+1] = castOp(s1);
D[i+2] = castOp(s2); D[i+3] = castOp(s3);
}
-
+ #endif
for( ; i < width; i++ )
{
ST s0 = _delta;
{
if( is_1_2_1 )
{
+ #if CV_ENABLE_UNROLLED
for( ; i <= width - 4; i += 4 )
{
ST s0 = S0[i] + S1[i]*2 + S2[i] + _delta;
D[i+2] = castOp(s0);
D[i+3] = castOp(s1);
}
+ #else
+ for( ; i < width; i ++ )
+ {
+ ST s0 = S0[i] + S1[i]*2 + S2[i] + _delta;
+ D[i] = castOp(s0);
+ }
+ #endif
}
else if( is_1_m2_1 )
{
+ #if CV_ENABLE_UNROLLED
for( ; i <= width - 4; i += 4 )
{
ST s0 = S0[i] - S1[i]*2 + S2[i] + _delta;
D[i+2] = castOp(s0);
D[i+3] = castOp(s1);
}
+ #else
+ for( ; i < width; i ++ )
+ {
+ ST s0 = S0[i] - S1[i]*2 + S2[i] + _delta;
+ D[i] = castOp(s0);
+ }
+ #endif
}
else
{
+ #if CV_ENABLE_UNROLLED
for( ; i <= width - 4; i += 4 )
{
ST s0 = (S0[i] + S2[i])*f1 + S1[i]*f0 + _delta;
D[i+2] = castOp(s0);
D[i+3] = castOp(s1);
}
+ #else
+ for( ; i < width; i ++ )
+ {
+ ST s0 = (S0[i] + S2[i])*f1 + S1[i]*f0 + _delta;
+ D[i] = castOp(s0);
+ }
+ #endif
}
-
for( ; i < width; i++ )
D[i] = castOp((S0[i] + S2[i])*f1 + S1[i]*f0 + _delta);
}
{
if( f1 < 0 )
std::swap(S0, S2);
-
+ #if CV_ENABLE_UNROLLED
for( ; i <= width - 4; i += 4 )
{
ST s0 = S2[i] - S0[i] + _delta;
D[i+2] = castOp(s0);
D[i+3] = castOp(s1);
}
-
+ #else
+ for( ; i < width; i ++ )
+ {
+ ST s0 = S2[i] - S0[i] + _delta;
+ D[i] = castOp(s0);
+ }
+ #endif
if( f1 < 0 )
std::swap(S0, S2);
}
else
{
+ #if CV_ENABLE_UNROLLED
for( ; i <= width - 4; i += 4 )
{
ST s0 = (S2[i] - S0[i])*f1 + _delta;
D[i+2] = castOp(s0);
D[i+3] = castOp(s1);
}
+ #endif
}
for( ; i < width; i++ )
kp[k] = (const ST*)src[pt[k].y] + pt[k].x*cn;
i = vecOp((const uchar**)kp, dst, width);
-
+ #if CV_ENABLE_UNROLLED
for( ; i <= width - 4; i += 4 )
{
KT s0 = _delta, s1 = _delta, s2 = _delta, s3 = _delta;
D[i] = castOp(s0); D[i+1] = castOp(s1);
D[i+2] = castOp(s2); D[i+3] = castOp(s3);
}
-
+ #endif
for( ; i < width; i++ )
{
KT s0 = _delta;