CGBBRD  - reduce a complex general m-by-n band matrix A to
       real upper bidiagonal form B by a unitary transformation


SYNOPSIS

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

           CHARACTER      VECT

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

           REAL           D( * ), E( * ), RWORK( * )

           COMPLEX        AB( LDAB, * ), C( LDC, * ), PT( LDPT, *
                          ), Q( LDQ, * ), WORK( * )


PURPOSE

       CGBBRD reduces a complex general m-by-n band matrix  A  to
       real  upper bidiagonal form B by a unitary 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) COMPLEX 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) REAL array, dimension (min(M,N))
               The  diagonal elements of the bidiagonal matrix B.

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

       Q       (output) COMPLEX array, dimension (LDQ,M)
               If VECT = 'Q' or 'B', the m-by-m unitary matrix Q.
               If VECT = 'N' or 'P', the array Q  is  not  refer­
               enced.

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

       PT      (output) COMPLEX array, dimension (LDPT,N)
               If  VECT  =  'P' or 'B', the n-by-n unitary 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) COMPLEX 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) COMPLEX array, dimension (max(M,N))

       RWORK   (workspace) REAL array, dimension (max(M,N))

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


Man(1) output converted with man2html