LAPACK  3.4.1
LAPACK: Linear Algebra PACKage
dlarscl2.f
Go to the documentation of this file.
00001 *> \brief \b DLARSCL2
00002 *
00003 *  =========== DOCUMENTATION ===========
00004 *
00005 * Online html documentation available at 
00006 *            http://www.netlib.org/lapack/explore-html/ 
00007 *
00008 *> \htmlonly
00009 *> Download DLARSCL2 + dependencies 
00010 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlarscl2.f"> 
00011 *> [TGZ]</a> 
00012 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlarscl2.f"> 
00013 *> [ZIP]</a> 
00014 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarscl2.f"> 
00015 *> [TXT]</a>
00016 *> \endhtmlonly 
00017 *
00018 *  Definition:
00019 *  ===========
00020 *
00021 *       SUBROUTINE DLARSCL2 ( M, N, D, X, LDX )
00022 * 
00023 *       .. Scalar Arguments ..
00024 *       INTEGER            M, N, LDX
00025 *       ..
00026 *       .. Array Arguments ..
00027 *       DOUBLE PRECISION   D( * ), X( LDX, * )
00028 *       ..
00029 *  
00030 *
00031 *> \par Purpose:
00032 *  =============
00033 *>
00034 *> \verbatim
00035 *>
00036 *> DLARSCL2 performs a reciprocal diagonal scaling on an vector:
00037 *>   x <-- inv(D) * x
00038 *> where the diagonal matrix D is stored as a vector.
00039 *>
00040 *> Eventually to be replaced by BLAS_dge_diag_scale in the new BLAS
00041 *> standard.
00042 *> \endverbatim
00043 *
00044 *  Arguments:
00045 *  ==========
00046 *
00047 *> \param[in] M
00048 *> \verbatim
00049 *>          M is INTEGER
00050 *>     The number of rows of D and X. M >= 0.
00051 *> \endverbatim
00052 *>
00053 *> \param[in] N
00054 *> \verbatim
00055 *>          N is INTEGER
00056 *>     The number of columns of D and X. N >= 0.
00057 *> \endverbatim
00058 *>
00059 *> \param[in] D
00060 *> \verbatim
00061 *>          D is DOUBLE PRECISION array, dimension (M)
00062 *>     Diagonal matrix D, stored as a vector of length M.
00063 *> \endverbatim
00064 *>
00065 *> \param[in,out] X
00066 *> \verbatim
00067 *>          X is DOUBLE PRECISION array, dimension (LDX,N)
00068 *>     On entry, the vector X to be scaled by D.
00069 *>     On exit, the scaled vector.
00070 *> \endverbatim
00071 *>
00072 *> \param[in] LDX
00073 *> \verbatim
00074 *>          LDX is INTEGER
00075 *>     The leading dimension of the vector X. LDX >= 0.
00076 *> \endverbatim
00077 *
00078 *  Authors:
00079 *  ========
00080 *
00081 *> \author Univ. of Tennessee 
00082 *> \author Univ. of California Berkeley 
00083 *> \author Univ. of Colorado Denver 
00084 *> \author NAG Ltd. 
00085 *
00086 *> \date November 2011
00087 *
00088 *> \ingroup doubleOTHERcomputational
00089 *
00090 *  =====================================================================
00091       SUBROUTINE DLARSCL2 ( M, N, D, X, LDX )
00092 *
00093 *  -- LAPACK computational routine (version 3.4.0) --
00094 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
00095 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
00096 *     November 2011
00097 *
00098 *     .. Scalar Arguments ..
00099       INTEGER            M, N, LDX
00100 *     ..
00101 *     .. Array Arguments ..
00102       DOUBLE PRECISION   D( * ), X( LDX, * )
00103 *     ..
00104 *
00105 *  =====================================================================
00106 *
00107 *     .. Local Scalars ..
00108       INTEGER            I, J
00109 *     ..
00110 *     .. Executable Statements ..
00111 *
00112       DO J = 1, N
00113          DO I = 1, M
00114             X( I, J ) = X( I, J ) / D( I )
00115          END DO
00116       END DO
00117 
00118       RETURN
00119       END
 All Files Functions