zgbtrf


NAME

zgbtrf - compute an LU factorization of a complex m-by-n band matrix A using partial pivoting with row interchanges


SYNOPSIS

  SUBROUTINE ZGBTRF( M, N, NSUB, NSUPER, A, LDA, IPIVOT, INFO)
  DOUBLE COMPLEX A(LDA,*)
  INTEGER M, N, NSUB, NSUPER, LDA, INFO
  INTEGER IPIVOT(*)
 
  SUBROUTINE ZGBTRF_64( M, N, NSUB, NSUPER, A, LDA, IPIVOT, INFO)
  DOUBLE COMPLEX A(LDA,*)
  INTEGER*8 M, N, NSUB, NSUPER, LDA, INFO
  INTEGER*8 IPIVOT(*)
 

F95 INTERFACE

  SUBROUTINE GBTRF( [M], [N], NSUB, NSUPER, A, [LDA], IPIVOT, [INFO])
  COMPLEX(8), DIMENSION(:,:) :: A
  INTEGER :: M, N, NSUB, NSUPER, LDA, INFO
  INTEGER, DIMENSION(:) :: IPIVOT
 
  SUBROUTINE GBTRF_64( [M], [N], NSUB, NSUPER, A, [LDA], IPIVOT, [INFO])
  COMPLEX(8), DIMENSION(:,:) :: A
  INTEGER(8) :: M, N, NSUB, NSUPER, LDA, INFO
  INTEGER(8), DIMENSION(:) :: IPIVOT
 

C INTERFACE

#include <sunperf.h>

void zgbtrf(int m, int n, int nsub, int nsuper, doublecomplex *a, int lda, int *ipivot, int *info);

void zgbtrf_64(long m, long n, long nsub, long nsuper, doublecomplex *a, long lda, long *ipivot, long *info);


PURPOSE

zgbtrf computes an LU factorization of a complex m-by-n band matrix A using partial pivoting with row interchanges.

This is the blocked version of the algorithm, calling Level 3 BLAS.


ARGUMENTS

* M (input)
The number of rows of the matrix A. M >= 0.

* N (input)
The number of columns of the matrix A. N >= 0.

* NSUB (input)
The number of subdiagonals within the band of A. NSUB >= 0.

* NSUPER (input)
The number of superdiagonals within the band of A. NSUPER >= 0.

* A (input/output)
On entry, the matrix A in band storage, in rows NSUB+1 to 2*NSUB+NSUPER+1; rows 1 to NSUB of the array need not be set. The j-th column of A is stored in the j-th column of the array A as follows: A(kl+ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(m,j+kl)

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

* LDA (input)
The leading dimension of the array A. LDA >= 2*NSUB+NSUPER+1.

* IPIVOT (output)
The pivot indices; for 1 <= i <= min(M,N), row i of the matrix was interchanged with row IPIVOT(i).

* INFO (output)