diff options
| author | Eric Andersen <andersen@codepoet.org> | 2001-03-06 00:13:05 +0000 | 
|---|---|---|
| committer | Eric Andersen <andersen@codepoet.org> | 2001-03-06 00:13:05 +0000 | 
| commit | 8bee736e612e0f3f6c27dd07514d061bc85dbf3b (patch) | |
| tree | 1dc9df5ea65ea3820558795944b30852ec0ccd9f /libc/sysdeps/linux/sparc/bits/cmathcalls.h | |
| parent | b416b45eb37e12bd58412d255f47f05d6abda863 (diff) | |
| download | uClibc-alpine-8bee736e612e0f3f6c27dd07514d061bc85dbf3b.tar.bz2 uClibc-alpine-8bee736e612e0f3f6c27dd07514d061bc85dbf3b.tar.xz  | |
I just grabbed the bits dir from glibc 2.1.3 on a sparc box
to facilitate the sparc porting work being done by Mathew Bosworth.
 -Erik
Diffstat (limited to 'libc/sysdeps/linux/sparc/bits/cmathcalls.h')
| -rw-r--r-- | libc/sysdeps/linux/sparc/bits/cmathcalls.h | 157 | 
1 files changed, 157 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/sparc/bits/cmathcalls.h b/libc/sysdeps/linux/sparc/bits/cmathcalls.h new file mode 100644 index 000000000..f063042b0 --- /dev/null +++ b/libc/sysdeps/linux/sparc/bits/cmathcalls.h @@ -0,0 +1,157 @@ +/* Prototype declarations for complex math functions; +   helper file for <complex.h>. +   Copyright (C) 1997, 1998 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 Library General Public License as +   published by the Free Software Foundation; either version 2 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 +   Library General Public License for more details. + +   You should have received a copy of the GNU Library General Public +   License along with the GNU C Library; see the file COPYING.LIB.  If not, +   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +   Boston, MA 02111-1307, USA.  */ + +/* NOTE: Because of the special way this file is used by <complex.h>, this +   file must NOT be protected from multiple inclusion as header files +   usually are. + +   This file provides prototype declarations for the math functions. +   Most functions are declared using the macro: + +   __MATHCALL (NAME, (ARGS...)); + +   This means there is a function `NAME' returning `double' and a function +   `NAMEf' returning `float'.  Each place `_Mdouble_' appears in the +   prototype, that is actually `double' in the prototype for `NAME' and +   `float' in the prototype for `NAMEf'.  Reentrant variant functions are +   called `NAME_r' and `NAMEf_r'. + +   Functions returning other types like `int' are declared using the macro: + +   __MATHDECL (TYPE, NAME, (ARGS...)); + +   This is just like __MATHCALL but for a function returning `TYPE' +   instead of `_Mdouble_'.  In all of these cases, there is still +   both a `NAME' and a `NAMEf' that takes `float' arguments.  */ + +#ifndef _COMPLEX_H +#error "Never use <bits/cmathcalls.h> directly; include <complex.h> instead." +#endif + +#define _Mdouble_complex_ _Mdouble_ _Complex + + +/* Trigonometric functions.  */ + +/* Arc cosine of Z.  */ +__MATHCALL (cacos, (_Mdouble_complex_ __z)); +/* Arc sine of Z.  */ +__MATHCALL (casin, (_Mdouble_complex_ __z)); +/* Arc tangent of Z.  */ +__MATHCALL (catan, (_Mdouble_complex_ __z)); + +/* Cosine of Z.  */ +__MATHCALL (ccos, (_Mdouble_complex_ __z)); +/* Sine of Z.  */ +__MATHCALL (csin, (_Mdouble_complex_ __z)); +/* Tangent of Z.  */ +__MATHCALL (ctan, (_Mdouble_complex_ __z)); + + +/* Hyperbolic functions.  */ + +/* Hyperbolic arc cosine of Z.  */ +__MATHCALL (cacosh, (_Mdouble_complex_ __z)); +/* Hyperbolic arc sine of Z.  */ +__MATHCALL (casinh, (_Mdouble_complex_ __z)); +/* Hyperbolic arc tangent of Z.  */ +__MATHCALL (catanh, (_Mdouble_complex_ __z)); + +/* Hyperbolic cosine of Z.  */ +__MATHCALL (ccosh, (_Mdouble_complex_ __z)); +/* Hyperbolic sine of Z.  */ +__MATHCALL (csinh, (_Mdouble_complex_ __z)); +/* Hyperbolic tangent of Z.  */ +__MATHCALL (ctanh, (_Mdouble_complex_ __z)); + + +/* Exponential and logarithmic functions.  */ + +/* Exponential function of Z.  */ +__MATHCALL (cexp, (_Mdouble_complex_ __z)); + +/* Natural logarithm of Z.  */ +__MATHCALL (clog, (_Mdouble_complex_ __z)); + +#ifdef __USE_GNU +/* The base 10 logarithm is not defined by the standard but to implement +   the standard C++ library it is handy.  */ +__MATHCALL (clog10, (_Mdouble_complex_ __z)); +#endif + +/* Power functions.  */ + +/* Return X to the Y power.  */ +__MATHCALL (cpow, (_Mdouble_complex_ __x, _Mdouble_complex_ __y)); + +/* Return the square root of Z.  */ +__MATHCALL (csqrt, (_Mdouble_complex_ __z)); + + +/* Absolute value, conjugates, and projection.  */ + +/* Absolute value of Z.  */ +__MATHDECL (_Mdouble_,cabs, (_Mdouble_complex_ __z)); + +/* Argument value of Z.  */ +__MATHDECL (_Mdouble_,carg, (_Mdouble_complex_ __z)); + +/* Complex conjugate of Z.  */ +__MATHCALL (conj, (_Mdouble_complex_ __z)); + +/* Projection of Z onto the Riemann sphere.  */ +__MATHCALL (cproj, (_Mdouble_complex_ __z)); + + +/* Decomposing complex values.  */ + +/* Imaginary part of Z.  */ +__MATHDECL (_Mdouble_,cimag, (_Mdouble_complex_ __z)); + +/* Real part of Z.  */ +__MATHDECL (_Mdouble_,creal, (_Mdouble_complex_ __z)); + + +/* Now some optimized versions.  GCC has handy notations for these +   functions.  */ +#if defined __GNUC__ && defined __OPTIMIZE__ + +/* Imaginary part of Z.  */ +extern __inline _Mdouble_ +__MATH_PRECNAME(cimag) (_Mdouble_complex_ __z) +{ +  return __imag__ __z; +} + +/* Real part of Z.  */ +extern __inline _Mdouble_ +__MATH_PRECNAME(creal) (_Mdouble_complex_ __z) +{ +  return __real__ __z; +} + +/* Complex conjugate of Z.  */ +extern __inline _Mdouble_complex_ +__MATH_PRECNAME(conj) (_Mdouble_complex_ __z) +{ +  return ~__z; +} + +#endif  | 
