d1534953b1
Do not begin a line with single quote character. Submitted by: Kazuo Horikawa <k-horik@yk.rim.or.jp>
159 lines
4.6 KiB
Groff
159 lines
4.6 KiB
Groff
.\" 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
|
|
.\" %Id: fpgetround.3,v 1.6 1998/02/04 22:30:20 jlemon Exp %
|
|
.\"
|
|
.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 ½ñ¼°
|
|
.Fd #include <floatingpoint.h>
|
|
.Ft typedef enum {
|
|
.br
|
|
.Fa FP_RN,
|
|
.Li /* round to nearest */
|
|
.br
|
|
.Fa FP_RM,
|
|
.Li /* round to minus infinity */
|
|
.br
|
|
.Fa FP_RP,
|
|
.Li /* round to plus infinity */
|
|
.br
|
|
.Fa FP_RZ,
|
|
.Li /* truncate */
|
|
.br
|
|
.Ft } fp_rnd_t;
|
|
.Pp
|
|
.Ft fp_rnd_t
|
|
.Fn fpgetround void
|
|
.Ft fp_rnd_t
|
|
.Fn fpsetround "fp_rnd_t direction"
|
|
.Pp
|
|
.nr fZ 0
|
|
.Ft typedef enum {
|
|
.br
|
|
.Fa FP_PS,
|
|
.Li /* 24 bit (single-precision) */
|
|
.br
|
|
.Fa FP_PRS,
|
|
.Li /* reserved */
|
|
.br
|
|
.Fa FP_PD,
|
|
.Li /* 53 bit (double-precision) */
|
|
.br
|
|
.Fa FP_PE,
|
|
.Li /* 64 bit (extended-precision) */
|
|
.br
|
|
.Ft } fp_prec_t;
|
|
.Pp
|
|
.Ft fp_prec_t
|
|
.Fn fpgetprec void
|
|
.Ft fp_prec_t
|
|
.Fn fpsetprec "fp_prec_t precision"
|
|
.Pp
|
|
.Fd #define fp_except_t int
|
|
.Fd #define FP_X_INV 0x01 /* invalid */
|
|
.Fd #define FP_X_OFL 0x08 /* overflow */
|
|
.Fd #define FP_X_UFL 0x10 /* underflow */
|
|
.Fd #define FP_X_DZ 0x04 /* divide-by-zero */
|
|
.Fd #define FP_X_IMP 0x20 /* loss of precision */
|
|
.Fd #define FP_X_DNML 0x02 /* denormal */
|
|
.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
|
|
°Ê²¼¤Ï¡¢¥¼¥í½ü»»¤Ë¤è¤ë¥È¥é¥Ã¥×¤òËɤ°¥³¡¼¥ÉÎã¤Ç¤¹¡£
|
|
.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
|