Libsunmath support for ieee modes and exceptions – HP SunSoft Pascal 4.0 User Manual

Page 266

Advertising
background image

242

Pascal 4.0 User’s Guide

11

libsunmath

Support for IEEE Modes and Exceptions

ieee_handler()

is used primarily to establish a signal handler for a

particular floating-point exception or group of exceptions.

The syntax of this function is described in the

ieee_handler

(3M) man page.

This following Pascal program demonstrates how to abort on division by zero.

ieee_flags()

is the recommended interface to:

Query or set rounding direction mode

Query or set rounding precision mode

Examine, clear, or set accrued exception flags

program TestIEEEHandler(output);

#include <math_p.h>

procedure DivisionHandler(

sig: integer;

sip: univ_ptr;

uap: univ_ptr);

begin

writeln('Bad data - division by zero.');

end; { DivisionHandler }

var

FpAction, FpException: string;

Zero: integer := 0;

begin

FpAction := 'set';

FpException := 'division';

writeln(ieee_handler(FpAction, FpException,

addr(DivisionHandler)));

writeln('1/0 = ', 1 / Zero);

writeln(ieee_handler(FpAction, FpException, SIGFPE_DEFAULT));

writeln('1/0 = ', 1 / Zero);

end.

Advertising