# マニュアルページ ieee_environment.3f

## 名前

         f77_ieee_environment - IEEE 演算用のモード、状態、シグナル処
         理

## 形式

         #include <f77/f77_floatingpoint.h>

         integer*4 function ieee_flags(action,mode,in,out)
         character*(*) action, mode, in, out

         integer*4 function ieee_handler(action,exception,hdl)
         character*(*) action, exception
         sigfpe_handler_type hdl

         sigfpe_handler_type function sigfpe(code, hdl)
         sigfpe_code_type code
         sigfpe_handler_type hdl

## 機能説明

         これらは、FORTRAN プログラムで ANSI/IEEE 規格 754-1985 演 算
         を十分に活用するのに必要なモード、および状態を提供する副プロ
         グ ラ ム で す。 こ  れ  ら  は、  関  数   ieee_flags(3M)、
         ieee_handler(3M)、 sigfpe(3) と密接に関連しています。

## 使用法

         例 1: ハードウェアが丸め方向モードをサポートしていれば、丸め
         方向をゼロ方向の丸めに設定する。

              integer*4 ieeer
              character*1 mode, out, in
              ieeer = ieee_flags('set', 'direction', 'tozero', out)

         例 2: 丸め方向をクリアする。デフォルトで、最も近い値に丸めま
         す。

              character*1 out, in
              ieeer = ieee_flags('clear','direction', in, out)

         例 3: すべての例外発生ビットをクリアする。

              character*16 out
              ieeer = ieee_flags('clear','exception','all',out)

         例 4: 例 3 によってオーバーフロー例外が発生する場合、次の よ
         うに例外を検出する。

              character*16 out
              ieeer = ieee_flags('get','exception','overflow', out)

         例 5: ユーザー定義のシグナルハンドラとそれを使用する主プログ
         ラム。

              external hand
              real r / 14.2 /,  s / 0.0 /
              i = ieee_handler( 'set', 'division', hand )
              t = r/s
              end

              integer function hand ( sig, sip, uap )
              integer sig, address
              structure /fault/
                   integer address
              end structure

              structure /siginfo/
                   integer si_signo
                   integer si_code
                   integer si_errno
                   record /fault/ fault
              end structure

              record /siginfo/ sip

              address = sip.fault.address
              write (*,10) address
          10  format('Exception at hex address ', z8 )
              end

## ファイル

         include/f77/f77_floatingpoint.h
         libm.a

## 関連項目

         floatingpoint(5)、         signal(3c)、          sigfpe(3)、
         f77_floatingpoint(3F)、  ieee_flags(3M)、 ieee_handler(3M)、
         『 数値計算ガイド』