* Versions.def (libm): Add GLIBC_2.3.3.

* sysdeps/alpha/fpu/Versions: Add __c1_c*f and c*f to GLIBC_2.3.3.
	* sysdeps/alpha/fpu/cabsf.c, sysdeps/alpha/fpu/cargf.c,
	sysdeps/alpha/fpu/cfloat-compat.h, sysdeps/alpha/fpu/cimagf.c,
	sysdeps/alpha/fpu/conjf.c, sysdeps/alpha/fpu/crealf.c,
	sysdeps/alpha/fpu/s_cacosf.c, sysdeps/alpha/fpu/s_cacoshf.c,
	sysdeps/alpha/fpu/s_casinf.c, sysdeps/alpha/fpu/s_casinhf.c,
	sysdeps/alpha/fpu/s_catanf.c, sysdeps/alpha/fpu/s_catanhf.c,
	sysdeps/alpha/fpu/s_ccosf.c, sysdeps/alpha/fpu/s_ccoshf.c,
	sysdeps/alpha/fpu/s_cexpf.c, sysdeps/alpha/fpu/s_clog10f.c,
	sysdeps/alpha/fpu/s_clogf.c, sysdeps/alpha/fpu/s_cpowf.c,
	sysdeps/alpha/fpu/s_cprojf.c, sysdeps/alpha/fpu/s_csinf.c,
	sysdeps/alpha/fpu/s_csinhf.c, sysdeps/alpha/fpu/s_csqrtf.c,
	sysdeps/alpha/fpu/s_ctanf.c, sysdeps/alpha/fpu/s_ctanhf.c: New files.
	* sysdeps/alpha/fpu/bits/mathdef.h: Rename complex float
	functions for gcc 3.3.

	* sysdeps/generic/s_cacosf.c, sysdeps/generic/s_cacoshf.c,
	sysdeps/generic/s_casinf.c, sysdeps/generic/s_casinhf.c,
	sysdeps/generic/s_catanf.c, sysdeps/generic/s_catanhf.c,
	sysdeps/generic/s_ccosf.c, sysdeps/generic/s_ccoshf.c,
	sysdeps/generic/s_cexpf.c, sysdeps/generic/s_clog10f.c,
	sysdeps/generic/s_clogf.c, sysdeps/generic/s_cpowf.c,
	sysdeps/generic/s_cprojf.c, sysdeps/generic/s_csinf.c,
	sysdeps/generic/s_csinhf.c, sysdeps/generic/s_csqrtf.c,
	sysdeps/generic/s_ctanf.c, sysdeps/generic/s_ctanhf.c: Don't
	weak_alias if the function name has been #defined.

	* math/cabsf.c: Move ...
	* sysdeps/generic/cabsf.c: ... here.
	* math/cargf.c: Move ...
	* sysdeps/generic/cargf.c: ... here.
	* math/cimagf.c: Move ...
	* sysdeps/generic/cimagf.c: ... here.
	* math/conjf.c: Move ...
	* sysdeps/generic/conjf.c: ... here.
	* math/crealf.c: Move ...
	* sysdeps/generic/crealf.c: ... here.
This commit is contained in:
Richard Henderson 2004-01-13 09:08:04 +00:00
parent b1c81c0040
commit 9e42ca8f27
25 changed files with 1228 additions and 0 deletions

View File

@ -4,3 +4,20 @@ libc {
__ieee_get_fp_control; __ieee_set_fp_control;
}
}
libm {
GLIBC_2.3.3 {
# functions implementing old complex float abi
__c1_cabsf; __c1_cacosf; __c1_cacoshf; __c1_cargf; __c1_casinf;
__c1_casinhf; __c1_catanf; __c1_catanhf; __c1_ccosf; __c1_ccoshf;
__c1_cexpf; __c1_cimagf; __c1_clog10f; __c1_clogf; __c1_conjf;
__c1_cpowf; __c1_cprojf; __c1_crealf; __c1_csinf; __c1_csinhf;
__c1_csqrtf; __c1_ctanf; __c1_ctanhf;
# functions implementing new complex float abi
cabsf; cacosf; cacoshf; cargf; casinf;
casinhf; catanf; catanhf; ccosf; ccoshf;
cexpf; cimagf; clog10f; clogf; conjf;
cpowf; cprojf; crealf; csinf; csinhf;
csqrtf; ctanf; ctanhf;
}
}

