Back to index

glibc  2.9
mathdef.h
Go to the documentation of this file.
00001 /* Copyright (C) 1997, 1998, 1999, 2000, 2004, 2006
00002    Free Software Foundation, Inc.
00003    This file is part of the GNU C Library.
00004 
00005    The GNU C Library is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Lesser General Public
00007    License as published by the Free Software Foundation; either
00008    version 2.1 of the License, or (at your option) any later version.
00009 
00010    The GNU C Library is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013    Lesser General Public License for more details.
00014 
00015    You should have received a copy of the GNU Lesser General Public
00016    License along with the GNU C Library; if not, write to the Free
00017    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
00018    02111-1307 USA.  */
00019 
00020 #if !defined _MATH_H && !defined _COMPLEX_H
00021 # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
00022 #endif
00023 
00024 #include <bits/wordsize.h>
00025 
00026 /* FIXME! This file describes properties of the compiler, not the machine;
00027    it should not be part of libc!  */
00028 
00029 #if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF
00030 # define _MATH_H_MATHDEF    1
00031 
00032 # ifdef __GNUC__
00033 #  if __STDC__ == 1
00034 
00035 /* In GNU or ANSI mode, gcc leaves `float' expressions as-is.  */
00036 typedef float float_t;
00037 typedef double double_t;
00038 
00039 #  else
00040 
00041 /* For `gcc -traditional', `float' expressions are evaluated as `double'. */
00042 typedef double float_t;
00043 typedef double double_t;
00044 
00045 #  endif
00046 # else
00047 
00048 /* Wild guess at types for float_t and double_t. */
00049 typedef double float_t;
00050 typedef double double_t;
00051 
00052 # endif
00053 
00054 /* The values returned by `ilogb' for 0 and NaN respectively.  */
00055 # define FP_ILOGB0       (-2147483647)
00056 # define FP_ILOGBNAN     (2147483647)
00057 
00058 #endif /* ISO C99 */