Visible to Intel only — GUID: GUID-2EDC44EA-7BE6-43F1-B034-1B473D4AB54C
Visible to Intel only — GUID: GUID-2EDC44EA-7BE6-43F1-B034-1B473D4AB54C
CdfNormInv
Computes the inverse cumulative normal distribution function values of vector elements.
Syntax
IppStatus ippsCdfNormInv_32f_A11 (const Ipp32f* pSrc, Ipp32f* pDst, Ipp32s len);
IppStatus ippsCdfNormInv_32f_A21 (const Ipp32f* pSrc, Ipp32f* pDst, Ipp32s len);
IppStatus ippsCdfNormInv_32f_A24 (const Ipp32f* pSrc, Ipp32f* pDst, Ipp32s len);
IppStatus ippsCdfNormInv_64f_A26 (const Ipp64f* pSrc, Ipp64f* pDst, Ipp32s len);
IppStatus ippsCdfNormInv_64f_A50 (const Ipp64f* pSrc, Ipp64f* pDst, Ipp32s len);
IppStatus ippsCdfNormInv_64f_A53 (const Ipp64f* pSrc, Ipp64f* pDst, Ipp32s len);
Include Files
ippvm.h
Domain Dependencies
Headers: ippcore.h
Libraries: ippcore.lib
Parameters
pSrc |
Pointer to the source vector. |
pDst |
Pointer to the destination vector. |
len |
Number of elements in the vectors. |
Description
This function computes the inverse cumulative normal distribution function values of pSrc vector elements and stores the result in the corresponding element of pDst.
For single precision data:
function flavor ippsCdfNormInv_32f_A11 guarantees 11 correctly rounded bits of significand, or at least 3 exact decimal digits;
function flavor ippsCdfNormInv_32f_A21 guarantees 21 correctly rounded bits of significand, or 4 ulps, or about 6 exact decimal digits;
function flavor ippsCdfNormInv_32f_A24 guarantees 24 correctly rounded bits of significand, including the implied bit, with the maximum guaranteed error within 1 ulp.
For double precision data:
function flavor ippsCdfNormInv_64f_A26 guarantees 26 correctly rounded bits of significand, or 6.7E+7 ulps, or approximately 8 exact decimal digits;
function flavor ippsCdfNormInv_64f_A50 guarantees 50 correctly rounded bits of significand, or 4 ulps, or approximately 15 exact decimal digits;
function flavor ippsCdfNormInv_64f_A53 guarantees 53 correctly rounded bits of significand, including the implied bit, with the maximum guaranteed error within 1 ulp.
The computation is performed as follows:
pDst[n] = CdfNormInv(pSrc[n]), 0 ≤ n < len, where CdfNormInv(x) = CdfNorm-1(x), and CdfNorm(x) denotes the cumulative normal distribution function:
The example below shows how to use the function ippsCdfNormInv.
Return Values
ippStsNoErr |
Indicates no error. |
ippStsNullPtrErr |
Indicates an error when pSrc or pDst pointer is NULL. |
ippStsSizeErr |
Indicates an error when len is less than or equal to 0. |
ippStsDomain |
Indicates a warning that the argument is out of the function domain, that is, at least one of pSrc elements is outside the function domain [0; 1]. |
ippStsSingularity |
Indicates a warning that the argument is a singularity point, that is, at least one of the elements of pSrc is equal to 0 or 1. |
Using ippsCdfNormInv Function
IppStatus ippsCdfNormInv_32f_A24_sample(void)
{
const Ipp32f x[4] = {+0.085, +0.543, +1.809, +0.953};
Ipp32f y[4];
IppStatus st = ippsCdfNormInv_32f_A24( x, y, 4 );
printf(" ippsCdfNormInv_32f_A24:\n");
printf(" x = %+.3f %+.3f %+.3f %+.3f \n", x[0], x[1], x[2], x[3]);
printf(" y = %+.3f %+.3f %+.3f %+.3f \n", y[0], y[1], y[2], y[3]);
return st;
}
Output results:
ippsCdfNormInv_32f_A24:
x = +0.085 +0.543 +1.809 +0.953
y = -1.372 +0.108 +0.874 +1.675