| 2875 |
dpurdie |
1 |
#pragma force_top_level
|
|
|
2 |
#pragma include_only_once
|
|
|
3 |
|
|
|
4 |
/* float.h: ANSI 'C' (X3J11 Oct 88) library header, section 2.2.4.2 */
|
|
|
5 |
/* Copyright (C) Codemist Ltd, 1988 */
|
|
|
6 |
/* Copyright (C) Advanced Risc Machines Ltd., 1991 */
|
|
|
7 |
/* version 0.01 */
|
|
|
8 |
|
|
|
9 |
#ifndef __float_h
|
|
|
10 |
#define __float_h
|
|
|
11 |
|
|
|
12 |
/* IEEE version: the following values are taken from the above ANSI draft. */
|
|
|
13 |
/* The ACORN FPE (v17) is known not to precisely implement IEEE arithmetic. */
|
|
|
14 |
|
|
|
15 |
#define FLT_RADIX 2
|
|
|
16 |
/* radix of exponent representation */
|
|
|
17 |
#define FLT_ROUNDS 1
|
|
|
18 |
/*
|
|
|
19 |
* The rounding mode for floating-point addition is characterised by the
|
|
|
20 |
* value of FLT_ROUNDS:
|
|
|
21 |
* -1 : indeterminable.
|
|
|
22 |
* 0 : towards zero.
|
|
|
23 |
* 1 : to nearest.
|
|
|
24 |
* 2 : towards positive infinity.
|
|
|
25 |
* 3 : towards negative infinity.
|
|
|
26 |
* ? : any other is implementation-defined.
|
|
|
27 |
*/
|
|
|
28 |
|
|
|
29 |
#define FLT_MANT_DIG 24
|
|
|
30 |
#define DBL_MANT_DIG 53
|
|
|
31 |
#define LDBL_MANT_DIG 53
|
|
|
32 |
/* number of base-FLT_RADIX digits in the floating point mantissa */
|
|
|
33 |
|
|
|
34 |
/* The values that follow are not achieved under Acorn's FPE version 17 */
|
|
|
35 |
/* but they should be correct in due course! */
|
|
|
36 |
|
|
|
37 |
#define FLT_DIG 6
|
|
|
38 |
#define DBL_DIG 15
|
|
|
39 |
#define LDBL_DIG 15
|
|
|
40 |
/* number of decimal digits of precision */
|
|
|
41 |
|
|
|
42 |
#define FLT_MIN_EXP (-125)
|
|
|
43 |
#define DBL_MIN_EXP (-1021)
|
|
|
44 |
#define LDBL_MIN_EXP (-1021)
|
|
|
45 |
/* minimum negative integer such that FLT_RADIX raised to that power */
|
|
|
46 |
/* minus 1 is a normalised floating-point number. */
|
|
|
47 |
|
|
|
48 |
#define FLT_MIN_10_EXP (-37)
|
|
|
49 |
#define DBL_MIN_10_EXP (-307)
|
|
|
50 |
#define LDBL_MIN_10_EXP (-307)
|
|
|
51 |
/* minimum negative integer such that 10 raised to that power is in the */
|
|
|
52 |
/* range of normalised floating-point numbers. */
|
|
|
53 |
|
|
|
54 |
#define FLT_MAX_EXP 128
|
|
|
55 |
#define DBL_MAX_EXP 1024
|
|
|
56 |
#define LDBL_MAX_EXP 1024
|
|
|
57 |
/* maximum integer such that FLT_RADIX raised to that power minus 1 is a */
|
|
|
58 |
#define FLT_MAX_10_EXP 38
|
|
|
59 |
#define DBL_MAX_10_EXP 308
|
|
|
60 |
#define LDBL_MAX_10_EXP 308
|
|
|
61 |
/* maximum integer such that 10 raised to that power is in the range of */
|
|
|
62 |
/* representable finite floating-point numbers. */
|
|
|
63 |
|
|
|
64 |
#define FLT_MAX 3.40282347e+38F
|
|
|
65 |
#define DBL_MAX 1.79769313486231571e+308
|
|
|
66 |
#define LDBL_MAX 1.79769313486231571e+308L
|
|
|
67 |
/* maximum representable finite floating-point number. */
|
|
|
68 |
|
|
|
69 |
#define FLT_EPSILON 1.19209290e-7F
|
|
|
70 |
#define DBL_EPSILON 2.2204460492503131e-16
|
|
|
71 |
#define LDBL_EPSILON 2.2204460492503131e-16L
|
|
|
72 |
/* minimum positive floating point number x such that 1.0 + x != 1.0 */
|
|
|
73 |
|
|
|
74 |
#define FLT_MIN 1.17549435e-38F
|
|
|
75 |
#define DBL_MIN 2.22507385850720138e-308
|
|
|
76 |
#define LDBL_MIN 2.22507385850720138e-308L
|
|
|
77 |
/* minimum normalised positive floating-point number. */
|
|
|
78 |
|
|
|
79 |
#endif
|
|
|
80 |
|
|
|
81 |
/* end of float.h */
|