Loading...
Searching...
No Matches

## zgbbrd()

subroutine zgbbrd | ( | character | vect,
|  | integer | m,
|  | integer | n,
|  | integer | ncc,
|  | integer | kl,
|  | integer | ku,
|  | complex*16, dimension( ldab, * ) | ab,
|  | integer | ldab,
|  | double precision, dimension( * ) | d,
|  | double precision, dimension( * ) | e,
|  | complex*16, dimension( ldq, * ) | q,
|  | integer | ldq,
|  | complex*16, dimension( ldpt, * ) | pt,
|  | integer | ldpt,
|  | complex*16, dimension( ldc, * ) | c,
|  | integer | ldc,
|  | complex*16, dimension( * ) | work,
|  | double precision, dimension( * ) | rwork,
|  | integer | info )

ZGBBRD

Download ZGBBRD + dependencies [TGZ] [ZIP] [TXT]

Purpose:

      !>
      !> ZGBBRD reduces a complex general m-by-n band matrix A to real upper
      !> bidiagonal form B by a unitary transformation: Q**H * A * P = B.
      !>
      !> The routine computes B, and optionally forms Q or P**H, or computes
      !> Q**H*C for a given matrix C.
      !>

Parameters

  [in]

  VECT

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

  [in]

  M

      !>          M is INTEGER
      !>          The number of rows of the matrix A.  M >= 0.
      !>

  [in]

  N

      !>          N is INTEGER
      !>          The number of columns of the matrix A.  N >= 0.
      !>

  [in]

  NCC

      !>          NCC is INTEGER
      !>          The number of columns of the matrix C.  NCC >= 0.
      !>

  [in]

  KL

      !>          KL is INTEGER
      !>          The number of subdiagonals of the matrix A. KL >= 0.
      !>

  [in]

  KU

      !>          KU is INTEGER
      !>          The number of superdiagonals of the matrix A. KU >= 0.
      !>

  [in,out]

  AB

      !>          AB is COMPLEX*16 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.
      !>

  [in]

  LDAB

      !>          LDAB is INTEGER
      !>          The leading dimension of the array A. LDAB >= KL+KU+1.
      !>

  [out]

  D

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

  [out]

  E

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

  [out]

  Q

      !>          Q is COMPLEX*16 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 referenced.
      !>

  [in]

  LDQ

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

  [out]

  PT

      !>          PT is COMPLEX*16 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.
      !>

  [in]

  LDPT

      !>          LDPT is INTEGER
      !>          The leading dimension of the array PT.
      !>          LDPT >= max(1,N) if VECT = 'P' or 'B'; LDPT >= 1 otherwise.
      !>

  [in,out]

  C

      !>          C is COMPLEX*16 array, dimension (LDC,NCC)
      !>          On entry, an m-by-ncc matrix C.
      !>          On exit, C is overwritten by Q**H*C.
      !>          C is not referenced if NCC = 0.
      !>

  [in]

  LDC

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

  [out]

  WORK

      !>          WORK is COMPLEX*16 array, dimension (max(M,N))
      !>

  [out]

  RWORK

      !>          RWORK is DOUBLE PRECISION array, dimension (max(M,N))
      !>

  [out]

  INFO

      !>          INFO is INTEGER
      !>          = 0:  successful exit.
      !>          < 0:  if INFO = -i, the i-th argument had an illegal value.
      !>

Author
  Univ. of Tennessee
  Univ. of California Berkeley
  Univ. of Colorado Denver
  NAG Ltd.