p?dbtrf

Computes the LU factorization of a n-by-n diagonally dominant-like banded distributed matrix.

Syntax

Fortran:

call psdbtrf(n, bwl, bwu, a, ja, desca, af, laf, work, lwork, info)

call pddbtrf(n, bwl, bwu, a, ja, desca, af, laf, work, lwork, info)

call pcdbtrf(n, bwl, bwu, a, ja, desca, af, laf, work, lwork, info)

call pzdbtrf(n, bwl, bwu, a, ja, desca, af, laf, work, lwork, info)

C:

void psdbtrf (MKL_INT *n , MKL_INT *bwl , MKL_INT *bwu , float *a , MKL_INT *ja , MKL_INT *desca , float *af , MKL_INT *laf , float *work , MKL_INT *lwork , MKL_INT *info );

void pddbtrf (MKL_INT *n , MKL_INT *bwl , MKL_INT *bwu , double *a , MKL_INT *ja , MKL_INT *desca , double *af , MKL_INT *laf , double *work , MKL_INT *lwork , MKL_INT *info );

void pcdbtrf (MKL_INT *n , MKL_INT *bwl , MKL_INT *bwu , MKL_Complex8 *a , MKL_INT *ja , MKL_INT *desca , MKL_Complex8 *af , MKL_INT *laf , MKL_Complex8 *work , MKL_INT *lwork , MKL_INT *info );

void pzdbtrf (MKL_INT *n , MKL_INT *bwl , MKL_INT *bwu , MKL_Complex16 *a , MKL_INT *ja , MKL_INT *desca , MKL_Complex16 *af , MKL_INT *laf , MKL_Complex16 *work , MKL_INT *lwork , MKL_INT *info );

Include Files

  • C: mkl_scalapack.h

Description

The p?dbtrf routine computes the LU factorization of a n-by-n real/complex diagonally dominant-like banded distributed matrix A(1:n, ja:ja+n-1) without pivoting.

Note that the resulting factorization is not the same factorization as returned from LAPACK. Additional permutations are performed on the matrix for the sake of parallelism.

Input Parameters

n

(global) INTEGER. The number of rows and columns in the distributed submatrix A(1:n, ja:ja+n-1); n 0.

bwl

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

(0 ≤ bwln-1).

bwu

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

(0 ≤ bwun-1).

a

(local)

REAL for psdbtrf

DOUBLE PRECISION for pddbtrf

COMPLEX for pcdbtrf

DOUBLE COMPLEX for pzdbtrf.

Pointer into the local memory to an array of local dimension (lld_a,LOCc(ja+n-1)).

Contains the local pieces of the n-by-n distributed banded matrix A(1:n, ja:ja+n-1) to be factored.

ja

(global) INTEGER. The index in the global array A that points to the start of the matrix to be operated on ( which may be either all of A or a submatrix of A).

desca

(global and local) INTEGER array, dimension (dlen_). The array descriptor for the distributed matrix A.

If desca(dtype_) = 501, then dlen_ 7;

else if desca(dtype_) = 1, then dlen_ 9.

laf

(local) INTEGER. The dimension of the array af.

Must be laf NB*(bwl+bwu)+6*(max(bwl,bwu))2 .

If laf is not large enough, an error code will be returned and the minimum acceptable size will be returned in af(1).

work

(local) Same type as a. Workspace array of dimension lwork.

lwork

(local or global) INTEGER. The size of the work array, must be lwork (max(bwl,bwu))2. If lwork is too small, the minimal acceptable size will be returned in work(1) and an error code is returned.

Output Parameters

a

On exit, this array contains details of the factorization. Note that additional permutations are performed on the matrix, so that the factors returned are different from those returned by LAPACK.

af

(local)

REAL for psdbtrf

DOUBLE PRECISION for pddbtrf

COMPLEX for pcdbtrf

DOUBLE COMPLEX for pzdbtrf.

Array, dimension (laf).

Auxiliary Fillin space. Fillin is created during the factorization routine p?dbtrf and this is stored in af.

Note that if a linear system is to be solved using p?dbtrs after the factorization routine, af must not be altered after the factorization.

work(1)

On exit, work(1) contains the minimum value of lwork required for optimum performance.

info

(global) INTEGER.

If info=0, the execution is successful.

info < 0:

If the ith argument is an array and the j-th entry had an illegal value, then info = -(i*100+j); if the i-th argument is a scalar and had an illegal value, then info = -i. info > 0:

If info = kNPROCS, the submatrix stored on processor info and factored locally was not diagonally dominant-like, and the factorization was not completed. If info = k > NPROCS, the submatrix stored on processor info-NPROCS representing interactions with other processors was not nonsingular, and the factorization was not completed.

For more complete information about compiler optimizations, see our Optimization Notice.