4.3BSD-UWisc/man/cat3/trpfpe.3f




TRPFPE(3F)          UNIX Programmer's Manual           TRPFPE(3F)



NAME
     trpfpe, fpecnt - trap and repair floating point faults

SYNOPSIS
     subroutine trpfpe (numesg, rtnval)
     double precision rtnval

     integer function fpecnt ()

     common /fpeflt/ fperr
     logical fperr

DESCRIPTION
     NOTE: This routine applies only to Vax computers.  It is a
     null routine on the PDP11.

     _T_r_p_f_p_e sets up a signal handler to trap arithmetic excep-
     tions.  If the exception is due to a floating point arith-
     metic fault, the result of the operation is replaced with
     the _r_t_n_v_a_l specified.  _R_t_n_v_a_l must be a double precision
     value. For example, ``0d0'' or ``dflmax()''.

     The first _n_u_m_e_s_g occurrences of a floating point arithmetic
     error will cause a message to be written to the standard
     error file.  Any exception that can't be repaired will
     result in the default action, typically an abort with core
     image.

     _F_p_e_c_n_t returns the number of faults since the last call to
     _t_r_p_f_p_e.

     The logical value in the common block labelled _f_p_e_f_l_t will
     be set to .true. each time a fault occurs.

FILES
     /usr/lib/libF77.a

SEE ALSO
     signal(3F), range(3F)

BUGS
     This routine works only for _f_a_u_l_t_s, not _t_r_a_p_s.  This is pri-
     marily due to the Vax architecture.

     If the operation involves changing the stack pointer, it
     can't be repaired.  This seldom should be a problem with the
     f77 compiler, but such an operation might be produced by the
     optimizer.

     The POLY and EMOD opcodes are not dealt with.





Printed 12/27/86          May 15, 1985                          1