Statistiques
| Révision :

root / src / lapack / double / dlabad.f @ 1

Historique | Voir | Annoter | Télécharger (1,84 ko)

1 1 equemene
      SUBROUTINE DLABAD( SMALL, LARGE )
2 1 equemene
*
3 1 equemene
*  -- LAPACK auxiliary routine (version 3.2) --
4 1 equemene
*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
5 1 equemene
*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
6 1 equemene
*     November 2006
7 1 equemene
*
8 1 equemene
*     .. Scalar Arguments ..
9 1 equemene
      DOUBLE PRECISION   LARGE, SMALL
10 1 equemene
*     ..
11 1 equemene
*
12 1 equemene
*  Purpose
13 1 equemene
*  =======
14 1 equemene
*
15 1 equemene
*  DLABAD takes as input the values computed by DLAMCH for underflow and
16 1 equemene
*  overflow, and returns the square root of each of these values if the
17 1 equemene
*  log of LARGE is sufficiently large.  This subroutine is intended to
18 1 equemene
*  identify machines with a large exponent range, such as the Crays, and
19 1 equemene
*  redefine the underflow and overflow limits to be the square roots of
20 1 equemene
*  the values computed by DLAMCH.  This subroutine is needed because
21 1 equemene
*  DLAMCH does not compensate for poor arithmetic in the upper half of
22 1 equemene
*  the exponent range, as is found on a Cray.
23 1 equemene
*
24 1 equemene
*  Arguments
25 1 equemene
*  =========
26 1 equemene
*
27 1 equemene
*  SMALL   (input/output) DOUBLE PRECISION
28 1 equemene
*          On entry, the underflow threshold as computed by DLAMCH.
29 1 equemene
*          On exit, if LOG10(LARGE) is sufficiently large, the square
30 1 equemene
*          root of SMALL, otherwise unchanged.
31 1 equemene
*
32 1 equemene
*  LARGE   (input/output) DOUBLE PRECISION
33 1 equemene
*          On entry, the overflow threshold as computed by DLAMCH.
34 1 equemene
*          On exit, if LOG10(LARGE) is sufficiently large, the square
35 1 equemene
*          root of LARGE, otherwise unchanged.
36 1 equemene
*
37 1 equemene
*  =====================================================================
38 1 equemene
*
39 1 equemene
*     .. Intrinsic Functions ..
40 1 equemene
      INTRINSIC          LOG10, SQRT
41 1 equemene
*     ..
42 1 equemene
*     .. Executable Statements ..
43 1 equemene
*
44 1 equemene
*     If it looks like we're on a Cray, take the square root of
45 1 equemene
*     SMALL and LARGE to avoid overflow and underflow problems.
46 1 equemene
*
47 1 equemene
      IF( LOG10( LARGE ).GT.2000.D0 ) THEN
48 1 equemene
         SMALL = SQRT( SMALL )
49 1 equemene
         LARGE = SQRT( LARGE )
50 1 equemene
      END IF
51 1 equemene
*
52 1 equemene
      RETURN
53 1 equemene
*
54 1 equemene
*     End of DLABAD
55 1 equemene
*
56 1 equemene
      END