diff options
Diffstat (limited to 'man0p/float.h.0p')
-rw-r--r-- | man0p/float.h.0p | 328 |
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 . |