Developer Reference

  • 2020
  • 07/15/2020
  • Public Content
Contents

NormDiff

Computes the C, L1, L2, or L2Sqr norm of two vectors' difference.

Syntax

IppStatus ippsNormDiff_Inf_32f(const Ipp32f*
pSrc1
, const Ipp32f*
pSrc2
, int
len
, Ipp32f*
pNorm
);
IppStatus ippsNormDiff_Inf_64f(const Ipp64f*
pSrc1
, const Ipp64f*
pSrc2
, int
len
, Ipp64f*
pNorm
);
IppStatus ippsNormDiff_Inf_16s32f(const Ipp16s*
pSrc1
, const Ipp16s*
pSrc2
, int
len
, Ipp32f*
pNorm
);
IppStatus ippsNormDiff_Inf_32fc32f(const Ipp32fc*
pSrc1
, const Ipp32fc*
pSrc2
, int
len
, Ipp32f*
pNorm
);
IppStatus ippsNormDiff_Inf_64fc64f(const Ipp64fc*
pSrc1
, const Ipp64fc*
pSrc2
, int
len
, Ipp64f*
pNorm
);
IppStatus ippsNormDiff_L1_32f(const Ipp32f*
pSrc1
, const Ipp32f*
pSrc2
, int
len
, Ipp32f*
pNorm
);
IppStatus ippsNormDiff_L1_64f(const Ipp64f*
pSrc1
, const Ipp64f*
pSrc2
, int
len
, Ipp64f*
pNorm
);
IppStatus ippsNormDiff_L1_16s32f(const Ipp16s*
pSrc1
, const Ipp16s*
pSrc2
, int
len
, Ipp32f*
pNorm
);
IppStatus ippsNormDiff_L1_32fc64f(const Ipp32fc*
pSrc1
, const Ipp32fc*
pSrc2
, int
len
, Ipp64f*
pNorm
);
IppStatus ippsNormDiff_L1_64fc64f(const Ipp64fc*
pSrc1
, const Ipp64fc*
pSrc2
, int
len
, Ipp64f*
pNorm
);
IppStatus ippsNormDiff_L2_32f(const Ipp32f*
pSrc1
, const Ipp32f*
pSrc2
, int
len
, Ipp32f*
pNorm
);
IppStatus ippsNormDiff_L2_64f(const Ipp64f*
pSrc1
, const Ipp64f*
pSrc2
, int
len
, Ipp64f*
pNorm
);
IppStatus ippsNormDiff_L2_16s32f(const Ipp16s*
pSrc1
, const Ipp16s*
pSrc2
, int
len
, Ipp32f*
pNorm
);
IppStatus ippsNormDiff_L2_32fc64f(const Ipp32fc*
pSrc1
, const Ipp32fc*
pSrc2
, int
len
, Ipp64f*
pNorm
);
IppStatus ippsNormDiff_L2_64fc64f(const Ipp64fc*
pSrc1
, const Ipp64fc*
pSrc2
, int
len
, Ipp64f*
pNorm
);
IppStatus ippsNormDiff_L2Sqr_16s64s_Sfs(const Ipp16s*
pSrc1
, const Ipp16s*
pSrc2
, int
len
, Ipp64s*
pNorm
, int
scaleFactor
);
IppStatus ippsNormDiff_Inf_16s32s_Sfs(const Ipp16s*
pSrc1
, const Ipp16s*
pSrc2
, int
len
, Ipp32s*
pNorm
, int
scaleFactor
);
IppStatus ippsNormDiff_L1_16s32s_Sfs(const Ipp16s*
pSrc1
, const Ipp16s*
pSrc2
, int
len
, Ipp32s*
pNorm
, int
scaleFactor
);
IppStatus ippsNormDiff_L1_16s64s_Sfs(const Ipp16s*
pSrc1
, const Ipp16s*
pSrc2
, int
len
, Ipp64s*
pNorm
, int
scaleFactor
);
IppStatus ippsNormDiff_L2_16s32s_Sfs(const Ipp16s*
pSrc1
, const Ipp16s*
pSrc2
, int
len
, Ipp32s*
pNorm
, int
scaleFactor
);
Include Files
ipps.h
Domain Dependencies
Headers:
ippcore.h
,
ippvm.h
Libraries:
ippcore.lib
,
ippvm.lib
Parameters
pSrc1
,
pSrc2
Pointers to the two source vectors;
pSrc2
can be
NULL
.
pNorm
Pointer to the output result.
len
Number of elements in the vector.
scaleFactor
Scale factor, refer to Integer Scaling.
Description
This function computes the
C
,
L1
,
L2
, or
L2Sqr
norm of the source vectors' difference, and stores the result in
pNorm
.
ippsNormDiff_Inf
.
The function
ippsNormDiff_Inf
computes the
C
norm defined by the formula:
ippsNormDiff_L1
.
The function
ippsNormDiff_L1
computes the
L1
norm defined by the formula:
ippsNormDiff_L2
.
The function
ippsNormDiff_L2
computes the
L2
norm defined by the formula:
ippsNormDiff_L2Sqr
.
The function
ippsNormDiff_L2Sqr
computes the
L2Sqr
norm defined as square of the
L2
norm.
Functions with
Sfs
suffixes perform scaling of the result value in accordance with the
scaleFactor
value.
Return Values
ippStsNoErr
Indicates no error.
ippStsNullPtrErr
Indicates an error when the
pSrc1
,
pSrc2
, or
pNorm
pointer is
NULL
.
ippStsSizeErr
Indicates an error when
len
is less than or equal to 0.

Example

The example below shows how to use the function
ippsNormDiff
.
int norm( void ) { Ipp16s x[LEN]; Ipp32f Norm[3]; IppStatus st; int i; for( i=0; i<LEN; ++i ) x[i] = (Ipp16s)rand(); ippsNormDiff_Inf_16s32f( x, 0, LEN, Norm ); ippsNormDiff_L1_16s32f( x, 0, LEN, Norm+1 ); st = ippsNormDiff_L2_16s32f( x, 0, LEN, Norm+2 ); printf_32f(“Norm (oo,L1,L2) =”, Norm, 3, st ); return Norm[2] <= Norm[1] && Norm[1] <= LEN*Norm[0]; }
Output:
Norm (oo,L1,L2) = 31993.000000 1526460.000000 180270.781250 Matlab* analog: >> x = 32767*rand(1,100);norm(x,inf),norm(x,1),norm(x,2)

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804