Loading...
Searching...
No Matches

## zlaqsb()

subroutine zlaqsb | ( | character | uplo,
|  | integer | n,
|  | integer | kd,
|  | complex*16, dimension( ldab, * ) | ab,
|  | integer | ldab,
|  | double precision, dimension( * ) | s,
|  | double precision | scond,
|  | double precision | amax,
|  | character | equed )

ZLAQSB scales a symmetric/Hermitian band matrix, using scaling factors computed by spbequ.

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

Purpose:

      !>
      !> ZLAQSB equilibrates a symmetric band matrix A using the scaling
      !> factors in the vector S.
      !>

Parameters

  [in]

  UPLO

      !>          UPLO is CHARACTER*1
      !>          Specifies whether the upper or lower triangular part of the
      !>          symmetric matrix A is stored.
      !>          = 'U':  Upper triangular
      !>          = 'L':  Lower triangular
      !>

  [in]

  N

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

  [in]

  KD

      !>          KD is INTEGER
      !>          The number of super-diagonals of the matrix A if UPLO = 'U',
      !>          or the number of sub-diagonals if UPLO = 'L'.  KD >= 0.
      !>

  [in,out]

  AB

      !>          AB is COMPLEX*16 array, dimension (LDAB,N)
      !>          On entry, the upper or lower triangle of the symmetric band
      !>          matrix A, stored in the first KD+1 rows of the array.  The
      !>          j-th column of A is stored in the j-th column of the array AB
      !>          as follows:
      !>          if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
      !>          if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).
      !>
      !>          On exit, if INFO = 0, the triangular factor U or L from the
      !>          Cholesky factorization A = U**H *U or A = L*L**H of the band
      !>          matrix A, in the same storage format as A.
      !>

  [in]

  LDAB

      !>          LDAB is INTEGER
      !>          The leading dimension of the array AB.  LDAB >= KD+1.
      !>

  [in]

  S

      !>          S is DOUBLE PRECISION array, dimension (N)
      !>          The scale factors for A.
      !>

  [in]

  SCOND

      !>          SCOND is DOUBLE PRECISION
      !>          Ratio of the smallest S(i) to the largest S(i).
      !>

  [in]

  AMAX

      !>          AMAX is DOUBLE PRECISION
      !>          Absolute value of largest matrix entry.
      !>

  [out]

  EQUED

      !>          EQUED is CHARACTER*1
      !>          Specifies whether or not equilibration was done.
      !>          = 'N':  No equilibration.
      !>          = 'Y':  Equilibration was done, i.e., A has been replaced by
      !>                  diag(S) * A * diag(S).
      !>

Internal Parameters:

      !>  THRESH is a threshold value used to decide if scaling should be done
      !>  based on the ratio of the scaling factors.  If SCOND < THRESH,
      !>  scaling is done.
      !>
      !>  LARGE and SMALL are threshold values used to decide if scaling should
      !>  be done based on the absolute size of the largest matrix element.
      !>  If AMAX > LARGE or AMAX < SMALL, scaling is done.
      !>

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