Decomposes square matrix into product of upper and lower triangular matrices.
Case 1: Matrix operation
IppStatus ippmLUDecomp_m_32f(const Ipp32f* pSrc, int srcStride1, int srcStride2, int* pDstIndex, Ipp32f* pDst, int dstStride1, int dstStride2, int widthHeight);
IppStatus ippmLUDecomp_m_64f(const Ipp64f* pSrc, int srcStride1, int srcStride2, int* pDstIndex, Ipp64f* pDst, int dstStride1, int dstStride2, int widthHeight);
IppStatus ippmLUDecomp_m_32f_P(const Ipp32f** ppSrc, int srcRoiShift, int* pDstIndex, Ipp32f** ppDst, int dstRoiShift, int widthHeight);
IppStatus ippmLUDecomp_m_64f_P(const Ipp64f** ppSrc, int srcRoiShift, int* pDstIndex, Ipp64f** ppDst, int dstRoiShift, int widthHeight);
Case 2: Matrix array operation
IppStatus ippmLUDecomp_ma_32f(const Ipp32f* pSrc, int srcStride0, int srcStride1, int srcStride2, int* pDstIndex, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int widthHeight, int count);
IppStatus ippmLUDecomp_ma_64f(const Ipp64f* pSrc, int srcStride0, int srcStride1, int srcStride2, int* pDstIndex, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int widthHeight, int count);
IppStatus ippmLUDecomp_ma_32f_P(const Ipp32f** ppSrc, int srcRoiShift, int srcStride0, int* pDstIndex, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int widthHeight, int count);
IppStatus ippmLUDecomp_ma_64f_P(const Ipp64f** ppSrc, int srcRoiShift, int srcStride0, int* pDstIndex, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int widthHeight, int count);
IppStatus ippmLUDecomp_ma_32f_L(const Ipp32f** ppSrc, int srcRoiShift, int srcStride1, int srcStride2, int* pDstIndex, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int widthHeight, int count);
IppStatus ippmLUDecomp_ma_64f_L(const Ipp64f** ppSrc, int srcRoiShift, int srcStride1, int srcStride2, int* pDstIndex, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int widthHeight, int count);
pSrc, ppSrc |
Pointer to the source matrix or array of matrices. |
srcStride0 |
Stride between the matrices in the source array. |
srcStride1 |
Stride between the rows in the source matrix(ces). |
srcStride2 |
Stride between the elements in the source matrix(ces). |
srcRoiShift |
ROI shift in the source matrix(ces). |
pDstIndex |
Pointer to array of pivot indices, where row i interchanges with row index(i). The array size can be more than or equal to widthHeight. If the operation is performed on an array of matrices, the size of the array of indices must be more than or equal to count *widthHeight. |
pDst, ppDst |
Pointer to the destination matrix or array of matrices. |
dstStride0 |
Stride between the matrices in the destination array. |
dstStride1 |
Stride between the rows in the destination matrix. |
dstStride2 |
Stride between the elements in the destination matrix. |
dstRoiShift |
ROI shift in the destination matrix. |
widthHeight |
Size of the square matrix. |
count |
Number of matrices in the array. |
The function ippmLUDecomp is declared in the ippm.h header file. The function represents the source matrix pSrc or ppSrc as a product of two matrices L and U, where L is the lower triangular with unit diagonal elements and U is the upper triangular (see Figure “LU Decomposition Matrix Storage”). Both L and U are stored in pDstor ppDst. Matrix elements located below the matrix diagonal are the lower triangular matrix L. The unit diagonal elements of the matrix L are not stored. The remaining matrix elements are the upper triangular matrix U. If necessary, the function implements the algorithm with partial pivoting that interchanges rows. Array of pivot indices is stored in pDstIndex.
ippStsOk |
Returns no error. |
ippStsNullPtrErr |
Returns an error when at least one input pointer is NULL. |
ippStsSizeErr |
Returns an error when the size of the source matrix is equal to 0. |
ippStsSingularErr |
Returns an error when the source matrix is singular. |
ippStsStrideMatrixErr |
Returns an error when the stride value is not positive or not divisible by size of data type. |
ippStsRoiShiftMatrixErr |
Returns an error when the roiShift value is negative or not divisible by size of data type. |
ippStsCountMatrixErr |
Returns an error when the count value is less or equal to zero. |
Copyright © 2000 - 2010, Intel Corporation. All rights reserved.