summaryrefslogtreecommitdiffstats
path: root/lib/libc/gen/fpclassify.3
diff options
context:
space:
mode:
authormike <mike@FreeBSD.org>2003-02-08 20:37:55 +0000
committermike <mike@FreeBSD.org>2003-02-08 20:37:55 +0000
commitb4e3f2f94a505c800e895764e429ec9ec310d9b4 (patch)
tree5fa8c1927e480809720c766a3f48569e33c80af9 /lib/libc/gen/fpclassify.3
parent9c57bdd382a4547a47c07bb50cb31b20e614f0c9 (diff)
downloadFreeBSD-src-b4e3f2f94a505c800e895764e429ec9ec310d9b4.zip
FreeBSD-src-b4e3f2f94a505c800e895764e429ec9ec310d9b4.tar.gz
Implement fpclassify():
o Add a MD header private to libc called _fpmath.h; this header contains bitfield layouts of MD floating-point types. o Add a MI header private to libc called fpmath.h; this header contains bitfield layouts of MI floating-point types. o Add private libc variables to lib/libc/$arch/gen/infinity.c for storing NaN values. o Add __double_t and __float_t to <machine/_types.h>, and provide double_t and float_t typedefs in <math.h>. o Add some C99 manifest constants (FP_ILOGB0, FP_ILOGBNAN, HUGE_VALF, HUGE_VALL, INFINITY, NAN, and return values for fpclassify()) to <math.h> and others (FLT_EVAL_METHOD, DECIMAL_DIG) to <float.h> via <machine/float.h>. o Add C99 macro fpclassify() which calls __fpclassify{d,f,l}() based on the size of its argument. __fpclassifyl() is never called on alpha because (sizeof(long double) == sizeof(double)), which is good since __fpclassifyl() can't deal with such a small `long double'. This was developed by David Schultz and myself with input from bde and fenner. PR: 23103 Submitted by: David Schultz <dschultz@uclink.Berkeley.EDU> (significant portions) Reviewed by: bde, fenner (earlier versions)
Diffstat (limited to 'lib/libc/gen/fpclassify.3')
-rw-r--r--lib/libc/gen/fpclassify.381
1 files changed, 81 insertions, 0 deletions
diff --git a/lib/libc/gen/fpclassify.3 b/lib/libc/gen/fpclassify.3
new file mode 100644
index 0000000..3ed831f
--- /dev/null
+++ b/lib/libc/gen/fpclassify.3
@@ -0,0 +1,81 @@
+.\" Copyright (c) 2003 Mike Barcroft <mike@FreeBSD.org>
+.\" 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.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd February 8, 2003
+.Dt FPCLASSIFY 3
+.Os
+.Sh NAME
+.Nm fpclassify
+.Nd "classify a floating-point number"
+.Sh LIBRARY
+.Lb libc
+.Sh SYNOPSIS
+.In math.h
+.Ft int
+.Fn fpclassify "real-floating x"
+.Sh DESCRIPTION
+The
+.Fn fpclassify
+macro takes an argument of
+.Va x
+and returns one of the following manifest constants.
+.Bl -tag -width ".Dv FP_SUBNORMAL"
+.It Dv FP_INFINITE
+Indicates that
+.Va x
+is an infinite number.
+.It Dv FP_NAN
+Indicates that
+.Va x
+is not a number (NaN).
+.It Dv FP_NORMAL
+Indicates that
+.Va x
+is a normalized number.
+.It Dv FP_SUBNORMAL
+Indicates that
+.Va x
+is a denormalized number.
+.It Dv FP_ZERO
+Indicates that
+.Va x
+is zero (0 or -0).
+.El
+.Sh SEE ALSO
+.Xr math 3
+.Sh STANDARDS
+The
+.Fn fpclassify
+macro conforms to
+.St -isoC-99 .
+.Sh HISTORY
+The
+.Fn fpclassify
+macro was added in
+.Fx 5.1 .
+.Sh BUGS
+By default, the DEC Alpha architecture does not support IEEE rounding.
+See compiler documentation for additional details.
OpenPOWER on IntegriCloud