42
sysdeps/alpha/fpu/cabsf.c Normal file
View File

@ -0,0 +1,42 @@
/* Return the complex absolute value of float complex value.
Copyright (C) 2004 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. */
#define __cabsf __cabsf_not_defined
#define cabsf cabsf_not_defined
#include <complex.h>
#include <math.h>
#include "cfloat-compat.h"
#undef __cabsf
#undef cabsf
float
__c1_cabsf (c1_cfloat_decl (z))
{
return __hypotf (c1_cfloat_real (z), c1_cfloat_imag (z));
}
float
__c2_cabsf (c2_cfloat_decl (z))
{
return __hypotf (c2_cfloat_real (z), c2_cfloat_imag (z));
}
cfloat_versions (cabsf);

42
sysdeps/alpha/fpu/cargf.c Normal file
View File

@ -0,0 +1,42 @@
/* Compute argument of complex float value.
Copyright (C) 2004 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. */
#define __cargf __cargf_not_defined
#define cargf cargf_not_defined
#include <complex.h>
#include <math.h>
#include "cfloat-compat.h"
#undef __cargf
#undef cargf
float
__c1_cargf (c1_cfloat_decl (x))
{
return __atan2f (c1_cfloat_imag (x), c1_cfloat_real (x));
}
float
__c2_cargf (c2_cfloat_decl (x))
{
return __atan2f (c2_cfloat_imag (x), c2_cfloat_real (x));
}
cfloat_versions (cargf);

View File

