Annotation of rpl/lapack/lapack/dlabad.f, revision 1.8
1.8 ! bertrand 1: *> \brief \b DLABAD
! 2: *
! 3: * =========== DOCUMENTATION ===========
! 4: *
! 5: * Online html documentation available at
! 6: * http://www.netlib.org/lapack/explore-html/
! 7: *
! 8: *> \htmlonly
! 9: *> Download DLABAD + dependencies
! 10: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlabad.f">
! 11: *> [TGZ]</a>
! 12: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlabad.f">
! 13: *> [ZIP]</a>
! 14: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlabad.f">
! 15: *> [TXT]</a>
! 16: *> \endhtmlonly
! 17: *
! 18: * Definition:
! 19: * ===========
! 20: *
! 21: * SUBROUTINE DLABAD( SMALL, LARGE )
! 22: *
! 23: * .. Scalar Arguments ..
! 24: * DOUBLE PRECISION LARGE, SMALL
! 25: * ..
! 26: *
! 27: *
! 28: *> \par Purpose:
! 29: * =============
! 30: *>
! 31: *> \verbatim
! 32: *>
! 33: *> DLABAD takes as input the values computed by DLAMCH for underflow and
! 34: *> overflow, and returns the square root of each of these values if the
! 35: *> log of LARGE is sufficiently large. This subroutine is intended to
! 36: *> identify machines with a large exponent range, such as the Crays, and
! 37: *> redefine the underflow and overflow limits to be the square roots of
! 38: *> the values computed by DLAMCH. This subroutine is needed because
! 39: *> DLAMCH does not compensate for poor arithmetic in the upper half of
! 40: *> the exponent range, as is found on a Cray.
! 41: *> \endverbatim
! 42: *
! 43: * Arguments:
! 44: * ==========
! 45: *
! 46: *> \param[in,out] SMALL
! 47: *> \verbatim
! 48: *> SMALL is DOUBLE PRECISION
! 49: *> On entry, the underflow threshold as computed by DLAMCH.
! 50: *> On exit, if LOG10(LARGE) is sufficiently large, the square
! 51: *> root of SMALL, otherwise unchanged.
! 52: *> \endverbatim
! 53: *>
! 54: *> \param[in,out] LARGE
! 55: *> \verbatim
! 56: *> LARGE is DOUBLE PRECISION
! 57: *> On entry, the overflow threshold as computed by DLAMCH.
! 58: *> On exit, if LOG10(LARGE) is sufficiently large, the square
! 59: *> root of LARGE, otherwise unchanged.
! 60: *> \endverbatim
! 61: *
! 62: * Authors:
! 63: * ========
! 64: *
! 65: *> \author Univ. of Tennessee
! 66: *> \author Univ. of California Berkeley
! 67: *> \author Univ. of Colorado Denver
! 68: *> \author NAG Ltd.
! 69: *
! 70: *> \date November 2011
! 71: *
! 72: *> \ingroup auxOTHERauxiliary
! 73: *
! 74: * =====================================================================
1.1 bertrand 75: SUBROUTINE DLABAD( SMALL, LARGE )
76: *
1.8 ! bertrand 77: * -- LAPACK auxiliary routine (version 3.4.0) --
1.1 bertrand 78: * -- LAPACK is a software package provided by Univ. of Tennessee, --
79: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
1.8 ! bertrand 80: * November 2011
1.1 bertrand 81: *
82: * .. Scalar Arguments ..
83: DOUBLE PRECISION LARGE, SMALL
84: * ..
85: *
86: * =====================================================================
87: *
88: * .. Intrinsic Functions ..
89: INTRINSIC LOG10, SQRT
90: * ..
91: * .. Executable Statements ..
92: *
93: * If it looks like we're on a Cray, take the square root of
94: * SMALL and LARGE to avoid overflow and underflow problems.
95: *
96: IF( LOG10( LARGE ).GT.2000.D0 ) THEN
97: SMALL = SQRT( SMALL )
98: LARGE = SQRT( LARGE )
99: END IF
100: *
101: RETURN
102: *
103: * End of DLABAD
104: *
105: END
CVSweb interface <joel.bertrand@systella.fr>