aboutsummaryrefslogtreecommitdiff
path: root/documentation/manual-pages/ja/man3/fpgetround.3
diff options
context:
space:
mode:
authorSergio Carlavilla Delgado <carlavilla@FreeBSD.org>2021-01-25 23:31:29 +0000
committerSergio Carlavilla Delgado <carlavilla@FreeBSD.org>2021-01-25 23:31:29 +0000
commit989d921f5d4ac8d8b7c831c13b8954ad1901be24 (patch)
treea5d768f9af4b55422fdf5b17064879ae1c7ce032 /documentation/manual-pages/ja/man3/fpgetround.3
parent0cff342f42461c5081b98bce7581f43df319e4f4 (diff)
Diffstat (limited to 'documentation/manual-pages/ja/man3/fpgetround.3')
-rw-r--r--documentation/manual-pages/ja/man3/fpgetround.3147
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