Loading...
Searching...
No Matches

## slaqge()

subroutine slaqge | ( | integer | m,
|  | integer | n,
|  | real, dimension( lda, * ) | a,
|  | integer | lda,
|  | real, dimension( * ) | r,
|  | real, dimension( * ) | c,
|  | real | rowcnd,
|  | real | colcnd,
|  | real | amax,
|  | character | equed )

SLAQGE scales a general rectangular matrix, using row and column scaling factors computed by sgeequ.

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

Purpose:

      !>
      !> SLAQGE equilibrates a general M by N matrix A using the row and
      !> column scaling factors in the vectors R and C.
      !>

Parameters

  [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,out]

  A

      !>          A is REAL array, dimension (LDA,N)
      !>          On entry, the M by N matrix A.
      !>          On exit, the equilibrated matrix.  See EQUED for the form of
      !>          the equilibrated matrix.
      !>

  [in]

  LDA

      !>          LDA is INTEGER
      !>          The leading dimension of the array A.  LDA >= max(M,1).
      !>

  [in]

  R

      !>          R is REAL array, dimension (M)
      !>          The row scale factors for A.
      !>

  [in]

  C

      !>          C is REAL array, dimension (N)
      !>          The column scale factors for A.
      !>

  [in]

  ROWCND

      !>          ROWCND is REAL
      !>          Ratio of the smallest R(i) to the largest R(i).
      !>

  [in]

  COLCND

      !>          COLCND is REAL
      !>          Ratio of the smallest C(i) to the largest C(i).
      !>

  [in]

  AMAX

      !>          AMAX is REAL
      !>          Absolute value of largest matrix entry.
      !>

  [out]

  EQUED

      !>          EQUED is CHARACTER*1
      !>          Specifies the form of equilibration that was done.
      !>          = 'N':  No equilibration
      !>          = 'R':  Row equilibration, i.e., A has been premultiplied by
      !>                  diag(R).
      !>          = 'C':  Column equilibration, i.e., A has been postmultiplied
      !>                  by diag(C).
      !>          = 'B':  Both row and column equilibration, i.e., A has been
      !>                  replaced by diag(R) * A * diag(C).
      !>

Internal Parameters:

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

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