DGBBRD(3) LAPACK routine of NEC Numeric Library Collection DGBBRD(3) NAME DGBBRD SYNOPSIS SUBROUTINE DGBBRD (VECT, M, N, NCC, KL, KU, AB, LDAB, D, E, Q, LDQ, PT, LDPT, C, LDC, WORK, INFO) PURPOSE DGBBRD reduces a real general m-by-n band matrix A to upper bidiagonal form B by an orthogonal transformation: Q**T * A * P = B. The routine computes B, and optionally forms Q or P**T, or computes Q**T*C for a given matrix C. ARGUMENTS VECT (input) VECT is CHARACTER*1 Specifies whether or not the matrices Q and P**T are to be formed. = 'N': do not form Q or P**T; = 'Q': form Q only; = 'P': form P**T only; = 'B': form both. M (input) M is INTEGER The number of rows of the matrix A. M >= 0. N (input) N is INTEGER The number of columns of the matrix A. N >= 0. NCC (input) NCC is INTEGER The number of columns of the matrix C. NCC >= 0. KL (input) KL is INTEGER The number of subdiagonals of the matrix A. KL >= 0. KU (input) KU is INTEGER The number of superdiagonals of the matrix A. KU >= 0. AB (input/output) AB is DOUBLE PRECISION array, dimension (LDAB,N) On entry, the m-by-n band matrix A, stored in rows 1 to KL+KU+1. The j-th column of A is stored in the j-th column of the array AB as follows: AB(ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(m,j+kl). On exit, A is overwritten by values generated during the reduction. LDAB (input) LDAB is INTEGER The leading dimension of the array A. LDAB >= KL+KU+1. D (output) D is DOUBLE PRECISION array, dimension (min(M,N)) The diagonal elements of the bidiagonal matrix B. E (output) E is DOUBLE PRECISION array, dimension (min(M,N)-1) The superdiagonal elements of the bidiagonal matrix B. Q (output) Q is DOUBLE PRECISION array, dimension (LDQ,M) If VECT = 'Q' or 'B', the m-by-m orthogonal matrix Q. If VECT = 'N' or 'P', the array Q is not referenced. LDQ (input) LDQ is INTEGER The leading dimension of the array Q. LDQ >= max(1,M) if VECT = 'Q' or 'B'; LDQ >= 1 otherwise. PT (output) PT is DOUBLE PRECISION array, dimension (LDPT,N) If VECT = 'P' or 'B', the n-by-n orthogonal matrix P'. If VECT = 'N' or 'Q', the array PT is not referenced. LDPT (input) LDPT is INTEGER The leading dimension of the array PT. LDPT >= max(1,N) if VECT = 'P' or 'B'; LDPT >= 1 otherwise. C (input/output) C is DOUBLE PRECISION array, dimension (LDC,NCC) On entry, an m-by-ncc matrix C. On exit, C is overwritten by Q**T*C. C is not referenced if NCC = 0. LDC (input) LDC is INTEGER The leading dimension of the array C. LDC >= max(1,M) if NCC > 0; LDC >= 1 if NCC = 0. WORK (output) WORK is DOUBLE PRECISION array, dimension (2*max(M,N)) INFO (output) INFO is INTEGER = 0: successful exit. < 0: if INFO = -i, the i-th argument had an illegal value. LAPACK routine 31 October 2017 DGBBRD(3)