?dttrfb
?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 formA = L1*U*L2
where
- L1andL2are unit lower bidiagonal withkandn-k- 1 subdiagonal elements, respectively, wherek=n/2, and
- Uis an upper bidiagonal matrix with nonzeroes in only the main diagonal and first superdiagonal.
Input Parameters
- n
- The order of the matrixA;n≥0.
- dl,d,du
- Arrays containing elements ofA.The arraydlof dimension(contains the subdiagonal elements ofn- 1)A.The arraydof dimensionncontains the diagonal elements ofA.The arrayduof dimension(contains the superdiagonal elements ofn- 1)A.
Output Parameters
- dl
- Overwritten by the(multipliers that define the matrixn-1)Lfrom theLUfactorization ofA.
- d
- Overwritten by thendiagonal element reciprocals of the upper triangular matrixUfrom the factorization ofA.
- du
- Overwritten by the(elements of the superdiagonal ofn-1)U.
- info
- If, the execution is successful.info= 0If, theinfo=-ii-th parameter had an illegal value.Ifis 0. The factorization has been completed, butinfo=i,uiiUis exactly singular. Division by zero will occur if you use the factorUfor solving a system of linear equations.
Application Notes
A diagonally dominant tridiagonal system is defined such that
|| > || + ||
for any d
i
dl
i
-1du
i
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?dttrfbfactorization to non-diagonally dominant systems may lead to an accuracy loss, or false singularity detected due to no pivoting.