Intel® Integrated Performance Primitives (Intel® IPP) Developer Guide and Reference

ID 790148
Date 3/22/2024
Public
Document Table of Contents

Ln

Computes the natural logarithm of pixel values in a source image and writes the results into the destination image.

Syntax

Case 1: Not-in-place operation on integer data

IppStatus ippiLn_<mod>(const Ipp<datatype>* pSrc, int srcStep, Ipp<datatype>* pDst, int dstStep, IppiSize roiSize, int scaleFactor);

Supported values for mod:

8u_C1RSfs

16u_C1RSfs

16s_C1RSfs

8u_C3RSfs

16u_C3RSfs

16s_C3RSfs

Case 2: Not-in-place operation on floating-point data

IppStatus ippiLn_<mod>(const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep, IppiSize roiSize);

Supported values for mod:

32f_C1R

32f_C3R

Case 3: In-place operation on integer data

IppStatus ippiLn_<mod>(Ipp<datatype>* pSrcDst, int srcDstStep, IppiSize roiSize, int scaleFactor);

Supported values for mod:

8u_C1IRSfs

16u_C1IRSfs

16s_C1IRSfs

8u_C3IRSfs

16u_C3IRSfs

16s_C3IRSfs

Case 4: In-place operation on floating-point data

IppStatus ippiLn_<mod>(Ipp32f* pSrcDst, int srcDstStep, IppiSize roiSize);

Supported values for mod:

32f_C1IR

32f_C3IR

Include Files

ippi.h

Domain Dependencies

Headers: ippcore.h, ippvm.h, ipps.h

Libraries: ippcore.lib, ippvm.lib, ipps.lib

Parameters

pSrc

Pointer to the source image ROI.

srcStep

Distance in bytes between starts of consecutive lines in the source image.

pDst

Pointer to the destination image ROI.

dstStep

Distance in bytes between starts of consecutive lines in the destination image.

pSrcDst

Pointer to the source and destination image ROI for the in-place operation.

srcDstStep

Distance in bytes between starts of consecutive lines in the source and destination image for the in-place operation.

roiSize

Size of the source and destination ROI in pixels.

scaleFactor

Scale factor (see Integer Result Scaling).

Description

This function operates with ROI (see Regions of Interest in Intel IPP).

This function computes natural logarithms of pixel values of the source image ROI and writes the resultant values to the destination image ROI. The function flavors operating on integer data apply fixed scaling defined by scaleFactor to the internally computed values, and saturate the results before writing them to the destination image ROI.

If a source pixel value is zero or negative, the function issues a corresponding warning and continues execution with the corresponding result value (see appendix “Handling of Special Cases” for more information).

When several inputs have zero or negative value, the status code returned by the function corresponds to the first encountered case as illustrated in the code example below.

Return Values

ippStsNoErr

Indicates no error. Any other value indicates an error or a warning.

ippStsNullPtrErr

Indicates an error condition if one of the specified pointers is NULL.

ippStsSizeErr

Indicates an error condition if roiSize has a field with zero or negative value.

ippStsStepErr

Indicates an error condition if srcStep,dstStep, or srcDstStep has a zero or negative value.

ippStsLnZeroArg

Indicates a warning that a source pixel has a zero value.

ippStsLnNegArg

Indicates a warning that a source pixel has a negative value.

Example

The code example below shows how to use Ln function.

IppStatus ln( void ) {
   Ipp32f img[8*8];
   IppiSize roi = { 8, 8 };
   IppStatus st;
   ippiSet_32f_C1R( (float)IPP_E, img, 8*4, roi );
   img[0] = -0;
   img[1] = -1;
   st = ippiLn_32f_C1IR( img, 8*sizeof(Ipp32f), roi );
   printf( "%f %f %f\n", img[0], img[1], img[2] );
   return st;
}

Output values:

-1.#INF00 -1.#IND00 1.000000

Status value and message:

(7) Zero value(s) of argument in the Ln function