diff options
author | Thomas Fitzsimmons <fitzsim@redhat.com> | 2002-08-16 21:29:45 +0000 |
---|---|---|
committer | Thomas Fitzsimmons <fitzsim@redhat.com> | 2002-08-16 21:29:45 +0000 |
commit | d3bd3632ac06bdb7f76b13494873b3567edabcbf (patch) | |
tree | f7d4c5083ac5dbdc7b55c198fe3df5651e9c4e02 /newlib/libc/sys/linux/include/complex.h | |
parent | e0f61e607c336e5ad589afd95a13161a202dd1ba (diff) | |
download | cygnal-d3bd3632ac06bdb7f76b13494873b3567edabcbf.tar.gz cygnal-d3bd3632ac06bdb7f76b13494873b3567edabcbf.tar.bz2 cygnal-d3bd3632ac06bdb7f76b13494873b3567edabcbf.zip |
* libc/sys/linux/cmath: New directory.
* libc/sys/linux/include/cmathcalls.h: New file.
* libc/sys/linux/include/complex.h: New file.
* libc/sys/linux/machine/i386/huge_val.h: New file
* libm/math/w_sincos.c: New file
* libm/math/wf_sincos.c: New file
* libm/mathfp/s_sincos.c: New file
* libm/mathfp/sf_sincos.c: New file
* Makefile.am (LIBC_OBJECTLISTS): Add cmath/objectlist.awk.in.
* libc/include/math.h: Add sincos and sincosf declarations.
* libc/sys/linux/Makefile.am (SUBDIRS): Add cmath.
(SUBLIBS): Likewise.
* libc/sys/linux/configure.in (AC_OUTPUT): Add cmath.
* libm/math/Makefile.am (src): Add w_sincos.c.
(fsrc): Add wf_sincos.c.
* libm/mathfp/Makefile.am (src): Add s_sincos.c
(fsrc): Add sf_sincos.c.
Diffstat (limited to 'newlib/libc/sys/linux/include/complex.h')
-rw-r--r-- | newlib/libc/sys/linux/include/complex.h | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/newlib/libc/sys/linux/include/complex.h b/newlib/libc/sys/linux/include/complex.h new file mode 100644 index 000000000..daa465674 --- /dev/null +++ b/newlib/libc/sys/linux/include/complex.h @@ -0,0 +1,108 @@ +/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +/* + * ISO C99: 7.3 Complex arithmetic <complex.h> + */ + +#ifndef _COMPLEX_H +#define _COMPLEX_H 1 + +#include <sys/types.h> +#include <features.h> + +__BEGIN_DECLS + +#define __CONCAT(x,y) x ## y +/* We might need to add support for more compilers here. But since ISO + C99 is out hopefully all maintained compilers will soon provide the data + types `float complex' and `double complex'. */ +#if __GNUC_PREREQ (2, 7) && !__GNUC_PREREQ (2, 97) +# define _Complex __complex__ +#endif + +#define complex _Complex + +/* Narrowest imaginary unit. This depends on the floating-point + evaluation method. + XXX This probably has to go into a gcc related file. */ +#define _Complex_I (__extension__ 1.0iF) + +/* Another more descriptive name is `I'. + XXX Once we have the imaginary support switch this to _Imaginary_I. */ +#undef I +#define I _Complex_I + +/* The file <bits/cmathcalls.h> contains the prototypes for all the + actual math functions. These macros are used for those prototypes, + so we can easily declare each function as both `name' and `__name', + and can declare the float versions `namef' and `__namef'. */ + +#define __MATHCALL(function, args) \ + __MATHDECL (_Mdouble_complex_,function, args) +#define __MATHDECL(type, function, args) \ + __MATHDECL_1(type, function, args); \ + __MATHDECL_1(type, __CONCAT(__,function), args) +#define __MATHDECL_1(type, function, args) \ + extern type __MATH_PRECNAME(function) args __THROW + +#define _Mdouble_ double +#define __MATH_PRECNAME(name) name +#include <cmathcalls.h> +#undef _Mdouble_ +#undef __MATH_PRECNAME + +/* Now the float versions. */ +#ifndef _Mfloat_ +# define _Mfloat_ float +#endif +#define _Mdouble_ _Mfloat_ +#ifdef __STDC__ +# define __MATH_PRECNAME(name) name##f +#else +# define __MATH_PRECNAME(name) name/**/f +#endif +#include <cmathcalls.h> +#undef _Mdouble_ +#undef __MATH_PRECNAME + +#if 0 +/* And the long double versions. It is non-critical to define them + here unconditionally since `long double' is required in ISO C99. */ +#if __STDC__ - 0 || __GNUC__ - 0 && !defined __NO_LONG_DOUBLE_MATH +# ifndef _Mlong_double_ +# define _Mlong_double_ long double +# endif +# define _Mdouble_ _Mlong_double_ +# ifdef __STDC__ +# define __MATH_PRECNAME(name) name##l +# else +# define __MATH_PRECNAME(name) name/**/l +# endif +# include <cmathcalls.h> +#endif +#endif +#undef _Mdouble_ +#undef __MATH_PRECNAME +#undef __MATHDECL_1 +#undef __MATHDECL +#undef __MATHCALL + +__END_DECLS + +#endif /* complex.h */ |