summaryrefslogtreecommitdiffstats
path: root/man0p/float.h.0p
diff options
context:
space:
mode:
Diffstat (limited to 'man0p/float.h.0p')
-rw-r--r--man0p/float.h.0p328
1 files changed, 328 insertions, 0 deletions
diff --git a/man0p/float.h.0p b/man0p/float.h.0p
new file mode 100644
index 000000000..28563691a
--- /dev/null
+++ b/man0p/float.h.0p
@@ -0,0 +1,328 @@
+.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
+.TH "<float.h>" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\" <float.h>
+.SH NAME
+float.h \- floating types
+.SH SYNOPSIS
+.LP
+\fB#include <float.h>\fP
+.SH DESCRIPTION
+.LP
+The characteristics of floating types are defined in terms of a model
+that describes a representation of floating-point numbers
+and values that provide information about an implementation's floating-point
+arithmetic.
+.LP
+The following parameters are used to define the model for each floating-point
+type:
+.TP 7
+\fIs\fP
+Sign (\(+-1).
+.TP 7
+\fIb\fP
+Base or radix of exponent representation (an integer >1).
+.TP 7
+\fIe\fP
+Exponent (an integer between a minimum \fIe\fP_min and a maximum \fIe\fP_max).
+.TP 7
+\fIp\fP
+Precision (the number of base-\fIb\fP digits in the significand).
+.TP 7
+\fIf\fP_k
+Non-negative integers less than \fIb\fP (the significand digits).
+.sp
+.LP
+A floating-point number \fIx\fP is defined by the following model:
+.LP
+.LP
+In addition to normalized floating-point numbers (\fIf\fP_1>0 if \fIx\fP!=0),
+floating types may be able to contain other
+kinds of floating-point numbers, such as subnormal floating-point
+numbers ( \fIx\fP!=0, \fIe\fP= \fIe\fP_min, \fIf\fP_1=0) and
+unnormalized floating-point numbers ( \fIx\fP!=0, \fIe\fP> \fIe\fP_min,
+\fIf\fP_1=0), and values that are not floating-point
+numbers, such as infinities and NaNs. A \fINaN\fP is an encoding signifying
+Not-a-Number. A \fIquiet NaN\fP propagates through
+almost every arithmetic operation without raising a floating-point
+exception; a \fIsignaling NaN\fP generally raises a
+floating-point exception when occurring as an arithmetic operand.
+.LP
+The accuracy of the floating-point operations ( \fB'+'\fP , \fB'-'\fP
+, \fB'*'\fP , \fB'/'\fP ) and of the library
+functions in \fI<math.h>\fP and \fI<complex.h>\fP that return floating-point
+results is implementation-defined. The
+implementation may state that the accuracy is unknown.
+.LP
+All integer values in the \fI<float.h>\fP header, except FLT_ROUNDS,
+shall be constant expressions suitable for use in
+\fB#if\fP preprocessing directives; all floating values shall be constant
+expressions. All except DECIMAL_DIG, FLT_EVAL_METHOD,
+FLT_RADIX, and FLT_ROUNDS have separate names for all three floating-point
+types. The floating-point model representation is
+provided for all values except FLT_EVAL_METHOD and FLT_ROUNDS.
+.LP
+The rounding mode for floating-point addition is characterized by
+the implementation-defined value of FLT_ROUNDS:
+.TP 7
+-1
+Indeterminable.
+.TP 7
+\ 0
+Toward zero.
+.TP 7
+\ 1
+To nearest.
+.TP 7
+\ 2
+Toward positive infinity.
+.TP 7
+\ 3
+Toward negative infinity.
+.sp
+.LP
+All other values for FLT_ROUNDS characterize implementation-defined
+rounding behavior.
+.LP
+The values of operations with floating operands and values subject
+to the usual arithmetic conversions and of floating constants
+are evaluated to a format whose range and precision may be greater
+than required by the type. The use of evaluation formats is
+characterized by the implementation-defined value of FLT_EVAL_METHOD:
+.TP 7
+-1
+Indeterminable.
+.TP 7
+\ 0
+Evaluate all operations and constants just to the range and precision
+of the type.
+.TP 7
+\ 1
+Evaluate operations and constants of type \fBfloat\fP and \fBdouble\fP
+to the range and precision of the \fBdouble\fP type;
+evaluate \fBlong double\fP operations and constants to the range and
+precision of the \fBlong double\fP type.
+.TP 7
+\ 2
+Evaluate all operations and constants to the range and precision of
+the \fBlong double\fP type.
+.sp
+.LP
+All other negative values for FLT_EVAL_METHOD characterize implementation-defined
+behavior.
+.LP
+The values given in the following list shall be defined as constant
+expressions with implementation-defined values that are
+greater or equal in magnitude (absolute value) to those shown, with
+the same sign.
+.IP " *" 3
+Radix of exponent representation, \fIb\fP.
+.TP 7
+FLT_RADIX
+.RS
+2
+.RE
+.sp
+.LP
+.IP " *" 3
+Number of base-FLT_RADIX digits in the floating-point significand,
+\fIp\fP.
+.TP 7
+FLT_MANT_DIG
+.TP 7
+DBL_MANT_DIG
+.TP 7
+LDBL_MANT_DIG
+.sp
+.LP
+.IP " *" 3
+Number of decimal digits, \fIn\fP, such that any floating-point number
+in the widest supported floating type with \fIp\fP_max
+radix \fIb\fP digits can be rounded to a floating-point number with
+\fIn\fP decimal digits and back again without change to the
+value.
+.LP
+.TP 7
+DECIMAL_DIG
+.RS
+10
+.RE
+.sp
+.LP
+.IP " *" 3
+Number of decimal digits, \fIq\fP, such that any floating-point number
+with \fIq\fP decimal digits can be rounded into a
+floating-point number with \fIp\fP radix \fIb\fP digits and back again
+without change to the \fIq\fP decimal digits.
+.LP
+.TP 7
+FLT_DIG
+.RS
+6
+.RE
+.TP 7
+DBL_DIG
+.RS
+10
+.RE
+.TP 7
+LDBL_DIG
+.RS
+10
+.RE
+.sp
+.LP
+.IP " *" 3
+Minimum negative integer such that FLT_RADIX raised to that power
+minus 1 is a normalized floating-point number, \fIe\fP_min.
+.TP 7
+FLT_MIN_EXP
+.TP 7
+DBL_MIN_EXP
+.TP 7
+LDBL_MIN_EXP
+.sp
+.LP
+.IP " *" 3
+Minimum negative integer such that 10 raised to that power is in the
+range of normalized floating-point numbers.
+.LP
+.TP 7
+FLT_MIN_10_EXP
+.RS
+-37
+.RE
+.TP 7
+DBL_MIN_10_EXP
+.RS
+-37
+.RE
+.TP 7
+LDBL_MIN_10_EXP
+.RS
+-37
+.RE
+.sp
+.LP
+.IP " *" 3
+Maximum integer such that FLT_RADIX raised to that power minus 1 is
+a representable finite floating-point number, \fIe\fP_max.
+.TP 7
+FLT_MAX_EXP
+.TP 7
+DBL_MAX_EXP
+.TP 7
+LDBL_MAX_EXP
+.sp
+.LP
+.IP " *" 3
+Maximum integer such that 10 raised to that power is in the range
+of representable finite floating-point numbers.
+.LP
+.TP 7
+FLT_MAX_10_EXP
+.RS
++37
+.RE
+.TP 7
+DBL_MAX_10_EXP
+.RS
++37
+.RE
+.TP 7
+LDBL_MAX_10_EXP
+.RS
++37
+.RE
+.sp
+.LP
+.LP
+The values given in the following list shall be defined as constant
+expressions with implementation-defined values that are
+greater than or equal to those shown:
+.IP " *" 3
+Maximum representable finite floating-point number.
+.LP
+.TP 7
+FLT_MAX
+.RS
+1E+37
+.RE
+.TP 7
+DBL_MAX
+.RS
+1E+37
+.RE
+.TP 7
+LDBL_MAX
+.RS
+1E+37
+.RE
+.sp
+.LP
+.LP
+The values given in the following list shall be defined as constant
+expressions with implementation-defined (positive) values
+that are less than or equal to those shown:
+.IP " *" 3
+The difference between 1 and the least value greater than 1 that is
+representable in the given floating-point type, \fIb\fP**1-\fIp\fP.
+.TP 7
+FLT_EPSILON
+.RS
+1E-5
+.RE
+.TP 7
+DBL_EPSILON
+.RS
+1E-9
+.RE
+.TP 7
+LDBL_EPSILON
+.RS
+1E-9
+.RE
+.sp
+.LP
+.IP " *" 3
+Minimum normalized positive floating-point number, \fIb\fP**\fIe\fP_min.
+.TP 7
+FLT_MIN
+.RS
+1E-37
+.RE
+.TP 7
+DBL_MIN
+.RS
+1E-37
+.RE
+.TP 7
+LDBL_MIN
+.RS
+1E-37
+.RE
+.sp
+.LP
+.LP
+\fIThe following sections are informative.\fP
+.SH APPLICATION USAGE
+.LP
+None.
+.SH RATIONALE
+.LP
+None.
+.SH FUTURE DIRECTIONS
+.LP
+None.
+.SH SEE ALSO
+.LP
+\fI<complex.h>\fP , \fI<math.h>\fP
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
+Electrical and Electronics Engineers, Inc and The Open Group. In the
+event of any discrepancy between this version and the original IEEE and
+The Open Group Standard, the original IEEE and The Open Group Standard
+is the referee document. The original Standard can be obtained online at
+http://www.opengroup.org/unix/online.html .