Mercurial > octave
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 |