ESMF_DLASV2 Subroutine

subroutine ESMF_DLASV2(F, G, H, SSMIN, SSMAX, SNR, CSR, SNL, CSL)

\brief \b ESMF_DLASV2 \htmlonly Download ESMF_DLASV2 + dependencies [TGZ] [ZIP] [TXT] \endhtmlonly \par Purpose:

\verbatim

ESMF_DLASV2 computes the singular value decomposition of a 2-by-2 triangular matrix [ F G ] [ 0 H ]. On return, abs(SSMAX) is the larger singular value, abs(SSMIN) is the smaller singular value, and (CSL,SNL) and (CSR,SNR) are the left and right singular vectors for abs(SSMAX), giving the decomposition

[ CSL SNL ] [ F G ] [ CSR -SNR ] = [ SSMAX 0 ] [-SNL CSL ] [ 0 H ] [ SNR CSR ] [ 0 SSMIN ]. \endverbatim \param[in] F \verbatim F is DOUBLE PRECISION The (1,1) element of the 2-by-2 matrix. \endverbatim

\param[in] G \verbatim G is DOUBLE PRECISION The (1,2) element of the 2-by-2 matrix. \endverbatim

\param[in] H \verbatim H is DOUBLE PRECISION The (2,2) element of the 2-by-2 matrix. \endverbatim

\param[out] SSMIN \verbatim SSMIN is DOUBLE PRECISION abs(SSMIN) is the smaller singular value. \endverbatim

\param[out] SSMAX \verbatim SSMAX is DOUBLE PRECISION abs(SSMAX) is the larger singular value. \endverbatim

\param[out] SNL \verbatim SNL is DOUBLE PRECISION \endverbatim

\param[out] CSL \verbatim CSL is DOUBLE PRECISION The vector (CSL, SNL) is a unit left singular vector for the singular value abs(SSMAX). \endverbatim

\param[out] SNR \verbatim SNR is DOUBLE PRECISION \endverbatim

\param[out] CSR \verbatim CSR is DOUBLE PRECISION The vector (CSR, SNR) is a unit right singular vector for the singular value abs(SSMAX). \endverbatim \author Univ. of Tennessee \author Univ. of California Berkeley \author Univ. of Colorado Denver \author NAG Ltd. \date November 2011 \ingroup auxOTHERauxiliary \par Further Details:

\verbatim

Any input parameter may be aliased with any output parameter.

Barring over/underflow and assuming a guard digit in subtraction, all output quantities are correct to within a few units in the last place (ulps).

In IEEE arithmetic, the code works correctly if one matrix element is infinite.

Overflow will not occur unless the largest singular value itself overflows or is within a few ulps of overflow. (On machines with partial overflow, like the Cray, overflow may occur if the largest singular value is within a factor of 2 of overflow.)

Underflow is harmless if underflow is gradual. Otherwise, results may correspond to a matrix modified by perturbations of size near the underflow threshold. \endverbatim

Arguments

Type IntentOptional Attributes Name
double precision :: F
double precision :: G
double precision :: H
double precision :: SSMIN
double precision :: SSMAX
double precision :: SNR
double precision :: CSR
double precision :: SNL
double precision :: CSL