]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/l4re-core/uclibc/lib/contrib/uclibc/libc/sysdeps/linux/alpha/bits/mathdef.h
Update
[l4.git] / l4 / pkg / l4re-core / uclibc / lib / contrib / uclibc / libc / sysdeps / linux / alpha / bits / mathdef.h
1 /* Copyright (C) 1997,1998,1999,2000,2003,2004,2006
2         Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, see
17    <http://www.gnu.org/licenses/>.  */
18
19 #if !defined _MATH_H && !defined _COMPLEX_H
20 # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
21 #endif
22
23 /* FIXME! This file describes properties of the compiler, not the machine;
24    it should not be part of libc!  */
25
26 #if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF
27 # define _MATH_H_MATHDEF        1
28
29 /* Alpha has both `float' and `double' arithmetic.  */
30 typedef float float_t;
31 typedef double double_t;
32
33 /* The values returned by `ilogb' for 0 and NaN respectively.  */
34 # define FP_ILOGB0     (-2147483647)
35 # define FP_ILOGBNAN   (2147483647)
36
37 #endif  /* ISO C99 && MATH_H */
38
39 #if defined _COMPLEX_H && !defined _COMPLEX_H_MATHDEF
40 # define _COMPLEX_H_MATHDEF 1
41 # if defined(__GNUC__) && !__GNUC_PREREQ(3,4)
42
43 /* Due to an ABI change, we need to remap the complex float symbols.  */
44 #  define _Mdouble_             float
45 #  define __MATHCALL(function, args) \
46         __MATHDECL(_Complex float, function, args)
47 #  define __MATHDECL(type, function, args) \
48         __MATHDECL_1(type, function##f, args, __c1_##function##f); \
49         __MATHDECL_1(type, __##function##f, args, __c1_##function##f)
50 #  define __MATHDECL_1(type, function, args, alias) \
51         extern type function args __asm__(#alias) __THROW
52
53 #  include <bits/cmathcalls.h>
54
55 #  undef _Mdouble_
56 #  undef __MATHCALL
57 #  undef __MATHDECL
58 #  undef __MATHDECL_1
59
60 # endif /* GNUC before 3.4 */
61 #endif /* COMPLEX_H */
62
63 #if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
64 # define __NO_LONG_DOUBLE_MATH  1
65 #endif