Mercurial > octave-nkf
annotate libcruft/misc/r1mach.f @ 12312:b10ea6efdc58 release-3-4-x ss-3-3-91
version is now 3.3.91
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 31 Jan 2011 08:36:58 -0500 |
parents | 32b15d5c3147 |
children |
rev | line source |
---|---|
9372
32b15d5c3147
implement d1mach, i1mach, and r1mach using slamch and dlamch from lapack
John W. Eaton <jwe@octave.org>
parents:
7789
diff
changeset
|
1 double precision function r1mach (i) |
7789
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
2 integer i |
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
3 logical init |
9372
32b15d5c3147
implement d1mach, i1mach, and r1mach using slamch and dlamch from lapack
John W. Eaton <jwe@octave.org>
parents:
7789
diff
changeset
|
4 double precision rmach(5) |
32b15d5c3147
implement d1mach, i1mach, and r1mach using slamch and dlamch from lapack
John W. Eaton <jwe@octave.org>
parents:
7789
diff
changeset
|
5 double precision slamch |
32b15d5c3147
implement d1mach, i1mach, and r1mach using slamch and dlamch from lapack
John W. Eaton <jwe@octave.org>
parents:
7789
diff
changeset
|
6 external slamch |
7789
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
7 save init, rmach |
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
8 data init /.false./ |
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
9 if (.not. init) then |
9372
32b15d5c3147
implement d1mach, i1mach, and r1mach using slamch and dlamch from lapack
John W. Eaton <jwe@octave.org>
parents:
7789
diff
changeset
|
10 rmach(1) = slamch ('u') |
32b15d5c3147
implement d1mach, i1mach, and r1mach using slamch and dlamch from lapack
John W. Eaton <jwe@octave.org>
parents:
7789
diff
changeset
|
11 rmach(2) = slamch ('o') |
32b15d5c3147
implement d1mach, i1mach, and r1mach using slamch and dlamch from lapack
John W. Eaton <jwe@octave.org>
parents:
7789
diff
changeset
|
12 rmach(3) = slamch ('e') |
32b15d5c3147
implement d1mach, i1mach, and r1mach using slamch and dlamch from lapack
John W. Eaton <jwe@octave.org>
parents:
7789
diff
changeset
|
13 rmach(4) = slamch ('p') |
32b15d5c3147
implement d1mach, i1mach, and r1mach using slamch and dlamch from lapack
John W. Eaton <jwe@octave.org>
parents:
7789
diff
changeset
|
14 rmach(5) = log10 (slamch ('b')) |
7789
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
15 init = .true. |
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
16 endif |
9372
32b15d5c3147
implement d1mach, i1mach, and r1mach using slamch and dlamch from lapack
John W. Eaton <jwe@octave.org>
parents:
7789
diff
changeset
|
17 if (i .lt. 1 .or. i .gt. 5) goto 999 |
7789
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
18 r1mach = rmach(i) |
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
19 return |
9372
32b15d5c3147
implement d1mach, i1mach, and r1mach using slamch and dlamch from lapack
John W. Eaton <jwe@octave.org>
parents:
7789
diff
changeset
|
20 999 write (*, 1999) i |
32b15d5c3147
implement d1mach, i1mach, and r1mach using slamch and dlamch from lapack
John W. Eaton <jwe@octave.org>
parents:
7789
diff
changeset
|
21 1999 format (' r1mach - i out of bounds', i10) |
7789
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
22 call xstopx (' ') |
9372
32b15d5c3147
implement d1mach, i1mach, and r1mach using slamch and dlamch from lapack
John W. Eaton <jwe@octave.org>
parents:
7789
diff
changeset
|
23 d1mach = 0 |
7789
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
24 end |