comparison libcruft/lapack/slabad.f @ 7789:82be108cc558

First attempt at single precision tyeps * * * corrections to qrupdate single precision routines * * * prefer demotion to single over promotion to double * * * Add single precision support to log2 function * * * Trivial PROJECT file update * * * Cache optimized hermitian/transpose methods * * * Add tests for tranpose/hermitian and ChangeLog entry for new transpose code
author David Bateman <dbateman@free.fr>
date Sun, 27 Apr 2008 22:34:17 +0200
parents
children
comparison
equal deleted inserted replaced
7788:45f5faba05a2 7789:82be108cc558
1 SUBROUTINE SLABAD( SMALL, LARGE )
2 *
3 * -- LAPACK auxiliary routine (version 3.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * November 2006
6 *
7 * .. Scalar Arguments ..
8 REAL LARGE, SMALL
9 * ..
10 *
11 * Purpose
12 * =======
13 *
14 * SLABAD takes as input the values computed by SLAMCH for underflow and
15 * overflow, and returns the square root of each of these values if the
16 * log of LARGE is sufficiently large. This subroutine is intended to
17 * identify machines with a large exponent range, such as the Crays, and
18 * redefine the underflow and overflow limits to be the square roots of
19 * the values computed by SLAMCH. This subroutine is needed because
20 * SLAMCH does not compensate for poor arithmetic in the upper half of
21 * the exponent range, as is found on a Cray.
22 *
23 * Arguments
24 * =========
25 *
26 * SMALL (input/output) REAL
27 * On entry, the underflow threshold as computed by SLAMCH.
28 * On exit, if LOG10(LARGE) is sufficiently large, the square
29 * root of SMALL, otherwise unchanged.
30 *
31 * LARGE (input/output) REAL
32 * On entry, the overflow threshold as computed by SLAMCH.
33 * On exit, if LOG10(LARGE) is sufficiently large, the square
34 * root of LARGE, otherwise unchanged.
35 *
36 * =====================================================================
37 *
38 * .. Intrinsic Functions ..
39 INTRINSIC LOG10, SQRT
40 * ..
41 * .. Executable Statements ..
42 *
43 * If it looks like we're on a Cray, take the square root of
44 * SMALL and LARGE to avoid overflow and underflow problems.
45 *
46 IF( LOG10( LARGE ).GT.2000. ) THEN
47 SMALL = SQRT( SMALL )
48 LARGE = SQRT( LARGE )
49 END IF
50 *
51 RETURN
52 *
53 * End of SLABAD
54 *
55 END