diff options
author | Sergio Carlavilla Delgado <carlavilla@FreeBSD.org> | 2021-01-25 23:31:29 +0000 |
---|---|---|
committer | Sergio Carlavilla Delgado <carlavilla@FreeBSD.org> | 2021-01-25 23:31:29 +0000 |
commit | 989d921f5d4ac8d8b7c831c13b8954ad1901be24 (patch) | |
tree | a5d768f9af4b55422fdf5b17064879ae1c7ce032 /documentation/manual-pages/ja/man3/fpgetround.3 | |
parent | 0cff342f42461c5081b98bce7581f43df319e4f4 (diff) |
Diffstat (limited to 'documentation/manual-pages/ja/man3/fpgetround.3')
-rw-r--r-- | documentation/manual-pages/ja/man3/fpgetround.3 | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/documentation/manual-pages/ja/man3/fpgetround.3 b/documentation/manual-pages/ja/man3/fpgetround.3 new file mode 100644 index 0000000000..ab30f52aef --- /dev/null +++ b/documentation/manual-pages/ja/man3/fpgetround.3 @@ -0,0 +1,147 @@ +.\" Copyright (c) 1993 Andrew Moore, Talke Studio +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)fpgetround.3 1.0 (Berkeley) 9/23/93 +.\" %FreeBSD: src/share/man/man3/fpgetround.3,v 1.9.2.2 2001/12/17 11:30:11 ru Exp % +.\" $FreeBSD$ +.\" +.Dd August 23, 1993 +.Dt FPGETROUND 3 +.Os +.Sh 名称 +.Nm fpgetround , +.Nm fpsetround , +.Nm fpsetprec , +.Nm fpgetprec , +.Nm fpgetmask , +.Nm fpsetmask , +.Nm fpgetsticky , +.Nm fpresetsticky +.Nd IEEE 浮動小数点インタフェース +.Sh 書式 +.In ieeefp.h +.Pp +.Bd -literal +typedef enum { + FP_RN, /* round to nearest */ + FP_RM, /* round down to minus infinity */ + FP_RP, /* round up to plus infinity */ + FP_RZ /* truncate */ +} fp_rnd_t; +.Pp +.Ft fp_rnd_t +.Fn fpgetround void +.Ft fp_rnd_t +.Fn fpsetround "fp_rnd_t direction" +.Pp +.Bd -literal +typedef enum { + FP_PS, /* 24 bit (single-precision) */ + FP_PRS, /* reserved */ + FP_PD, /* 53 bit (double-precision) */ + FP_PE /* 64 bit (extended-precision) */ +} fp_prec_t; +.Ed +.Ft fp_prec_t +.Fn fpgetprec void +.Ft fp_prec_t +.Fn fpsetprec "fp_prec_t precision" +.Pp +.Bd -literal +#define fp_except_t int +#define FP_X_INV 0x01 /* invalid operation */ +#define FP_X_DNML 0x02 /* denormal */ +#define FP_X_DZ 0x04 /* zero divide */ +#define FP_X_OFL 0x08 /* overflow */ +#define FP_X_UFL 0x10 /* underflow */ +#define FP_X_IMP 0x20 /* (im)precision */ +#define FP_X_STK 0x40 /* stack fault */ +.Ed +.Ft fp_except_t +.Fn fpgetmask void +.Ft fp_except_t +.Fn fpsetmask "fp_except_t mask" +.Ft fp_except_t +.Fn fpgetsticky void +.Ft fp_except_t +.Fn fpresetsticky "fp_except_t sticky" +.Sh 解説 +浮動小数点例外が検出されると、例外スティッキフラグが設定され、例外マスク +が検査されます。マスクが設定されている場合はトラップが発生します。この +ルーチンでは、浮動小数点例外マスクの設定、および例外が発生した後での例外 +スティッキフラグのリセットができます。浮動小数点丸めモードと精度も +設定できます。 +.Pp +.Fn fpgetround +関数は、現在の浮動小数点丸めモードを戻します。 +.Pp +.Fn fpsetround +関数は、浮動小数点丸めモードを設定し、前のモードを +戻します。 +.Pp +.Fn fpgetprec +関数は、現在の浮動小数点精度を戻します。 +.Pp +.Fn fpsetprec +関数は、浮動小数点精度を設定し、前の精度を戻します。 +.Pp +.Fn fpgetmask +関数は、現在の浮動小数点例外マスクを戻します。 +.Pp +.Fn fpsetmask +関数は、浮動小数点例外マスクを設定し、前のマスクを戻します。 +.Pp +.Fn fpgetsticky +関数は、現在の浮動小数点スティッキフラグを戻します。 +.Pp +.Fn fpresetsticky +関数は、浮動小数点スティッキフラグをクリアし、前のフラグ +を戻します。 +.Pp +以下は、0 除算によるトラップを防ぐコード例です。 +.Bd -literal -offset indent +fpsetmask(~FP_X_DZ); +a = 1.0; +b = 0; +c = a / b; +fpresetsticky(FP_X_DZ); +fpsetmask(FP_X_DZ); +.Ed +.Sh 関連項目 +.Xr isnan 3 +.Sh 警告 +浮動小数点例外が発生した後、かつ、マスクを設定する前に、 +スティッキフラグをリセットする必要があります。スティッキフラグをリセット +する前に別の例外が発生した場合は、誤った例外タイプが +通知されることがあります。 +.Sh 歴史 +このルーチンは、同じ名前の SysV/386 ルーチンに基づいています。 +.\"X kuma 1999-11-5 |