Visible to Intel only — GUID: GUID-E962AE2C-2E82-4BBE-8F1D-5E7EABFE551F
Visible to Intel only — GUID: GUID-E962AE2C-2E82-4BBE-8F1D-5E7EABFE551F
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