@ -0,0 +1,74 @@
/* Compatibility macros for old and new Alpha complex float ABI.
Copyright (C) 2004 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. */
/* The behaviour of complex float changed between GCC 3.3 and 3.4.
In 3.3 and before (below, complex version 1, or "c1"), complex float
values were packed into one floating point register.
In 3.4 and later (below, complex version 2, or "c2"), GCC changed to
follow the official Tru64 ABI, which passes the components of a complex
as separate parameters. */
#if __GNUC_PREREQ(3,4)
typedef union { double d; _Complex float cf; } c1_compat;
# define c1_cfloat_decl(x) double x
# define c1_cfloat_real(x) __real__ c1_cfloat_value (x)
# define c1_cfloat_imag(x) __imag__ c1_cfloat_value (x)
# define c1_cfloat_value(x) (((c1_compat *)(void *)&x)->cf)
# define c1_cfloat_rettype double
# define c1_cfloat_return(x) ({ c1_compat _; _.cf = (x); _.d; })
# define c2_cfloat_decl(x) _Complex float x
# define c2_cfloat_real(x) __real__ x
# define c2_cfloat_imag(x) __imag__ x
# define c2_cfloat_value(x) x
# define c2_cfloat_rettype _Complex float
# define c2_cfloat_return(x) x
#else
# define c1_cfloat_decl(x) _Complex float x
# define c1_cfloat_real(x) __real__ x
# define c1_cfloat_imag(x) __imag__ x
# define c1_cfloat_value(x) x
# define c1_cfloat_rettype _Complex float
# define c1_cfloat_return(x) x
# define c2_cfloat_decl(x) float x ## r, float x ## i
# define c2_cfloat_real(x) x ## r
# define c2_cfloat_imag(x) x ## i
# define c2_cfloat_value(x) \
({ _Complex float _; __real__ _ = x##r; __imag__ _ = x##i; _; })
# define c2_cfloat_rettype double _Complex
# define c2_cfloat_return(x) x
#endif
/* Get the proper symbol versions defined for each function. */
#include <shlib-compat.h>
#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_3_3)
#define cfloat_versions_compat(func) \
compat_symbol (libm, __c1_##func, func, GLIBC_2_1)
#else
#define cfloat_versions_compat(func)
#endif
#define cfloat_versions(func) \
cfloat_versions_compat(func); \
versioned_symbol (libm, __c2_##func, func, GLIBC_2_3_3); \
extern typeof(__c2_##func) __##func attribute_hidden; \
strong_alias (__c2_##func, __##func)

View File

@ -0,0 +1,41 @@
/* Return imaginary part of complex float value.
Copyright (C) 2004 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. */
#define __cimagf __cimagf_not_defined
#define cimagf cimagf_not_defined
#include <complex.h>
#include "cfloat-compat.h"
#undef __cimagf
#undef cimagf
float
__c1_cimagf (c1_cfloat_decl (z))
{
return c1_cfloat_imag (z);
}
float
__c2_cimagf (c2_cfloat_decl (z))
{
return c2_cfloat_imag (z);
}
cfloat_versions (cimagf);

43
sysdeps/alpha/fpu/conjf.c Normal file
View File

@ -0,0 +1,43 @@
/* Return complex conjugate of complex float value.
Copyright (C) 2004 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. */
#define __conjf __conjf_not_defined
#define conjf conjf_not_defined
#include <complex.h>
#include "cfloat-compat.h"
#undef __conjf
#undef conjf
c1_cfloat_rettype
__c1_conjf (c1_cfloat_decl (z))
{
_Complex float r = ~ c1_cfloat_value (z);
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_conjf (c2_cfloat_decl (z))
{
_Complex float r = ~ c2_cfloat_value (z);
return c2_cfloat_return (r);
}
cfloat_versions (conjf);

View File

@ -0,0 +1,41 @@
/* Return real part of complex float value.
Copyright (C) 2004 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. */
#define __crealf __crealf_not_defined
#define crealf crealf_not_defined
#include <complex.h>
#include "cfloat-compat.h"
#undef __crealf
#undef crealf
float
__c1_crealf (c1_cfloat_decl (z))
{
return c1_cfloat_real (z);
}
float
__c2_crealf (c2_cfloat_decl (z))
{
return c2_cfloat_real (z);
}
cfloat_versions (crealf);

View File

@ -0,0 +1,51 @@
/* Return arc cosine of complex float value.
Copyright (C) 2004 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. */
#define __cacosf __cacosf_not_defined
#define cacosf cacosf_not_defined
#include <complex.h>
#include <math.h>
#undef __cacosf
#undef cacosf
#define __cacosf internal_cacosf
static _Complex float internal_cacosf (_Complex float x);
#include <sysdeps/generic/s_cacosf.c>
#include "cfloat-compat.h"
#undef __cacosf
c1_cfloat_rettype
__c1_cacosf (c1_cfloat_decl (x))
{
_Complex float r = internal_cacosf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_cacosf (c2_cfloat_decl (x))
{
_Complex float r = internal_cacosf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (cacosf);

View File

@ -0,0 +1,51 @@
/* Return arc hyperbole cosine of complex float value.
Copyright (C) 2004 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. */
#define __cacoshf __cacoshf_not_defined
#define cacoshf cacoshf_not_defined
#include <complex.h>
#include <math.h>
#undef __cacoshf
#undef cacoshf
#define __cacoshf internal_cacoshf
static _Complex float internal_cacoshf (_Complex float x);
#include <sysdeps/generic/s_cacoshf.c>
#include "cfloat-compat.h"
#undef __cacoshf
c1_cfloat_rettype
__c1_cacoshf (c1_cfloat_decl (x))
{
_Complex float r = internal_cacoshf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_cacoshf (c2_cfloat_decl (x))
{
_Complex float r = internal_cacoshf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (cacoshf);

View File

@ -0,0 +1,51 @@
/* Return arc sine of complex float value.
Copyright (C) 2004 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. */
#define __casinf __casinf_not_defined
#define casinf casinf_not_defined
#include <complex.h>
#include <math.h>
#undef __casinf
#undef casinf
#define __casinf internal_casinf
static _Complex float internal_casinf (_Complex float x);
#include <sysdeps/generic/s_casinf.c>
#include "cfloat-compat.h"
#undef __casinf
c1_cfloat_rettype
__c1_casinf (c1_cfloat_decl (x))
{
_Complex float r = internal_casinf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_casinf (c2_cfloat_decl (x))
{
_Complex float r = internal_casinf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (casinf);

View File

@ -0,0 +1,51 @@
/* Return arc hyperbole sine of complex float value.
Copyright (C) 2004 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. */
#define __casinhf __casinhf_not_defined
#define casinhf casinhf_not_defined
#include <complex.h>
#include <math.h>
#undef __casinhf
#undef casinhf
#define __casinhf internal_casinhf
static _Complex float internal_casinhf (_Complex float x);
#include <sysdeps/generic/s_casinhf.c>
#include "cfloat-compat.h"
#undef __casinhf
c1_cfloat_rettype
__c1_casinhf (c1_cfloat_decl (x))
{
_Complex float r = internal_casinhf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_casinhf (c2_cfloat_decl (x))
{
_Complex float r = internal_casinhf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (casinhf);

View File

@ -0,0 +1,51 @@
/* Return arc tangent of complex float value.
Copyright (C) 2004 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. */
#define __catanf __catanf_not_defined
#define catanf catanf_not_defined
#include <complex.h>
#include <math.h>
#undef __catanf
#undef catanf
#define __catanf internal_catanf
static _Complex float internal_catanf (_Complex float x);
#include <sysdeps/generic/s_catanf.c>
#include "cfloat-compat.h"
#undef __catanf
c1_cfloat_rettype
__c1_catanf (c1_cfloat_decl (x))
{
_Complex float r = internal_catanf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_catanf (c2_cfloat_decl (x))
{
_Complex float r = internal_catanf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (catanf);

View File

@ -0,0 +1,51 @@
/* Return arc hyperbole tangent of complex float value.
Copyright (C) 2004 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. */
#define __catanhf __catanhf_not_defined
#define catanhf catanhf_not_defined
#include <complex.h>
#include <math.h>
#undef __catanhf
#undef catanhf
#define __catanhf internal_catanhf
static _Complex float internal_catanhf (_Complex float x);
#include <sysdeps/generic/s_catanhf.c>
#include "cfloat-compat.h"
#undef __catanhf
c1_cfloat_rettype
__c1_catanhf (c1_cfloat_decl (x))
{
_Complex float r = internal_catanhf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_catanhf (c2_cfloat_decl (x))
{
_Complex float r = internal_catanhf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (catanhf);

View File

@ -0,0 +1,51 @@
/* Return cosine of complex float value.
Copyright (C) 2004 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. */
#define __ccosf __ccosf_not_defined
#define ccosf ccosf_not_defined
#include <complex.h>
#include <math.h>
#undef __ccosf
#undef ccosf
#define __ccosf internal_ccosf
static _Complex float internal_ccosf (_Complex float x);
#include <sysdeps/generic/s_ccosf.c>
#include "cfloat-compat.h"
#undef __ccosf
c1_cfloat_rettype
__c1_ccosf (c1_cfloat_decl (x))
{
_Complex float r = internal_ccosf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_ccosf (c2_cfloat_decl (x))
{
_Complex float r = internal_ccosf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (ccosf);

View File

@ -0,0 +1,51 @@
/* Return hyperbole cosine of complex float value.
Copyright (C) 2004 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. */
#define __ccoshf __ccoshf_not_defined
#define ccoshf ccoshf_not_defined
#include <complex.h>
#include <math.h>
#undef __ccoshf
#undef ccoshf
#define __ccoshf internal_ccoshf
static _Complex float internal_ccoshf (_Complex float x);
#include <sysdeps/generic/s_ccoshf.c>
#include "cfloat-compat.h"
#undef __ccoshf
c1_cfloat_rettype
__c1_ccoshf (c1_cfloat_decl (x))
{
_Complex float r = internal_ccoshf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_ccoshf (c2_cfloat_decl (x))
{
_Complex float r = internal_ccoshf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (ccoshf);

View File

@ -0,0 +1,51 @@
/* Return exponent of complex float value.
Copyright (C) 2004 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. */
#define __cexpf __cexpf_not_defined
#define cexpf cexpf_not_defined
#include <complex.h>
#include <math.h>
#undef __cexpf
#undef cexpf
#define __cexpf internal_cexpf
static _Complex float internal_cexpf (_Complex float x);
#include <sysdeps/generic/s_cexpf.c>
#include "cfloat-compat.h"
#undef __cexpf
c1_cfloat_rettype
__c1_cexpf (c1_cfloat_decl (x))
{
_Complex float r = internal_cexpf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_cexpf (c2_cfloat_decl (x))
{
_Complex float r = internal_cexpf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (cexpf);

View File

@ -0,0 +1,61 @@
/* Return base 10 logarithm of complex float value.
Copyright (C) 2004 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. */
#define __clog10f __clog10f_not_defined
#define clog10f clog10f_not_defined
#include <complex.h>
#include <math.h>
#undef __clog10f
#undef clog10f
#define __clog10f internal_clog10f
static _Complex float internal_clog10f (_Complex float x);
#include <sysdeps/generic/s_clog10f.c>
#include "cfloat-compat.h"
#undef __clog10f
c1_cfloat_rettype
__c1_clog10f (c1_cfloat_decl (x))
{
_Complex float r = internal_clog10f (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_clog10f (c2_cfloat_decl (x))
{
_Complex float r = internal_clog10f (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
/* Ug. __clog10f was exported from GLIBC_2.1. This is the only
complex function whose double-underscore symbol was exported,
so we get to handle that specially. */
#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_3_3)
strong_alias (__c1_clog10f, __c1_clog10f_2);
compat_symbol (libm, __c1_clog10f, clog10f, GLIBC_2_1);
compat_symbol (libm, __c1_clog10f_2, __clog10f, GLIBC_2_1);
#endif
versioned_symbol (libm, __c2_clog10f, clog10f, GLIBC_2_3_3);
extern typeof(__c2_clog10f) __clog10f attribute_hidden;
strong_alias (__c2_clog10f, __clog10f)

View File

@ -0,0 +1,51 @@
/* Return natural logarithm of complex float value.
Copyright (C) 2004 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. */
#define __clogf __clogf_not_defined
#define clogf clogf_not_defined
#include <complex.h>
#include <math.h>
#undef __clogf
#undef clogf
#define __clogf internal_clogf
static _Complex float internal_clogf (_Complex float x);
#include <sysdeps/generic/s_clogf.c>
#include "cfloat-compat.h"
#undef __clogf
c1_cfloat_rettype
__c1_clogf (c1_cfloat_decl (x))
{
_Complex float r = internal_clogf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_clogf (c2_cfloat_decl (x))
{
_Complex float r = internal_clogf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (clogf);

View File

@ -0,0 +1,51 @@
/* Return power of complex float value.
Copyright (C) 2004 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. */
#define __cpowf __cpowf_not_defined
#define cpowf cpowf_not_defined
#include <complex.h>
#include <math.h>
#undef __cpowf
#undef cpowf
#define __cpowf internal_cpowf
static _Complex float internal_cpowf (_Complex float x, _Complex float c);
#include <sysdeps/generic/s_cpowf.c>
#include "cfloat-compat.h"
#undef __cpowf
c1_cfloat_rettype
__c1_cpowf (c1_cfloat_decl (x), c1_cfloat_decl (c))
{
_Complex float r = internal_cpowf (c1_cfloat_value (x), c1_cfloat_value (c));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_cpowf (c2_cfloat_decl (x), c2_cfloat_decl (c))
{
_Complex float r = internal_cpowf (c2_cfloat_value (x), c2_cfloat_value (c));
return c2_cfloat_return (r);
}
cfloat_versions (cpowf);

View File

@ -0,0 +1,51 @@
/* Return projection of complex float value to Riemann sphere.
Copyright (C) 2004 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. */
#define __cprojf __cprojf_not_defined
#define cprojf cprojf_not_defined
#include <complex.h>
#include <math.h>
#undef __cprojf
#undef cprojf
#define __cprojf internal_cprojf
static _Complex float internal_cprojf (_Complex float x);
#include <sysdeps/generic/s_cprojf.c>
#include "cfloat-compat.h"
#undef __cprojf
c1_cfloat_rettype
__c1_cprojf (c1_cfloat_decl (x))
{
_Complex float r = internal_cprojf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_cprojf (c2_cfloat_decl (x))
{
_Complex float r = internal_cprojf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (cprojf);

View File

@ -0,0 +1,51 @@
/* Return sine of complex float value.
Copyright (C) 2004 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. */
#define __csinf __csinf_not_defined
#define csinf csinf_not_defined
#include <complex.h>
#include <math.h>
#undef __csinf
#undef csinf
#define __csinf internal_csinf
static _Complex float internal_csinf (_Complex float x);
#include <sysdeps/generic/s_csinf.c>
#include "cfloat-compat.h"
#undef __csinf
c1_cfloat_rettype
__c1_csinf (c1_cfloat_decl (x))
{
_Complex float r = internal_csinf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_csinf (c2_cfloat_decl (x))
{
_Complex float r = internal_csinf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (csinf);

View File

@ -0,0 +1,51 @@
/* Return hyperbole sine of complex float value.
Copyright (C) 2004 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. */
#define __csinhf __csinhf_not_defined
#define csinhf csinhf_not_defined
#include <complex.h>
#include <math.h>
#undef __csinhf
#undef csinhf
#define __csinhf internal_csinhf
static _Complex float internal_csinhf (_Complex float x);
#include <sysdeps/generic/s_csinhf.c>
#include "cfloat-compat.h"
#undef __csinhf
c1_cfloat_rettype
__c1_csinhf (c1_cfloat_decl (x))
{
_Complex float r = internal_csinhf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_csinhf (c2_cfloat_decl (x))
{
_Complex float r = internal_csinhf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (csinhf);

View File

@ -0,0 +1,51 @@
/* Return square root of complex float value.
Copyright (C) 2004 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. */
#define __csqrtf __csinhf_not_defined
#define csqrtf csqrtf_not_defined
#include <complex.h>
#include <math.h>
#undef __csqrtf
#undef csqrtf
#define __csqrtf internal_csqrtf
static _Complex float internal_csqrtf (_Complex float x);
#include <sysdeps/generic/s_csqrtf.c>
#include "cfloat-compat.h"
#undef __csqrtf
c1_cfloat_rettype
__c1_csqrtf (c1_cfloat_decl (x))
{
_Complex float r = internal_csqrtf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_csqrtf (c2_cfloat_decl (x))
{
_Complex float r = internal_csqrtf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (csqrtf);

View File

@ -0,0 +1,51 @@
/* Return tangent of complex float value.
Copyright (C) 2004 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. */
#define __ctanf __ctanf_not_defined
#define ctanf ctanf_not_defined
#include <complex.h>
#include <math.h>
#undef __ctanf
#undef ctanf
#define __ctanf internal_ctanf
static _Complex float internal_ctanf (_Complex float x);
#include <sysdeps/generic/s_ctanf.c>
#include "cfloat-compat.h"
#undef __ctanf
c1_cfloat_rettype
__c1_ctanf (c1_cfloat_decl (x))
{
_Complex float r = internal_ctanf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_ctanf (c2_cfloat_decl (x))
{
_Complex float r = internal_ctanf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (ctanf);

View File

@ -0,0 +1,51 @@
/* Return hyperbole tangent of complex float value.
Copyright (C) 2004 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. */
#define __ctanhf __ctanhf_not_defined
#define ctanhf ctanhf_not_defined
#include <complex.h>
#include <math.h>
#undef __ctanhf
#undef ctanhf
#define __ctanhf internal_ctanhf
static _Complex float internal_ctanhf (_Complex float x);
#include <sysdeps/generic/s_ctanhf.c>
#include "cfloat-compat.h"
#undef __ctanhf
c1_cfloat_rettype
__c1_ctanhf (c1_cfloat_decl (x))
{
_Complex float r = internal_ctanhf (c1_cfloat_value (x));
return c1_cfloat_return (r);
}
c2_cfloat_rettype
__c2_ctanhf (c2_cfloat_decl (x))
{
_Complex float r = internal_ctanhf (c2_cfloat_value (x));
return c2_cfloat_return (r);
}
cfloat_versions (ctanhf);