android / platform / prebuilts / gcc / darwin-x86 / host / i686-apple-darwin-4.2.1 / 5ba5d62323c8a7d60f89ecbaa0722732f1ba4c8b / . / lib / gcc / i686-apple-darwin10 / 4.2.1 / include / float.h

/* Copyright (C) 2002 Free Software Foundation, Inc. | |

This file is part of GCC. | |

GCC is free software; you can redistribute it and/or modify | |

it under the terms of the GNU General Public License as published by | |

the Free Software Foundation; either version 2, or (at your option) | |

any later version. | |

GCC is distributed in the hope that it will be useful, | |

but WITHOUT ANY WARRANTY; without even the implied warranty of | |

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |

GNU General Public License for more details. | |

You should have received a copy of the GNU General Public License | |

along with GCC; see the file COPYING. If not, write to | |

the Free Software Foundation, 51 Franklin Street, Fifth Floor, | |

Boston, MA 02110-1301, USA. */ | |

/* As a special exception, if you include this header file into source | |

files compiled by GCC, this header file does not by itself cause | |

the resulting executable to be covered by the GNU General Public | |

License. This exception does not however invalidate any other | |

reasons why the executable file might be covered by the GNU General | |

Public License. */ | |

/* | |

* ISO C Standard: 5.2.4.2.2 Characteristics of floating types <float.h> | |

*/ | |

#ifndef _FLOAT_H___ | |

#define _FLOAT_H___ | |

/* Radix of exponent representation, b. */ | |

#undef FLT_RADIX | |

#define FLT_RADIX __FLT_RADIX__ | |

/* Number of base-FLT_RADIX digits in the significand, p. */ | |

#undef FLT_MANT_DIG | |

#undef DBL_MANT_DIG | |

#undef LDBL_MANT_DIG | |

#define FLT_MANT_DIG __FLT_MANT_DIG__ | |

#define DBL_MANT_DIG __DBL_MANT_DIG__ | |

#define LDBL_MANT_DIG __LDBL_MANT_DIG__ | |

/* Number of decimal digits, q, such that any floating-point number with q | |

decimal digits can be rounded into a floating-point number with p radix b | |

digits and back again without change to the q decimal digits, | |

p * log10(b) if b is a power of 10 | |

floor((p - 1) * log10(b)) otherwise | |

*/ | |

#undef FLT_DIG | |

#undef DBL_DIG | |

#undef LDBL_DIG | |

#define FLT_DIG __FLT_DIG__ | |

#define DBL_DIG __DBL_DIG__ | |

#define LDBL_DIG __LDBL_DIG__ | |

/* Minimum int x such that FLT_RADIX**(x-1) is a normalized float, emin */ | |

#undef FLT_MIN_EXP | |

#undef DBL_MIN_EXP | |

#undef LDBL_MIN_EXP | |

#define FLT_MIN_EXP __FLT_MIN_EXP__ | |

#define DBL_MIN_EXP __DBL_MIN_EXP__ | |

#define LDBL_MIN_EXP __LDBL_MIN_EXP__ | |

/* Minimum negative integer such that 10 raised to that power is in the | |

range of normalized floating-point numbers, | |

ceil(log10(b) * (emin - 1)) | |

*/ | |

#undef FLT_MIN_10_EXP | |

#undef DBL_MIN_10_EXP | |

#undef LDBL_MIN_10_EXP | |

#define FLT_MIN_10_EXP __FLT_MIN_10_EXP__ | |

#define DBL_MIN_10_EXP __DBL_MIN_10_EXP__ | |

#define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__ | |

/* Maximum int x such that FLT_RADIX**(x-1) is a representable float, emax. */ | |

#undef FLT_MAX_EXP | |

#undef DBL_MAX_EXP | |

#undef LDBL_MAX_EXP | |

#define FLT_MAX_EXP __FLT_MAX_EXP__ | |

#define DBL_MAX_EXP __DBL_MAX_EXP__ | |

#define LDBL_MAX_EXP __LDBL_MAX_EXP__ | |

/* Maximum integer such that 10 raised to that power is in the range of | |

representable finite floating-point numbers, | |

floor(log10((1 - b**-p) * b**emax)) | |

*/ | |

#undef FLT_MAX_10_EXP | |

#undef DBL_MAX_10_EXP | |

#undef LDBL_MAX_10_EXP | |

#define FLT_MAX_10_EXP __FLT_MAX_10_EXP__ | |

#define DBL_MAX_10_EXP __DBL_MAX_10_EXP__ | |

#define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__ | |

/* Maximum representable finite floating-point number, | |

(1 - b**-p) * b**emax | |

*/ | |

#undef FLT_MAX | |

#undef DBL_MAX | |

#undef LDBL_MAX | |

#define FLT_MAX __FLT_MAX__ | |

#define DBL_MAX __DBL_MAX__ | |

#define LDBL_MAX __LDBL_MAX__ | |

/* The difference between 1 and the least value greater than 1 that is | |

representable in the given floating point type, b**1-p. */ | |

#undef FLT_EPSILON | |

#undef DBL_EPSILON | |

#undef LDBL_EPSILON | |

#define FLT_EPSILON __FLT_EPSILON__ | |

#define DBL_EPSILON __DBL_EPSILON__ | |

#define LDBL_EPSILON __LDBL_EPSILON__ | |

/* Minimum normalized positive floating-point number, b**(emin - 1). */ | |

#undef FLT_MIN | |

#undef DBL_MIN | |

#undef LDBL_MIN | |

#define FLT_MIN __FLT_MIN__ | |

#define DBL_MIN __DBL_MIN__ | |

#define LDBL_MIN __LDBL_MIN__ | |

/* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown. */ | |

/* APPLE LOCAL begin 3399553 */ | |

/* This changes with calls to fesetround in <fenv.h>. */ | |

#undef FLT_ROUNDS | |

#define FLT_ROUNDS (__builtin_flt_rounds ()) | |

/* APPLE LOCAL end 3399553 */ | |

#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L | |

/* The floating-point expression evaluation method. | |

-1 indeterminate | |

0 evaluate all operations and constants just to the range and | |

precision of the type | |

1 evaluate operations and constants of type float and double | |

to the range and precision of the double type, evaluate | |

long double operations and constants to the range and | |

precision of the long double type | |

2 evaluate all operations and constants to the range and | |

precision of the long double type | |

??? This ought to change with the setting of the fp control word; | |

the value provided by the compiler assumes the widest setting. */ | |

#undef FLT_EVAL_METHOD | |

#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ | |

/* Number of decimal digits, n, such that any floating-point number in the | |

widest supported floating type with pmax radix b digits can be rounded | |

to a floating-point number with n decimal digits and back again without | |

change to the value, | |

pmax * log10(b) if b is a power of 10 | |

ceil(1 + pmax * log10(b)) otherwise | |

*/ | |

#undef DECIMAL_DIG | |

#define DECIMAL_DIG __DECIMAL_DIG__ | |

#endif /* C99 */ | |

#endif /* _FLOAT_H___ */ |