/* Copyright 1996 Acorn Computers Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma force_top_level #pragma include_only_once /* float.h: ANSI 'C' (X3J11 Oct 88) library header, section 2.2.4.2 */ /* Copyright (C) Codemist Ltd, 1988 */ /* Copyright (C) Acorn Computers Ltd. 1991, 1992 */ /* version 2.00 */ #ifndef __float_h #define __float_h /* IEEE version: the following values are taken from the above ANSI draft. */ /* The ACORN FPE (v17) is known not to precisely implement IEEE arithmetic. */ #define FLT_RADIX 2 /* radix of exponent representation */ #define FLT_ROUNDS 1 /* * The rounding mode for floating-point addition is characterised by the * value of FLT_ROUNDS: * -1 : indeterminable. * 0 : towards zero. * 1 : to nearest. * 2 : towards positive infinity. * 3 : towards negative infinity. * ? : any other is implementation-defined. */ #define FLT_MANT_DIG 24 #define DBL_MANT_DIG 53 #define LDBL_MANT_DIG 53 /* number of base-FLT_RADIX digits in the floating point mantissa */ /* The values that follow are not achieved under Acorn's FPE version 17 */ /* but they should be correct in due course! */ #define FLT_DIG 6 #define DBL_DIG 15 #define LDBL_DIG 15 /* number of decimal digits of precision */ #define FLT_MIN_EXP (-125) #define DBL_MIN_EXP (-1021) #define LDBL_MIN_EXP (-1021) /* minimum negative integer such that FLT_RADIX raised to that power */ /* minus 1 is a normalised floating-point number. */ #define FLT_MIN_10_EXP (-37) #define DBL_MIN_10_EXP (-307) #define LDBL_MIN_10_EXP (-307) /* minimum negative integer such that 10 raised to that power is in the */ /* range of normalised floating-point numbers. */ #define FLT_MAX_EXP 128 #define DBL_MAX_EXP 1024 #define LDBL_MAX_EXP 1024 /* maximum integer such that FLT_RADIX raised to that power minus 1 is a */ #define FLT_MAX_10_EXP 38 #define DBL_MAX_10_EXP 308 #define LDBL_MAX_10_EXP 308 /* maximum integer such that 10 raised to that power is in the range of */ /* representable finite floating-point numbers. */ #define FLT_MAX 3.40282347e+38F #define DBL_MAX 1.79769313486231571e+308 #define LDBL_MAX 1.79769313486231571e+308L /* maximum representable finite floating-point number. */ #define FLT_EPSILON 1.19209290e-7F #define DBL_EPSILON 2.2204460492503131e-16 #define LDBL_EPSILON 2.2204460492503131e-16L /* minimum positive floating point number x such that 1.0 + x != 1.0 */ #define FLT_MIN 1.17549435e-38F #define DBL_MIN 2.22507385850720138e-308 #define LDBL_MIN 2.22507385850720138e-308L /* minimum normalised positive floating-point number. */ #endif /* end of float.h */