|
|
1.1 root 1: .\" Copyright (c) 1983 Regents of the University of California.
2: .\" All rights reserved. The Berkeley software License Agreement
3: .\" specifies the terms and conditions for redistribution.
4: .\"
5: .\" @(#)trpfpe.3f 6.1 (Berkeley) 5/15/85
6: .\"
7: .TH TRPFPE 3F "May 15, 1985"
8: .UC 5
9: .SH NAME
10: trpfpe, fpecnt \- trap and repair floating point faults
11: .SH SYNOPSIS
12: .B subroutine trpfpe (numesg, rtnval)
13: .br
14: .B double precision rtnval
15: .sp 1
16: .B integer function fpecnt ()
17: .sp 1
18: .B common /fpeflt/ fperr
19: .br
20: .B logical fperr
21: .SH DESCRIPTION
22: \fBNOTE: This routine applies only to Vax computers.\fR
23: It is a null routine on the PDP11.
24: .PP
25: .I Trpfpe
26: sets up a signal handler to trap arithmetic exceptions.
27: If the exception is due to a floating point arithmetic fault,
28: the result of the operation is replaced with the
29: .I rtnval
30: specified.
31: .I Rtnval
32: must be a double precision value. For example, ``0d0'' or ``dflmax()''.
33: .PP
34: The first
35: .I numesg
36: occurrences of a floating point arithmetic error will cause a message
37: to be written to the standard error file.
38: Any exception that can't be repaired will result in the default
39: action, typically an abort with core image.
40: .PP
41: .I Fpecnt
42: returns the number of faults since the last call to
43: .IR trpfpe .
44: .PP
45: The logical value in the common block labelled
46: .I fpeflt
47: will be set to
48: .B .true.
49: each time a fault occurs.
50: .SH FILES
51: .ie \nM /usr/ucb/lib/libF77.a
52: .el /usr/lib/libF77.a
53: .SH SEE ALSO
54: signal(3F), range(3F)
55: .SH BUGS
56: This routine works only for
57: .IR faults ,
58: not
59: .IR traps .
60: This is primarily due to the Vax architecture.
61: .PP
62: If the operation involves changing the stack pointer, it can't be repaired.
63: This seldom should be a problem with the f77 compiler, but such an operation
64: might be produced by the optimizer.
65: .PP
66: The POLY and EMOD opcodes are not dealt with.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.