*> \brief \b SLARSCL2 performs reciprocal diagonal scaling on a vector. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download SLARSCL2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE SLARSCL2 ( M, N, D, X, LDX ) * * .. Scalar Arguments .. * INTEGER M, N, LDX * .. * .. Array Arguments .. * REAL D( * ), X( LDX, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> SLARSCL2 performs a reciprocal diagonal scaling on an vector: *> x <-- inv(D) * x *> where the diagonal matrix D is stored as a vector. *> *> Eventually to be replaced by BLAS_sge_diag_scale in the new BLAS *> standard. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of D and X. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of X. N >= 0. *> \endverbatim *> *> \param[in] D *> \verbatim *> D is REAL array, length M *> Diagonal matrix D, stored as a vector of length M. *> \endverbatim *> *> \param[in,out] X *> \verbatim *> X is REAL array, dimension (LDX,N) *> On entry, the vector X to be scaled by D. *> On exit, the scaled vector. *> \endverbatim *> *> \param[in] LDX *> \verbatim *> LDX is INTEGER *> The leading dimension of the vector X. LDX >= M. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup realOTHERcomputational * * ===================================================================== SUBROUTINE SLARSCL2 ( M, N, D, X, LDX ) * * -- LAPACK computational routine (version 3.6.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. INTEGER M, N, LDX * .. * .. Array Arguments .. REAL D( * ), X( LDX, * ) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I, J * .. * .. Executable Statements .. * DO J = 1, N DO I = 1, M X( I, J ) = X( I, J ) / D( I ) END DO END DO RETURN END