Quantcast
Channel: Fortran
Viewing all articles
Browse latest Browse all 3108

?dbtf2

$
0
0


Computes an LU factorization of a general band matrix with no pivoting (local unblocked algorithm).

Syntax

call sdbtf2(m,n,kl,ku,ab,ldab,info)

call ddbtf2(m,n,kl,ku,ab,ldab,info)

call cdbtf2(m,n,kl,ku,ab,ldab,info)

call zdbtf2(m,n,kl,ku,ab,ldab,info)

Include Files

  • C: mkl_scalapack.h

Description

The ?dbtf2 routine computes an LU factorization of a general real/complex m-by-n band matrix A without using partial pivoting with row interchanges.

This is the unblocked version of the algorithm, calling BLAS Routines and Functions.

Input Parameters

m

INTEGER. The number of rows of the matrix A(m 0).

n

INTEGER. The number of columns in A(n 0).

kl

INTEGER. The number of sub-diagonals within the band of A(kl 0).

ku

INTEGER. The number of super-diagonals within the band of A(ku 0).

ab

REAL for sdbtf2

DOUBLE PRECISION for ddbtf2

COMPLEX for cdbtf2

COMPLEX*16 for zdbtf2.

Array, DIMENSION (ldab, n).

The matrix A in band storage, in rows kl+1 to 2kl+ku+1; rows 1 to kl of the array need not be set. The j-th column of A is stored in the j-th column of the array ab as follows: ab(kl+ku+1+i-j,j) = A(i,j) for max(1,j-ku) ≤ i≤ min(m,j+kl).

ldab

INTEGER. The leading dimension of the array ab.

(ldab 2kl + ku +1)

Output Parameters

ab

On exit, details of the factorization: U is stored as an upper triangular band matrix with kl+ku superdiagonals in rows 1 to kl+ku+1, and the multipliers used during the factorization are stored in rows kl+ku+2 to 2*kl+ku+1. See the Application Notes below for further details.

info

INTEGER.

= 0: successful exit

< 0: if info = - i, the i-th argument had an illegal value,

> 0: if info = + i, u(i,i) is 0. The factorization has been completed, but the factor U is exactly singular. Division by 0 will occur if you use the factor U for solving a system of linear equations.

Application Notes

The band storage scheme is illustrated by the following example, when m = n = 6, kl = 2, ku = 1:


Equation



The routine does not use array elements marked *; elements marked + need not be set on entry, but the routine requires them to store elements of U, because of fill-in resulting from the row interchanges.

Anglais

Viewing all articles
Browse latest Browse all 3108

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>