Developer Reference

Contents

?dttrfb

Computes the factorization of a diagonally dominant tridiagonal matrix.

Syntax

void
sdttrfb
(
const
MKL_INT
*
n
,
float
*
dl
,
float
*
d
,
const
float
*
du
,
MKL_INT
*
info
);
void
ddttrfb
(
const
MKL_INT
*
n
,
double
*
dl
,
double
*
d
,
const
double
*
du
,
MKL_INT
*
info
);
void
cdttrfb
(
const
MKL_INT
*
n
,
MKL_Complex8
*
dl
,
MKL_Complex8
*
d
,
const
MKL_Complex8
*
du
,
MKL_INT
*
info
);
void
zdttrfb_
(
const
MKL_INT
*
n
,
MKL_Complex16
*
dl
,
MKL_Complex16
*
d
,
const
MKL_Complex16
*
du
,
MKL_INT
*
info
);
Include Files
  • mkl.h
Description
The
?dttrfb
routine computes the factorization of a real or complex tridiagonal matrix
A
with the BABE (Burning At Both Ends) algorithm without pivoting. The factorization has the form
A
=
L
1
*
U
*
L
2
where
  • L
    1
    and
    L
    2
    are unit lower bidiagonal with
    k
    and
    n
    -
    k
    - 1 subdiagonal elements, respectively, where
    k
    =
    n
    /2, and
  • U
    is an upper bidiagonal matrix with nonzeroes in only the main diagonal and first superdiagonal.
Input Parameters
n
The order of the matrix
A
;
n
0.
dl
,
d
,
du
Arrays containing elements of
A
.
The array
dl
of dimension
(
n
- 1)
contains the subdiagonal elements of
A
.
The array
d
of dimension
n
contains the diagonal elements of
A
.
The array
du
of dimension
(
n
- 1)
contains the superdiagonal elements of
A
.
Output Parameters
dl
Overwritten by the
(
n
-1)
multipliers that define the matrix
L
from the
LU
factorization of
A
.
d
Overwritten by the
n
diagonal element reciprocals of the upper triangular matrix
U
from the factorization of
A
.
du
Overwritten by the
(
n
-1)
elements of the superdiagonal of
U
.
info
If
info
= 0
, the execution is successful.
If
info
=
-i
, the
i
-th parameter had an illegal value.
If
info
=
i
,
u
i
i
is 0. The factorization has been completed, but
U
is exactly singular. Division by zero will occur if you use the factor
U
for solving a system of linear equations.
Application Notes
A diagonally dominant tridiagonal system is defined such that
|
d
i
| > |
dl
i
-1
| + |
du
i
|
for any
i
:
1 <
i
<
n
, and
|
d
1
| > |
du
1
|, |
d
n
| > |
dl
n
-1
|
The underlying BABE algorithm is designed for diagonally dominant systems. Such systems are free from the numerical stability issue unlike the canonical systems that use elimination with partial pivoting (see
?gttrf
). The diagonally dominant systems are much faster than the canonical systems.
  • The current implementation of BABE has a potential accuracy issue on very small or large data close to the underflow or overflow threshold respectively. Scale the matrix before applying the solver in the case of such input data.
  • Applying the
    ?dttrfb
    factorization to non-diagonally dominant systems may lead to an accuracy loss, or false singularity detected due to no pivoting.

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