DGBBRD  -  reduce  a  real general m-by-n band matrix A to
       upper bidiagonal form B by an orthogonal transformation


SYNOPSIS

       SUBROUTINE DGBBRD( VECT, M, N, NCC, KL, KU, AB,  LDAB,  D,
                          E, Q, LDQ, PT, LDPT, C, LDC, WORK, INFO
                          )

           CHARACTER      VECT

           INTEGER        INFO, KL, KU, LDAB, LDC, LDPT, LDQ,  M,
                          N, NCC

           DOUBLE         PRECISION  AB(  LDAB, * ), C( LDC, * ),
                          D( * ), E( * ), PT( LDPT, * ), Q(  LDQ,
                          * ), WORK( * )


PURPOSE

       DGBBRD  reduces  a  real  general  m-by-n band matrix A to
       upper bidiagonal form B by an  orthogonal  transformation:
       Q'  *  A  * P = B.  The routine computes B, and optionally
       forms Q or P', or computes Q'*C for a given matrix C.


ARGUMENTS

       VECT    (input) CHARACTER*1
               Specifies whether or not the matrices Q and P' are
               to be formed.  = 'N': do not form Q or P';
               = 'Q': form Q only;
               = 'P': form P' only;
               = 'B': form both.

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

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

       NCC     (input) INTEGER
               The  number of columns of the matrix C.  NCC >= 0.

       KL      (input) INTEGER
               The number of subdiagonals of the matrix A. KL  >=
               0.

       KU      (input) INTEGER
               The  number  of superdiagonals of the matrix A. KU
               >= 0.

       AB      (input/output) 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

               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) INTEGER
               The  leading  dimension  of  the  array A. LDAB >=
               KL+KU+1.

       D       (output) DOUBLE PRECISION array, dimension
               (min(M,N))
               The  diagonal elements of the bidiagonal matrix B.

       E       (output) DOUBLE PRECISION array, dimension
               (min(M,N)-1)
               The   superdiagonal  elements  of  the  bidiagonal
               matrix B.

       Q       (output) 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  ref­
               erenced.

       LDQ     (input) INTEGER
               The  leading  dimension  of  the  array Q.  LDQ >=
               max(1,M) if VECT = 'Q' or 'B'; LDQ >= 1 otherwise.

       PT      (output) 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) INTEGER
               The leading dimension of the array  PT.   LDPT  >=
               max(1,N)  if  VECT  = 'P' or 'B'; LDPT >= 1 other­
               wise.

       C        (input/output)   DOUBLE   PRECISION   array,
               dimension (LDC,NCC)
               On entry, an m-by-ncc matrix C.   On  exit,  C  is
               overwritten by Q'*C.  C is not referenced if NCC =
               0.

       LDC     (input) INTEGER
               The leading dimension of  the  array  C.   LDC  >=
               max(1,M) if NCC > 0; LDC >= 1 if NCC = 0.

       WORK       (workspace)    DOUBLE   PRECISION   array,
               dimension (2*max(M,N))

       INFO    (output) INTEGER
               = 0:  successful exit.
               <  0:   if  INFO  =  -i,  the i-th argument had an



Man(1) output converted with man2html