// Rowley C Compiler, runtime support.
//
// Copyright (c) 2001, 2002 Rowley Associates Limited.
//
// This file may be distributed under the terms of the License Agreement
// provided with this software.
//
// THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

#ifndef __float_h
#define __float_h

// Fast floating-point math library rounds to nearest
#define FLT_ROUNDS 1

// Float arithmetic implemented in float precision
#define FLT_EVAL_METHOD 0

#define FLT_RADIX                 2
#define DECIMAL_DIG              17
#define FLT_MANT_DIG             24
#define FLT_EPSILON 1.19209290E-07F // decimal constant
#define FLT_DIG                   6
#define FLT_MIN_EXP            -125
#define FLT_MIN     1.17549435E-38F
#define FLT_MIN_10_EXP          -37
#define FLT_MAX_EXP            +128
#define FLT_MAX     3.40282347E+38F
#define FLT_MAX_10_EXP          +38

#ifdef __SHORT_DOUBLES

// double is 32-bit IEC 60559
#define DBL_MANT_DIG             24
#define DBL_EPSILON 1.19209290E-07F
#define DBL_DIG                   6
#define DBL_MIN_EXP            -125
#define DBL_MIN     1.17549435E-38F
#define DBL_MIN_10_EXP          -37
#define DBL_MAX_EXP            +128
#define DBL_MAX     3.40282347E+38F
#define DBL_MAX_10_EXP          +38

#else

// double is 64-bit IEC 60559
#define DBL_MANT_DIG                    53
#define DBL_EPSILON 2.2204460492503131E-16
#define DBL_DIG                         15
#define DBL_MIN_EXP                  -1021
#define DBL_MIN    2.2250738585072014E-308
#define DBL_MIN_10_EXP                -307
#define DBL_MAX_EXP                  +1024
#define DBL_MAX    1.7976931348623157E+308
#define DBL_MAX_10_EXP                +308

#endif

#endif