マニュアルページ 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)、
     『