mkl_?spffrt2, mkl_?spffrtx
mkl_?spffrt2
, mkl_?spffrtx
Computes the partial LDL
T
factorization of a symmetric matrix using packed storage.Syntax
void
mkl_sspffrt2
(
float
*ap
,
const
MKL_INT
*n
,
const
MKL_INT
*ncolm
,
float
*work
,
float
*work2
);
void
mkl_dspffrt2
(
double
*ap
,
const
MKL_INT
*n
,
const
MKL_INT
*ncolm
,
double
*work
,
double
*work2
);
void
mkl_cspffrt2
(
MKL_Complex8
*ap
,
const
MKL_INT
*n
,
const
MKL_INT
*ncolm
,
MKL_Complex8
*work
,
MKL_Complex8
*work2
);
void
mkl_zspffrt2
(
MKL_Complex16
*ap
,
const
MKL_INT
*n
,
const
MKL_INT
*ncolm
,
MKL_Complex16
*work
,
MKL_Complex16
*work2
);
void
mkl_sspffrtx
(
float
*ap
,
const
MKL_INT
*n
,
const
MKL_INT
*ncolm
,
float
*work
,
float
*work2
);
void
mkl_dspffrtx
(
double
*ap
,
const
MKL_INT
*n
,
const
MKL_INT
*ncolm
,
double
*work
,
double
*work2
);
void
mkl_cspffrtx
(
MKL_Complex8
*ap
,
const
MKL_INT
*n
,
const
MKL_INT
*ncolm
,
MKL_Complex8
*work
,
MKL_Complex8
*work2
);
void
mkl_zspffrtx
(
MKL_Complex16
*ap
,
const
MKL_INT
*n
,
const
MKL_INT
*ncolm
,
MKL_Complex16
*work
,
MKL_Complex16
*work2
);
Include Files
- mkl.h
Description
The routine computes the partial factorization
A
= L
D
L
T
, where L
is a lower triangular matrix and D
is a diagonal matrix.The routine assumes that the matrix
A
is factorizable. The routine does not perform pivoting and does not handle diagonal elements which are zero, which cause the routine to produce incorrect results without any indication.Consider the matrix
, 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

The
.
mkl_?spffrtx
routine performs ncolm
successive factorizations of the form

The approximate number of floating point operations performed by
real flavors of these routines is (1/6)*
ncolm
*(2*ncolm
2
- 6*ncolm
*n
+ 3*ncolm
+
6*n
2
- 6*n
+ 7).The approximate number of floating point operations performed by
complex flavors of these routines is (1/3)*
ncolm
*(4*ncolm
2
- 12*ncolm
*n
+ 9*ncolm
+
12*n
2
- 18*n
+ 8).Input Parameters
- ap
- Array, size at least max(1,n(n+1)/2). The arrayapcontains the lower triangular part of the matrixAin packed storage (see Matrix Storage Schemes foruplo='L').
- n
- The order of matrixA;n≥0.
- ncolm
- The number of columns to factor,ncolm≤n.
- work,work2
- Workspace arrays, size of each at leastn.
Output Parameters
- ap
- Overwritten by the factorL. The firstncolmdiagonal elements of the input matrixAare replaced with the diagonal elements ofD. The subdiagonal elements of the firstncolmcolumns are replaced with the corresponding elements ofL. The rest of the input array is updated as indicated in the Description section.Specifyingncolm=nresults in complete factorizationA=LDLT.