diff options
| -rw-r--r-- | libm/Makefile.in | 4 | ||||
| -rw-r--r-- | libm/carg.c | 33 | ||||
| -rw-r--r-- | libm/float_wrappers.c | 12 | 
3 files changed, 46 insertions, 3 deletions
| diff --git a/libm/Makefile.in b/libm/Makefile.in index a972530cf..2122fabc4 100644 --- a/libm/Makefile.in +++ b/libm/Makefile.in @@ -72,7 +72,7 @@ libm_CSRC := \  	w_cosh.c w_drem.c w_exp.c w_fmod.c w_gamma.c w_gamma_r.c \  	w_hypot.c w_j0.c w_j1.c w_jn.c w_lgamma.c w_lgamma_r.c \  	w_log.c w_log10.c w_pow.c w_remainder.c w_scalb.c w_sinh.c \ -	w_sqrt.c fpmacros.c nan.c +	w_sqrt.c fpmacros.c nan.c carg.c  FL_MOBJ := \  	acosf.o acoshf.o asinf.o asinhf.o atan2f.o atanf.o atanhf.o cbrtf.o \  	ceilf.o copysignf.o cosf.o coshf.o erfcf.o erff.o exp2f.o expf.o \ @@ -81,7 +81,7 @@ FL_MOBJ := \  	log1pf.o log2f.o logbf.o logf.o lrintf.o lroundf.o modff.o nearbyintf.o \  	nextafterf.o powf.o remainderf.o remquof.o rintf.o roundf.o \  	scalblnf.o scalbnf.o sinf.o sinhf.o sqrtf.o tanf.o tanhf.o \ -	tgammaf.o truncf.o +	tgammaf.o truncf.o cargf.o  else  # This list of math functions was taken from POSIX/IEEE 1003.1b-1993  libm_CSRC := \ diff --git a/libm/carg.c b/libm/carg.c new file mode 100644 index 000000000..7641d5dfe --- /dev/null +++ b/libm/carg.c @@ -0,0 +1,33 @@ +/* Compute argument of complex double value. +   Copyright (C) 1997 Free Software Foundation, Inc. +   This file is part of the GNU C Library. +   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + +   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.  */ + +#include <complex.h> +#include <math.h> + +libm_hidden_proto(atan2) +libm_hidden_proto(carg) + +double +carg (__complex__ double x) +{ +  return atan2 (__imag__ x, __real__ x); +} + +libm_hidden_def(carg) diff --git a/libm/float_wrappers.c b/libm/float_wrappers.c index ab424d300..ffcf252ee 100644 --- a/libm/float_wrappers.c +++ b/libm/float_wrappers.c @@ -10,7 +10,8 @@   * GNU Lesser General Public License version 2.1 or later.   */ -#include "math.h" +#include <math.h> +#include <complex.h>  /* For the time being, do _NOT_ implement these functions   * that are defined by SuSv3 */ @@ -138,6 +139,15 @@ float atanhf (float x)  #endif +#ifdef L_cargf +libm_hidden_proto(carg) +float cargf (float complex x) +{ +	return (float) carg( (double)x ); +} +#endif + +  #ifdef L_cbrtf  libm_hidden_proto(cbrt)  float cbrtf (float x) | 
