Contents

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 array
ap
contains the lower triangular part of the matrix
A
in packed storage (see Matrix Storage Schemes for
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.
Specifying
ncolm
=
n
results in complete factorization
A
=
L
D
L
T
.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804