--- rpl/lapack/lapack/dlaqge.f 2010/04/21 13:45:18 1.2 +++ rpl/lapack/lapack/dlaqge.f 2023/08/07 08:38:55 1.18 @@ -1,10 +1,148 @@ +*> \brief \b DLAQGE scales a general rectangular matrix, using row and column scaling factors computed by sgeequ. +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +*> \htmlonly +*> Download DLAQGE + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> +*> [TXT] +*> \endhtmlonly +* +* Definition: +* =========== +* +* SUBROUTINE DLAQGE( M, N, A, LDA, R, C, ROWCND, COLCND, AMAX, +* EQUED ) +* +* .. Scalar Arguments .. +* CHARACTER EQUED +* INTEGER LDA, M, N +* DOUBLE PRECISION AMAX, COLCND, ROWCND +* .. +* .. Array Arguments .. +* DOUBLE PRECISION A( LDA, * ), C( * ), R( * ) +* .. +* +* +*> \par Purpose: +* ============= +*> +*> \verbatim +*> +*> DLAQGE equilibrates a general M by N matrix A using the row and +*> column scaling factors in the vectors R and C. +*> \endverbatim +* +* Arguments: +* ========== +* +*> \param[in] M +*> \verbatim +*> M is INTEGER +*> The number of rows of the matrix A. M >= 0. +*> \endverbatim +*> +*> \param[in] N +*> \verbatim +*> N is INTEGER +*> The number of columns of the matrix A. N >= 0. +*> \endverbatim +*> +*> \param[in,out] A +*> \verbatim +*> A is DOUBLE PRECISION 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. +*> \endverbatim +*> +*> \param[in] LDA +*> \verbatim +*> LDA is INTEGER +*> The leading dimension of the array A. LDA >= max(M,1). +*> \endverbatim +*> +*> \param[in] R +*> \verbatim +*> R is DOUBLE PRECISION array, dimension (M) +*> The row scale factors for A. +*> \endverbatim +*> +*> \param[in] C +*> \verbatim +*> C is DOUBLE PRECISION array, dimension (N) +*> The column scale factors for A. +*> \endverbatim +*> +*> \param[in] ROWCND +*> \verbatim +*> ROWCND is DOUBLE PRECISION +*> Ratio of the smallest R(i) to the largest R(i). +*> \endverbatim +*> +*> \param[in] COLCND +*> \verbatim +*> COLCND is DOUBLE PRECISION +*> Ratio of the smallest C(i) to the largest C(i). +*> \endverbatim +*> +*> \param[in] AMAX +*> \verbatim +*> AMAX is DOUBLE PRECISION +*> Absolute value of largest matrix entry. +*> \endverbatim +*> +*> \param[out] EQUED +*> \verbatim +*> 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). +*> \endverbatim +* +*> \par Internal Parameters: +* ========================= +*> +*> \verbatim +*> 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. +*> \endverbatim +* +* Authors: +* ======== +* +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. +* +*> \ingroup doubleGEauxiliary +* +* ===================================================================== SUBROUTINE DLAQGE( M, N, A, LDA, R, C, ROWCND, COLCND, AMAX, $ EQUED ) * -* -- LAPACK auxiliary routine (version 3.2) -- +* -- LAPACK auxiliary routine -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2006 * * .. Scalar Arguments .. CHARACTER EQUED @@ -15,66 +153,6 @@ DOUBLE PRECISION A( LDA, * ), C( * ), R( * ) * .. * -* Purpose -* ======= -* -* DLAQGE equilibrates a general M by N matrix A using the row and -* column scaling factors in the vectors R and C. -* -* Arguments -* ========= -* -* 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. -* -* A (input/output) DOUBLE PRECISION 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. -* -* LDA (input) INTEGER -* The leading dimension of the array A. LDA >= max(M,1). -* -* R (input) DOUBLE PRECISION array, dimension (M) -* The row scale factors for A. -* -* C (input) DOUBLE PRECISION array, dimension (N) -* The column scale factors for A. -* -* ROWCND (input) DOUBLE PRECISION -* Ratio of the smallest R(i) to the largest R(i). -* -* COLCND (input) DOUBLE PRECISION -* Ratio of the smallest C(i) to the largest C(i). -* -* AMAX (input) DOUBLE PRECISION -* Absolute value of largest matrix entry. -* -* EQUED (output) 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. -* * ===================================================================== * * .. Parameters ..