softfloat.txt revision 1.1.4.2 1 1.1.4.2 minoura $NetBSD: softfloat.txt,v 1.1.4.2 2000/06/23 16:18:04 minoura Exp $
2 1.1.4.2 minoura
3 1.1.4.2 minoura SoftFloat Release 2a General Documentation
4 1.1.4.2 minoura
5 1.1.4.2 minoura John R. Hauser
6 1.1.4.2 minoura 1998 December 13
7 1.1.4.2 minoura
8 1.1.4.2 minoura
9 1.1.4.2 minoura -------------------------------------------------------------------------------
10 1.1.4.2 minoura Introduction
11 1.1.4.2 minoura
12 1.1.4.2 minoura SoftFloat is a software implementation of floating-point that conforms to
13 1.1.4.2 minoura the IEC/IEEE Standard for Binary Floating-Point Arithmetic. As many as four
14 1.1.4.2 minoura formats are supported: single precision, double precision, extended double
15 1.1.4.2 minoura precision, and quadruple precision. All operations required by the standard
16 1.1.4.2 minoura are implemented, except for conversions to and from decimal.
17 1.1.4.2 minoura
18 1.1.4.2 minoura This document gives information about the types defined and the routines
19 1.1.4.2 minoura implemented by SoftFloat. It does not attempt to define or explain the
20 1.1.4.2 minoura IEC/IEEE Floating-Point Standard. Details about the standard are available
21 1.1.4.2 minoura elsewhere.
22 1.1.4.2 minoura
23 1.1.4.2 minoura
24 1.1.4.2 minoura -------------------------------------------------------------------------------
25 1.1.4.2 minoura Limitations
26 1.1.4.2 minoura
27 1.1.4.2 minoura SoftFloat is written in C and is designed to work with other C code. The
28 1.1.4.2 minoura SoftFloat header files assume an ISO/ANSI-style C compiler. No attempt
29 1.1.4.2 minoura has been made to accomodate compilers that are not ISO-conformant. In
30 1.1.4.2 minoura particular, the distributed header files will not be acceptable to any
31 1.1.4.2 minoura compiler that does not recognize function prototypes.
32 1.1.4.2 minoura
33 1.1.4.2 minoura Support for the extended double-precision and quadruple-precision formats
34 1.1.4.2 minoura depends on a C compiler that implements 64-bit integer arithmetic. If the
35 1.1.4.2 minoura largest integer format supported by the C compiler is 32 bits, SoftFloat is
36 1.1.4.2 minoura limited to only single and double precisions. When that is the case, all
37 1.1.4.2 minoura references in this document to the extended double precision, quadruple
38 1.1.4.2 minoura precision, and 64-bit integers should be ignored.
39 1.1.4.2 minoura
40 1.1.4.2 minoura
41 1.1.4.2 minoura -------------------------------------------------------------------------------
42 1.1.4.2 minoura Contents
43 1.1.4.2 minoura
44 1.1.4.2 minoura Introduction
45 1.1.4.2 minoura Limitations
46 1.1.4.2 minoura Contents
47 1.1.4.2 minoura Legal Notice
48 1.1.4.2 minoura Types and Functions
49 1.1.4.2 minoura Rounding Modes
50 1.1.4.2 minoura Extended Double-Precision Rounding Precision
51 1.1.4.2 minoura Exceptions and Exception Flags
52 1.1.4.2 minoura Function Details
53 1.1.4.2 minoura Conversion Functions
54 1.1.4.2 minoura Standard Arithmetic Functions
55 1.1.4.2 minoura Remainder Functions
56 1.1.4.2 minoura Round-to-Integer Functions
57 1.1.4.2 minoura Comparison Functions
58 1.1.4.2 minoura Signaling NaN Test Functions
59 1.1.4.2 minoura Raise-Exception Function
60 1.1.4.2 minoura Contact Information
61 1.1.4.2 minoura
62 1.1.4.2 minoura
63 1.1.4.2 minoura
64 1.1.4.2 minoura -------------------------------------------------------------------------------
65 1.1.4.2 minoura Legal Notice
66 1.1.4.2 minoura
67 1.1.4.2 minoura SoftFloat was written by John R. Hauser. This work was made possible in
68 1.1.4.2 minoura part by the International Computer Science Institute, located at Suite 600,
69 1.1.4.2 minoura 1947 Center Street, Berkeley, California 94704. Funding was partially
70 1.1.4.2 minoura provided by the National Science Foundation under grant MIP-9311980. The
71 1.1.4.2 minoura original version of this code was written as part of a project to build
72 1.1.4.2 minoura a fixed-point vector processor in collaboration with the University of
73 1.1.4.2 minoura California at Berkeley, overseen by Profs. Nelson Morgan and John Wawrzynek.
74 1.1.4.2 minoura
75 1.1.4.2 minoura THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort
76 1.1.4.2 minoura has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT
77 1.1.4.2 minoura TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO
78 1.1.4.2 minoura PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY
79 1.1.4.2 minoura AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE.
80 1.1.4.2 minoura
81 1.1.4.2 minoura
82 1.1.4.2 minoura -------------------------------------------------------------------------------
83 1.1.4.2 minoura Types and Functions
84 1.1.4.2 minoura
85 1.1.4.2 minoura When 64-bit integers are supported by the compiler, the `softfloat.h' header
86 1.1.4.2 minoura file defines four types: `float32' (single precision), `float64' (double
87 1.1.4.2 minoura precision), `floatx80' (extended double precision), and `float128'
88 1.1.4.2 minoura (quadruple precision). The `float32' and `float64' types are defined in
89 1.1.4.2 minoura terms of 32-bit and 64-bit integer types, respectively, while the `float128'
90 1.1.4.2 minoura type is defined as a structure of two 64-bit integers, taking into account
91 1.1.4.2 minoura the byte order of the particular machine being used. The `floatx80' type
92 1.1.4.2 minoura is defined as a structure containing one 16-bit and one 64-bit integer, with
93 1.1.4.2 minoura the machine's byte order again determining the order of the `high' and `low'
94 1.1.4.2 minoura fields.
95 1.1.4.2 minoura
96 1.1.4.2 minoura When 64-bit integers are _not_ supported by the compiler, the `softfloat.h'
97 1.1.4.2 minoura header file defines only two types: `float32' and `float64'. Because
98 1.1.4.2 minoura ISO/ANSI C guarantees at least one built-in integer type of 32 bits,
99 1.1.4.2 minoura the `float32' type is identified with an appropriate integer type. The
100 1.1.4.2 minoura `float64' type is defined as a structure of two 32-bit integers, with the
101 1.1.4.2 minoura machine's byte order determining the order of the fields.
102 1.1.4.2 minoura
103 1.1.4.2 minoura In either case, the types in `softfloat.h' are defined such that if a system
104 1.1.4.2 minoura implements the usual C `float' and `double' types according to the IEC/IEEE
105 1.1.4.2 minoura Standard, then the `float32' and `float64' types should be indistinguishable
106 1.1.4.2 minoura in memory from the native `float' and `double' types. (On the other hand,
107 1.1.4.2 minoura when `float32' or `float64' values are placed in processor registers by
108 1.1.4.2 minoura the compiler, the type of registers used may differ from those used for the
109 1.1.4.2 minoura native `float' and `double' types.)
110 1.1.4.2 minoura
111 1.1.4.2 minoura SoftFloat implements the following arithmetic operations:
112 1.1.4.2 minoura
113 1.1.4.2 minoura -- Conversions among all the floating-point formats, and also between
114 1.1.4.2 minoura integers (32-bit and 64-bit) and any of the floating-point formats.
115 1.1.4.2 minoura
116 1.1.4.2 minoura -- The usual add, subtract, multiply, divide, and square root operations
117 1.1.4.2 minoura for all floating-point formats.
118 1.1.4.2 minoura
119 1.1.4.2 minoura -- For each format, the floating-point remainder operation defined by the
120 1.1.4.2 minoura IEC/IEEE Standard.
121 1.1.4.2 minoura
122 1.1.4.2 minoura -- For each floating-point format, a ``round to integer'' operation that
123 1.1.4.2 minoura rounds to the nearest integer value in the same format. (The floating-
124 1.1.4.2 minoura point formats can hold integer values, of course.)
125 1.1.4.2 minoura
126 1.1.4.2 minoura -- Comparisons between two values in the same floating-point format.
127 1.1.4.2 minoura
128 1.1.4.2 minoura The only functions required by the IEC/IEEE Standard that are not provided
129 1.1.4.2 minoura are conversions to and from decimal.
130 1.1.4.2 minoura
131 1.1.4.2 minoura
132 1.1.4.2 minoura -------------------------------------------------------------------------------
133 1.1.4.2 minoura Rounding Modes
134 1.1.4.2 minoura
135 1.1.4.2 minoura All four rounding modes prescribed by the IEC/IEEE Standard are implemented
136 1.1.4.2 minoura for all operations that require rounding. The rounding mode is selected
137 1.1.4.2 minoura by the global variable `float_rounding_mode'. This variable may be set
138 1.1.4.2 minoura to one of the values `float_round_nearest_even', `float_round_to_zero',
139 1.1.4.2 minoura `float_round_down', or `float_round_up'. The rounding mode is initialized
140 1.1.4.2 minoura to nearest/even.
141 1.1.4.2 minoura
142 1.1.4.2 minoura
143 1.1.4.2 minoura -------------------------------------------------------------------------------
144 1.1.4.2 minoura Extended Double-Precision Rounding Precision
145 1.1.4.2 minoura
146 1.1.4.2 minoura For extended double precision (`floatx80') only, the rounding precision
147 1.1.4.2 minoura of the standard arithmetic operations is controlled by the global variable
148 1.1.4.2 minoura `floatx80_rounding_precision'. The operations affected are:
149 1.1.4.2 minoura
150 1.1.4.2 minoura floatx80_add floatx80_sub floatx80_mul floatx80_div floatx80_sqrt
151 1.1.4.2 minoura
152 1.1.4.2 minoura When `floatx80_rounding_precision' is set to its default value of 80, these
153 1.1.4.2 minoura operations are rounded (as usual) to the full precision of the extended
154 1.1.4.2 minoura double-precision format. Setting `floatx80_rounding_precision' to 32
155 1.1.4.2 minoura or to 64 causes the operations listed to be rounded to reduced precision
156 1.1.4.2 minoura equivalent to single precision (`float32') or to double precision
157 1.1.4.2 minoura (`float64'), respectively. When rounding to reduced precision, additional
158 1.1.4.2 minoura bits in the result significand beyond the rounding point are set to zero.
159 1.1.4.2 minoura The consequences of setting `floatx80_rounding_precision' to a value other
160 1.1.4.2 minoura than 32, 64, or 80 is not specified. Operations other than the ones listed
161 1.1.4.2 minoura above are not affected by `floatx80_rounding_precision'.
162 1.1.4.2 minoura
163 1.1.4.2 minoura
164 1.1.4.2 minoura -------------------------------------------------------------------------------
165 1.1.4.2 minoura Exceptions and Exception Flags
166 1.1.4.2 minoura
167 1.1.4.2 minoura All five exception flags required by the IEC/IEEE Standard are
168 1.1.4.2 minoura implemented. Each flag is stored as a unique bit in the global variable
169 1.1.4.2 minoura `float_exception_flags'. The positions of the exception flag bits within
170 1.1.4.2 minoura this variable are determined by the bit masks `float_flag_inexact',
171 1.1.4.2 minoura `float_flag_underflow', `float_flag_overflow', `float_flag_divbyzero', and
172 1.1.4.2 minoura `float_flag_invalid'. The exception flags variable is initialized to all 0,
173 1.1.4.2 minoura meaning no exceptions.
174 1.1.4.2 minoura
175 1.1.4.2 minoura An individual exception flag can be cleared with the statement
176 1.1.4.2 minoura
177 1.1.4.2 minoura float_exception_flags &= ~ float_flag_<exception>;
178 1.1.4.2 minoura
179 1.1.4.2 minoura where `<exception>' is the appropriate name. To raise a floating-point
180 1.1.4.2 minoura exception, the SoftFloat function `float_raise' should be used (see below).
181 1.1.4.2 minoura
182 1.1.4.2 minoura In the terminology of the IEC/IEEE Standard, SoftFloat can detect tininess
183 1.1.4.2 minoura for underflow either before or after rounding. The choice is made by
184 1.1.4.2 minoura the global variable `float_detect_tininess', which can be set to either
185 1.1.4.2 minoura `float_tininess_before_rounding' or `float_tininess_after_rounding'.
186 1.1.4.2 minoura Detecting tininess after rounding is better because it results in fewer
187 1.1.4.2 minoura spurious underflow signals. The other option is provided for compatibility
188 1.1.4.2 minoura with some systems. Like most systems, SoftFloat always detects loss of
189 1.1.4.2 minoura accuracy for underflow as an inexact result.
190 1.1.4.2 minoura
191 1.1.4.2 minoura
192 1.1.4.2 minoura -------------------------------------------------------------------------------
193 1.1.4.2 minoura Function Details
194 1.1.4.2 minoura
195 1.1.4.2 minoura - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
196 1.1.4.2 minoura Conversion Functions
197 1.1.4.2 minoura
198 1.1.4.2 minoura All conversions among the floating-point formats are supported, as are all
199 1.1.4.2 minoura conversions between a floating-point format and 32-bit and 64-bit signed
200 1.1.4.2 minoura integers. The complete set of conversion functions is:
201 1.1.4.2 minoura
202 1.1.4.2 minoura int32_to_float32 int64_to_float32
203 1.1.4.2 minoura int32_to_float64 int64_to_float32
204 1.1.4.2 minoura int32_to_floatx80 int64_to_floatx80
205 1.1.4.2 minoura int32_to_float128 int64_to_float128
206 1.1.4.2 minoura
207 1.1.4.2 minoura float32_to_int32 float32_to_int64
208 1.1.4.2 minoura float32_to_int32 float64_to_int64
209 1.1.4.2 minoura floatx80_to_int32 floatx80_to_int64
210 1.1.4.2 minoura float128_to_int32 float128_to_int64
211 1.1.4.2 minoura
212 1.1.4.2 minoura float32_to_float64 float32_to_floatx80 float32_to_float128
213 1.1.4.2 minoura float64_to_float32 float64_to_floatx80 float64_to_float128
214 1.1.4.2 minoura floatx80_to_float32 floatx80_to_float64 floatx80_to_float128
215 1.1.4.2 minoura float128_to_float32 float128_to_float64 float128_to_floatx80
216 1.1.4.2 minoura
217 1.1.4.2 minoura Each conversion function takes one operand of the appropriate type and
218 1.1.4.2 minoura returns one result. Conversions from a smaller to a larger floating-point
219 1.1.4.2 minoura format are always exact and so require no rounding. Conversions from 32-bit
220 1.1.4.2 minoura integers to double precision and larger formats are also exact, and likewise
221 1.1.4.2 minoura for conversions from 64-bit integers to extended double and quadruple
222 1.1.4.2 minoura precisions.
223 1.1.4.2 minoura
224 1.1.4.2 minoura Conversions from floating-point to integer raise the invalid exception if
225 1.1.4.2 minoura the source value cannot be rounded to a representable integer of the desired
226 1.1.4.2 minoura size (32 or 64 bits). If the floating-point operand is a NaN, the largest
227 1.1.4.2 minoura positive integer is returned. Otherwise, if the conversion overflows, the
228 1.1.4.2 minoura largest integer with the same sign as the operand is returned.
229 1.1.4.2 minoura
230 1.1.4.2 minoura On conversions to integer, if the floating-point operand is not already an
231 1.1.4.2 minoura integer value, the operand is rounded according to the current rounding
232 1.1.4.2 minoura mode as specified by `float_rounding_mode'. Because C (and perhaps other
233 1.1.4.2 minoura languages) require that conversions to integers be rounded toward zero, the
234 1.1.4.2 minoura following functions are provided for improved speed and convenience:
235 1.1.4.2 minoura
236 1.1.4.2 minoura float32_to_int32_round_to_zero float32_to_int64_round_to_zero
237 1.1.4.2 minoura float64_to_int32_round_to_zero float64_to_int64_round_to_zero
238 1.1.4.2 minoura floatx80_to_int32_round_to_zero floatx80_to_int64_round_to_zero
239 1.1.4.2 minoura float128_to_int32_round_to_zero float128_to_int64_round_to_zero
240 1.1.4.2 minoura
241 1.1.4.2 minoura These variant functions ignore `float_rounding_mode' and always round toward
242 1.1.4.2 minoura zero.
243 1.1.4.2 minoura
244 1.1.4.2 minoura - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
245 1.1.4.2 minoura Standard Arithmetic Functions
246 1.1.4.2 minoura
247 1.1.4.2 minoura The following standard arithmetic functions are provided:
248 1.1.4.2 minoura
249 1.1.4.2 minoura float32_add float32_sub float32_mul float32_div float32_sqrt
250 1.1.4.2 minoura float64_add float64_sub float64_mul float64_div float64_sqrt
251 1.1.4.2 minoura floatx80_add floatx80_sub floatx80_mul floatx80_div floatx80_sqrt
252 1.1.4.2 minoura float128_add float128_sub float128_mul float128_div float128_sqrt
253 1.1.4.2 minoura
254 1.1.4.2 minoura Each function takes two operands, except for `sqrt' which takes only one.
255 1.1.4.2 minoura The operands and result are all of the same type.
256 1.1.4.2 minoura
257 1.1.4.2 minoura Rounding of the extended double-precision (`floatx80') functions is affected
258 1.1.4.2 minoura by the `floatx80_rounding_precision' variable, as explained above in the
259 1.1.4.2 minoura section _Extended_Double-Precision_Rounding_Precision_.
260 1.1.4.2 minoura
261 1.1.4.2 minoura - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
262 1.1.4.2 minoura Remainder Functions
263 1.1.4.2 minoura
264 1.1.4.2 minoura For each format, SoftFloat implements the remainder function according to
265 1.1.4.2 minoura the IEC/IEEE Standard. The remainder functions are:
266 1.1.4.2 minoura
267 1.1.4.2 minoura float32_rem
268 1.1.4.2 minoura float64_rem
269 1.1.4.2 minoura floatx80_rem
270 1.1.4.2 minoura float128_rem
271 1.1.4.2 minoura
272 1.1.4.2 minoura Each remainder function takes two operands. The operands and result are all
273 1.1.4.2 minoura of the same type. Given operands x and y, the remainder functions return
274 1.1.4.2 minoura the value x - n*y, where n is the integer closest to x/y. If x/y is exactly
275 1.1.4.2 minoura halfway between two integers, n is the even integer closest to x/y. The
276 1.1.4.2 minoura remainder functions are always exact and so require no rounding.
277 1.1.4.2 minoura
278 1.1.4.2 minoura Depending on the relative magnitudes of the operands, the remainder
279 1.1.4.2 minoura functions can take considerably longer to execute than the other SoftFloat
280 1.1.4.2 minoura functions. This is inherent in the remainder operation itself and is not a
281 1.1.4.2 minoura flaw in the SoftFloat implementation.
282 1.1.4.2 minoura
283 1.1.4.2 minoura - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
284 1.1.4.2 minoura Round-to-Integer Functions
285 1.1.4.2 minoura
286 1.1.4.2 minoura For each format, SoftFloat implements the round-to-integer function
287 1.1.4.2 minoura specified by the IEC/IEEE Standard. The functions are:
288 1.1.4.2 minoura
289 1.1.4.2 minoura float32_round_to_int
290 1.1.4.2 minoura float64_round_to_int
291 1.1.4.2 minoura floatx80_round_to_int
292 1.1.4.2 minoura float128_round_to_int
293 1.1.4.2 minoura
294 1.1.4.2 minoura Each function takes a single floating-point operand and returns a result of
295 1.1.4.2 minoura the same type. (Note that the result is not an integer type.) The operand
296 1.1.4.2 minoura is rounded to an exact integer according to the current rounding mode, and
297 1.1.4.2 minoura the resulting integer value is returned in the same floating-point format.
298 1.1.4.2 minoura
299 1.1.4.2 minoura - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
300 1.1.4.2 minoura Comparison Functions
301 1.1.4.2 minoura
302 1.1.4.2 minoura The following floating-point comparison functions are provided:
303 1.1.4.2 minoura
304 1.1.4.2 minoura float32_eq float32_le float32_lt
305 1.1.4.2 minoura float64_eq float64_le float64_lt
306 1.1.4.2 minoura floatx80_eq floatx80_le floatx80_lt
307 1.1.4.2 minoura float128_eq float128_le float128_lt
308 1.1.4.2 minoura
309 1.1.4.2 minoura Each function takes two operands of the same type and returns a 1 or 0
310 1.1.4.2 minoura representing either _true_ or _false_. The abbreviation `eq' stands for
311 1.1.4.2 minoura ``equal'' (=); `le' stands for ``less than or equal'' (<=); and `lt' stands
312 1.1.4.2 minoura for ``less than'' (<).
313 1.1.4.2 minoura
314 1.1.4.2 minoura The standard greater-than (>), greater-than-or-equal (>=), and not-equal
315 1.1.4.2 minoura (!=) functions are easily obtained using the functions provided. The
316 1.1.4.2 minoura not-equal function is just the logical complement of the equal function.
317 1.1.4.2 minoura The greater-than-or-equal function is identical to the less-than-or-equal
318 1.1.4.2 minoura function with the operands reversed; and the greater-than function can be
319 1.1.4.2 minoura obtained from the less-than function in the same way.
320 1.1.4.2 minoura
321 1.1.4.2 minoura The IEC/IEEE Standard specifies that the less-than-or-equal and less-than
322 1.1.4.2 minoura functions raise the invalid exception if either input is any kind of NaN.
323 1.1.4.2 minoura The equal functions, on the other hand, are defined not to raise the invalid
324 1.1.4.2 minoura exception on quiet NaNs. For completeness, SoftFloat provides the following
325 1.1.4.2 minoura additional functions:
326 1.1.4.2 minoura
327 1.1.4.2 minoura float32_eq_signaling float32_le_quiet float32_lt_quiet
328 1.1.4.2 minoura float64_eq_signaling float64_le_quiet float64_lt_quiet
329 1.1.4.2 minoura floatx80_eq_signaling floatx80_le_quiet floatx80_lt_quiet
330 1.1.4.2 minoura float128_eq_signaling float128_le_quiet float128_lt_quiet
331 1.1.4.2 minoura
332 1.1.4.2 minoura The `signaling' equal functions are identical to the standard functions
333 1.1.4.2 minoura except that the invalid exception is raised for any NaN input. Likewise,
334 1.1.4.2 minoura the `quiet' comparison functions are identical to their counterparts except
335 1.1.4.2 minoura that the invalid exception is not raised for quiet NaNs.
336 1.1.4.2 minoura
337 1.1.4.2 minoura - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
338 1.1.4.2 minoura Signaling NaN Test Functions
339 1.1.4.2 minoura
340 1.1.4.2 minoura The following functions test whether a floating-point value is a signaling
341 1.1.4.2 minoura NaN:
342 1.1.4.2 minoura
343 1.1.4.2 minoura float32_is_signaling_nan
344 1.1.4.2 minoura float64_is_signaling_nan
345 1.1.4.2 minoura floatx80_is_signaling_nan
346 1.1.4.2 minoura float128_is_signaling_nan
347 1.1.4.2 minoura
348 1.1.4.2 minoura The functions take one operand and return 1 if the operand is a signaling
349 1.1.4.2 minoura NaN and 0 otherwise.
350 1.1.4.2 minoura
351 1.1.4.2 minoura - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
352 1.1.4.2 minoura Raise-Exception Function
353 1.1.4.2 minoura
354 1.1.4.2 minoura SoftFloat provides a function for raising floating-point exceptions:
355 1.1.4.2 minoura
356 1.1.4.2 minoura float_raise
357 1.1.4.2 minoura
358 1.1.4.2 minoura The function takes a mask indicating the set of exceptions to raise. No
359 1.1.4.2 minoura result is returned. In addition to setting the specified exception flags,
360 1.1.4.2 minoura this function may cause a trap or abort appropriate for the current system.
361 1.1.4.2 minoura
362 1.1.4.2 minoura - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
363 1.1.4.2 minoura
364 1.1.4.2 minoura
365 1.1.4.2 minoura -------------------------------------------------------------------------------
366 1.1.4.2 minoura Contact Information
367 1.1.4.2 minoura
368 1.1.4.2 minoura At the time of this writing, the most up-to-date information about
369 1.1.4.2 minoura SoftFloat and the latest release can be found at the Web page `http://
370 1.1.4.2 minoura HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/SoftFloat.html'.
371 1.1.4.2 minoura
372 1.1.4.2 minoura
373