Developer Reference for Intel® oneAPI Math Kernel Library for C
mkl_?spffrt2 , mkl_?spffrtx
Computes the partial LDL T factorization of a symmetric matrix using packed storage.
Syntax
voidmkl_sspffrt2 ( float*ap , constMKL_INT*n , constMKL_INT*ncolm , float*work , float*work2 );
voidmkl_dspffrt2 ( double*ap , constMKL_INT*n , constMKL_INT*ncolm , double*work , double*work2 );
voidmkl_cspffrt2 ( MKL_Complex8*ap , constMKL_INT*n , constMKL_INT*ncolm , MKL_Complex8*work , MKL_Complex8*work2 );
voidmkl_zspffrt2 ( MKL_Complex16*ap , constMKL_INT*n , constMKL_INT*ncolm , MKL_Complex16*work , MKL_Complex16*work2 );
voidmkl_sspffrtx ( float*ap , constMKL_INT*n , constMKL_INT*ncolm , float*work , float*work2 );
voidmkl_dspffrtx ( double*ap , constMKL_INT*n , constMKL_INT*ncolm , double*work , double*work2 );
voidmkl_cspffrtx ( MKL_Complex8*ap , constMKL_INT*n , constMKL_INT*ncolm , MKL_Complex8*work , MKL_Complex8*work2 );
voidmkl_zspffrtx ( MKL_Complex16*ap , constMKL_INT*n , constMKL_INT*ncolm , MKL_Complex16*work , MKL_Complex16*work2 );
Include Files
mkl.h
Description
mkl_sspffrt2 mkl_dspffrt2 mkl_cspffrt2 mkl_zspffrt2 mkl_spffrt2 mkl_sspffrtx mkl_dspffrtx mkl_cspffrtx mkl_zspffrtx mkl_spffrtx
The routine computes the partial factorization A = LDLT , where L is a lower triangular matrix and D is a diagonal matrix.
Consider the matrix
\[A = \begin{pmatrix} a & b^T \\ b & C \end{pmatrix}\]
, where a is the element in the first row and first column of A , b is a column vector of size n - 1 containing the elements from the second through n -th column of A , C is the lower-right square submatrix of A , and I is the identity matrix.
The mkl_?spffrt2 routine performs ncolm successive factorizations of the form
\[A = \begin{pmatrix} a & b^T \\ b & C \end{pmatrix} = \begin{pmatrix} a & 0 \\ b & I \end{pmatrix} \begin{pmatrix} a^{-1} & 0 \\ 0 & C - ba^{-1}b^T \end{pmatrix} \begin{pmatrix} a & b^T \\ 0 & I \end{pmatrix}\]
.
The mkl_?spffrtx routine performs ncolm successive factorizations of the form
\[A = \begin{pmatrix} a & b^T \\ b & C \end{pmatrix} = \begin{pmatrix} 1 & 0 \\ ba^{-1} & I \end{pmatrix} \begin{pmatrix} a & 0 \\ 0 & C - ba^{-1}b^T \end{pmatrix} \begin{pmatrix} 1 & a^{-1}b^T \\ 0 & I \end{pmatrix}\]
.
The approximate number of floating point operations performed by real flavors of these routines is (1/6)* ncolm *(2* ncolm2 - 6* ncolm * n + 3* ncolm + 6* n2 - 6* n + 7).
The approximate number of floating point operations performed by complex flavors of these routines is (1/3)* ncolm *(4* ncolm2 - 12* ncolm * n + 9* ncolm + 12* n2 - 18* n + 8).
Input Parameters
ap
Array, size at least max(1, n(n +1)/2). The array ap contains the lower triangular part of the matrix A in packed storage (see Matrix Storage Schemes for :code:uplo = ‘L’ ).
n
The order of matrix A ; n ≥ 0.
ncolm
The number of columns to factor, ncolm ≤ n .
work , work2
Workspace arrays, size of each at least n .
Output Parameters
ap
Overwritten by the factor L . The first ncolm diagonal elements of the input matrix A are replaced with the diagonal elements of D . The subdiagonal elements of the first ncolm columns are replaced with the corresponding elements of L . The rest of the input array is updated as indicated in the Description section.