This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: alpha vs complex functions


This turned out to be remarkably self-contained.  The only thing
I need is to move a couple of files from math/ to sysdeps/generic/
so that I can override them from the alpha hierarchy.

Ok?


r~



	* sysdeps/alpha/fpu/Makefile: New file.
	* sysdeps/alpha/fpu/Versions: Add __c2_c*f.
	* sysdeps/alpha/fpu/c2_cabsf.c, sysdeps/alpha/fpu/c2_cacosf.c,
	sysdeps/alpha/fpu/c2_cacoshf.c, sysdeps/alpha/fpu/c2_cargf.c,
	sysdeps/alpha/fpu/c2_casinf.c, sysdeps/alpha/fpu/c2_casinhf.c,
	sysdeps/alpha/fpu/c2_catanf.c, sysdeps/alpha/fpu/c2_catanhf.c, 
	sysdeps/alpha/fpu/c2_ccosf.c, sysdeps/alpha/fpu/c2_ccoshf.c,
	sysdeps/alpha/fpu/c2_cexpf.c, sysdeps/alpha/fpu/c2_cimagf.c,
	sysdeps/alpha/fpu/c2_clog10f.c, sysdeps/alpha/fpu/c2_clogf.c,
	sysdeps/alpha/fpu/c2_conjf.c, sysdeps/alpha/fpu/c2_cpowf.c,
	sysdeps/alpha/fpu/c2_cprojf.c, sysdeps/alpha/fpu/c2_crealf.c,
	sysdeps/alpha/fpu/c2_csinf.c, sysdeps/alpha/fpu/c2_csinhf.c,
	sysdeps/alpha/fpu/c2_csqrtf.c, sysdeps/alpha/fpu/c2_ctanf.c,
	sysdeps/alpha/fpu/c2_ctanhf.c, 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.4.

	* sysdeps/generic/cabsf.c, sysdeps/generic/cargf.c,
	sysdeps/generic/cimagf.c, sysdeps/generic/conjf.c,
	sysdeps/generic/crealf.c: Move from math/.

Index: sysdeps/alpha/fpu/Makefile
===================================================================
RCS file: sysdeps/alpha/fpu/Makefile
diff -N sysdeps/alpha/fpu/Makefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/Makefile	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,24 @@
+# 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.
+
+ifeq ($(subdir),math)
+libm-routines += c2_cabsf c2_cacosf c2_cacoshf c2_cargf c2_casinf \
+	c2_casinhf c2_catanf c2_catanhf c2_ccosf c2_ccoshf c2_cexpf \
+	c2_cimagf c2_clog10f c2_clogf c2_conjf c2_cpowf c2_cprojf \
+	c2_crealf c2_csinf c2_csinhf c2_csqrtf c2_ctanf c2_ctanhf
+endif
Index: sysdeps/alpha/fpu/Versions
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/alpha/fpu/Versions,v
retrieving revision 1.1
diff -c -p -d -u -r1.1 Versions
--- sysdeps/alpha/fpu/Versions	2 Jul 1998 22:33:14 -0000	1.1
+++ sysdeps/alpha/fpu/Versions	12 Jan 2004 06:33:17 -0000
@@ -4,3 +4,13 @@ libc {
     __ieee_get_fp_control; __ieee_set_fp_control;
   }
 }
+libm {
+  GLIBC_2.3.3 {
+    # functions implementing new complex float abi
+    __c2_cabsf; __c2_cacosf; __c2_cacoshf; __c2_cargf; __c2_casinf;
+    __c2_casinhf; __c2_catanf; __c2_catanhf; __c2_ccosf; __c2_ccoshf;
+    __c2_cexpf; __c2_cimagf; __c2_clog10f; __c2_clogf; __c2_conjf;
+    __c2_cpowf; __c2_cprojf; __c2_crealf; __c2_csinf; __c2_csinhf;
+    __c2_csqrtf; __c2_ctanf; __c2_ctanhf;
+  }
+}
Index: sysdeps/alpha/fpu/c2_cabsf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_cabsf.c
diff -N sysdeps/alpha/fpu/c2_cabsf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_cabsf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,31 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+#include "cfloat-compat.h"
+
+float new_cabsf (NEW_CFLOAT_PROTO) __asm__("__c2_cabsf");
+
+float
+new_cabsf (NEW_CFLOAT_DECL (z))
+{
+  NEW_CFLOAT_INIT (z);
+  return __hypotf (NEW_CFLOAT_REAL (z), NEW_CFLOAT_IMAG (z));
+}
Index: sysdeps/alpha/fpu/c2_cacosf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_cacosf.c
diff -N sysdeps/alpha/fpu/c2_cacosf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_cacosf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_cacosf (__complex__ float x);
+#define __cacosf internal_cacosf
+
+#include <sysdeps/generic/s_cacosf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_cacosf (NEW_CFLOAT_PROTO) __asm__("__c2_cacosf");
+
+NEW_CFLOAT_RETTYPE
+new_cacosf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_cacosf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_cacoshf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_cacoshf.c
diff -N sysdeps/alpha/fpu/c2_cacoshf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_cacoshf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_cacoshf (__complex__ float x);
+#define __cacoshf internal_cacoshf
+
+#include <sysdeps/generic/s_cacoshf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_cacoshf (NEW_CFLOAT_PROTO) __asm__("__c2_cacoshf");
+
+NEW_CFLOAT_RETTYPE
+new_cacoshf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_cacoshf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_cargf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_cargf.c
diff -N sysdeps/alpha/fpu/c2_cargf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_cargf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,31 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+#include "cfloat-compat.h"
+
+float new_cargf (NEW_CFLOAT_PROTO) __asm__("__c2_cargf");
+
+float
+new_cargf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  return __atan2f (NEW_CFLOAT_IMAG (x), NEW_CFLOAT_REAL (x));
+}
Index: sysdeps/alpha/fpu/c2_casinf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_casinf.c
diff -N sysdeps/alpha/fpu/c2_casinf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_casinf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_casinf (__complex__ float x);
+#define __casinf internal_casinf
+
+#include <sysdeps/generic/s_casinf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_casinf (NEW_CFLOAT_PROTO) __asm__("__c2_casinf");
+
+NEW_CFLOAT_RETTYPE
+new_casinf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_casinf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_casinhf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_casinhf.c
diff -N sysdeps/alpha/fpu/c2_casinhf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_casinhf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_casinhf (__complex__ float x);
+#define __casinhf internal_casinhf
+
+#include <sysdeps/generic/s_casinhf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_casinhf (NEW_CFLOAT_PROTO) __asm__("__c2_casinhf");
+
+NEW_CFLOAT_RETTYPE
+new_casinhf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_casinhf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_catanf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_catanf.c
diff -N sysdeps/alpha/fpu/c2_catanf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_catanf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_catanf (__complex__ float x);
+#define __catanf internal_catanf
+
+#include <sysdeps/generic/s_catanf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_catanf (NEW_CFLOAT_PROTO) __asm__("__c2_catanf");
+
+NEW_CFLOAT_RETTYPE
+new_catanf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_catanf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_catanhf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_catanhf.c
diff -N sysdeps/alpha/fpu/c2_catanhf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_catanhf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_catanhf (__complex__ float x);
+#define __catanhf internal_catanhf
+
+#include <sysdeps/generic/s_catanhf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_catanhf (NEW_CFLOAT_PROTO) __asm__("__c2_catanhf");
+
+NEW_CFLOAT_RETTYPE
+new_catanhf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_catanhf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_ccosf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_ccosf.c
diff -N sysdeps/alpha/fpu/c2_ccosf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_ccosf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_ccosf (__complex__ float x);
+#define __ccosf internal_ccosf
+
+#include <sysdeps/generic/s_ccosf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_ccosf (NEW_CFLOAT_PROTO) __asm__("__c2_ccosf");
+
+NEW_CFLOAT_RETTYPE
+new_ccosf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_ccosf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_ccoshf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_ccoshf.c
diff -N sysdeps/alpha/fpu/c2_ccoshf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_ccoshf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_ccoshf (__complex__ float x);
+#define __ccoshf internal_ccoshf
+
+#include <sysdeps/generic/s_ccoshf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_ccoshf (NEW_CFLOAT_PROTO) __asm__("__c2_ccoshf");
+
+NEW_CFLOAT_RETTYPE
+new_ccoshf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_ccoshf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_cexpf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_cexpf.c
diff -N sysdeps/alpha/fpu/c2_cexpf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_cexpf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_cexpf (__complex__ float x);
+#define __cexpf internal_cexpf
+
+#include <sysdeps/generic/s_cexpf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_cexpf (NEW_CFLOAT_PROTO) __asm__("__c2_cexpf");
+
+NEW_CFLOAT_RETTYPE
+new_cexpf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_cexpf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_cimagf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_cimagf.c
diff -N sysdeps/alpha/fpu/c2_cimagf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_cimagf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,30 @@
+/* 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.  */
+
+#include <complex.h>
+#include "cfloat-compat.h"
+
+float new_cimagf (NEW_CFLOAT_PROTO) __asm__("__c2_cimagf");
+
+float
+new_cimagf (NEW_CFLOAT_DECL (z))
+{
+  NEW_CFLOAT_INIT (z);
+  return NEW_CFLOAT_IMAG (z);
+}
Index: sysdeps/alpha/fpu/c2_clog10f.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_clog10f.c
diff -N sysdeps/alpha/fpu/c2_clog10f.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_clog10f.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_clog10f (__complex__ float x);
+#define __clog10f internal_clog10f
+
+#include <sysdeps/generic/s_clog10f.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_clog10f (NEW_CFLOAT_PROTO) __asm__("__c2_clog10f");
+
+NEW_CFLOAT_RETTYPE
+new_clog10f (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_clog10f (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_clogf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_clogf.c
diff -N sysdeps/alpha/fpu/c2_clogf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_clogf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_clogf (__complex__ float x);
+#define __clogf internal_clogf
+
+#include <sysdeps/generic/s_clogf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_clogf (NEW_CFLOAT_PROTO) __asm__("__c2_clogf");
+
+NEW_CFLOAT_RETTYPE
+new_clogf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_clogf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_conjf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_conjf.c
diff -N sysdeps/alpha/fpu/c2_conjf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_conjf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,31 @@
+/* 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.  */
+
+#include <complex.h>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_conjf (NEW_CFLOAT_PROTO) __asm__("__c2_conjf");
+
+NEW_CFLOAT_RETTYPE
+new_conjf (NEW_CFLOAT_DECL (z))
+{
+  NEW_CFLOAT_INIT (z);
+  NEW_CFLOAT_VALUE (z) = ~ NEW_CFLOAT_VALUE (z);
+  return NEW_CFLOAT_RETURN (z);
+}
Index: sysdeps/alpha/fpu/c2_cpowf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_cpowf.c
diff -N sysdeps/alpha/fpu/c2_cpowf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_cpowf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,41 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float
+  internal_cpowf (__complex__ float x, __complex__ float c);
+#define __cpowf internal_cpowf
+
+#include <sysdeps/generic/s_cpowf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_cpowf (NEW_CFLOAT_PROTO, NEW_CFLOAT_PROTO)
+  __asm__("__c2_cpowf");
+
+NEW_CFLOAT_RETTYPE
+new_cpowf (NEW_CFLOAT_DECL (x), NEW_CFLOAT_DECL (c))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_INIT (c);
+  NEW_CFLOAT_VALUE (x)
+    = internal_cpowf (NEW_CFLOAT_VALUE (x), NEW_CFLOAT_VALUE (c));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_cprojf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_cprojf.c
diff -N sysdeps/alpha/fpu/c2_cprojf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_cprojf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_cprojf (__complex__ float x);
+#define __cprojf internal_cprojf
+
+#include <sysdeps/generic/s_cprojf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_cprojf (NEW_CFLOAT_PROTO) __asm__("__c2_cprojf");
+
+NEW_CFLOAT_RETTYPE
+new_cprojf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_cprojf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_crealf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_crealf.c
diff -N sysdeps/alpha/fpu/c2_crealf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_crealf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,30 @@
+/* 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.  */
+
+#include <complex.h>
+#include "cfloat-compat.h"
+
+float new_crealf (NEW_CFLOAT_PROTO) __asm__("__c2_crealf");
+
+float
+new_crealf (NEW_CFLOAT_DECL (z))
+{
+  NEW_CFLOAT_INIT (z);
+  return NEW_CFLOAT_REAL (z);
+}
Index: sysdeps/alpha/fpu/c2_csinf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_csinf.c
diff -N sysdeps/alpha/fpu/c2_csinf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_csinf.c	12 Jan 2004 06:33:17 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_csinf (__complex__ float x);
+#define __csinf internal_csinf
+
+#include <sysdeps/generic/s_csinf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_csinf (NEW_CFLOAT_PROTO) __asm__("__c2_csinf");
+
+NEW_CFLOAT_RETTYPE
+new_csinf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_csinf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_csinhf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_csinhf.c
diff -N sysdeps/alpha/fpu/c2_csinhf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_csinhf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_csinhf (__complex__ float x);
+#define __csinhf internal_csinhf
+
+#include <sysdeps/generic/s_csinhf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_csinhf (NEW_CFLOAT_PROTO) __asm__("__c2_csinhf");
+
+NEW_CFLOAT_RETTYPE
+new_csinhf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_csinhf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_csqrtf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_csqrtf.c
diff -N sysdeps/alpha/fpu/c2_csqrtf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_csqrtf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_csqrtf (__complex__ float x);
+#define __csqrtf internal_csqrtf
+
+#include <sysdeps/generic/s_csqrtf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_csqrtf (NEW_CFLOAT_PROTO) __asm__("__c2_csqrtf");
+
+NEW_CFLOAT_RETTYPE
+new_csqrtf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_csqrtf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_ctanf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_ctanf.c
diff -N sysdeps/alpha/fpu/c2_ctanf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_ctanf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_ctanf (__complex__ float x);
+#define __ctanf internal_ctanf
+
+#include <sysdeps/generic/s_ctanf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_ctanf (NEW_CFLOAT_PROTO) __asm__("__c2_ctanf");
+
+NEW_CFLOAT_RETTYPE
+new_ctanf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_ctanf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/c2_ctanhf.c
===================================================================
RCS file: sysdeps/alpha/fpu/c2_ctanhf.c
diff -N sysdeps/alpha/fpu/c2_ctanhf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/c2_ctanhf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_ctanhf (__complex__ float x);
+#define __ctanhf internal_ctanhf
+
+#include <sysdeps/generic/s_ctanhf.c>
+#include "cfloat-compat.h"
+
+NEW_CFLOAT_RETTYPE new_ctanhf (NEW_CFLOAT_PROTO) __asm__("__c2_ctanhf");
+
+NEW_CFLOAT_RETTYPE
+new_ctanhf (NEW_CFLOAT_DECL (x))
+{
+  NEW_CFLOAT_INIT (x);
+  NEW_CFLOAT_VALUE (x) = internal_ctanhf (NEW_CFLOAT_VALUE (x));
+  return NEW_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/cabsf.c
===================================================================
RCS file: sysdeps/alpha/fpu/cabsf.c
diff -N sysdeps/alpha/fpu/cabsf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/cabsf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,32 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+#include "cfloat-compat.h"
+
+float old_cabsf (OLD_CFLOAT_PROTO) __asm__("__cabsf");
+
+float
+old_cabsf (OLD_CFLOAT_DECL (z))
+{
+  OLD_CFLOAT_INIT (z);
+  return __hypotf (OLD_CFLOAT_REAL (z), OLD_CFLOAT_IMAG (z));
+}
+weak_alias (__cabsf, cabsf)
Index: sysdeps/alpha/fpu/cargf.c
===================================================================
RCS file: sysdeps/alpha/fpu/cargf.c
diff -N sysdeps/alpha/fpu/cargf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/cargf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,32 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+#include "cfloat-compat.h"
+
+float old_cargf (OLD_CFLOAT_PROTO) __asm__("__cargf");
+
+float
+old_cargf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  return __atan2f (OLD_CFLOAT_IMAG (x), OLD_CFLOAT_REAL (x));
+}
+weak_alias (__cargf, cargf)
Index: sysdeps/alpha/fpu/cfloat-compat.h
===================================================================
RCS file: sysdeps/alpha/fpu/cfloat-compat.h
diff -N sysdeps/alpha/fpu/cfloat-compat.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/cfloat-compat.h	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,68 @@
+/* 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, complex float values were packed into one
+   floating point register.  In 3.4 and later, GCC changed to follow
+   the official Tru64 ABI, which passes the components of a complex
+   as separate parameters.  */
+
+/* The compatibility versions of these macros actually work for any
+   version of GCC.  However, using the native support instead for one
+   or the other typically results in better code.  */
+
+#if __GNUC_PREREQ(3,4)
+  typedef union { double d; _Complex float cf; } c1_compat;
+# define OLD_CFLOAT_PROTO	double
+# define OLD_CFLOAT_DECL(x)	double x
+# define OLD_CFLOAT_INIT(x)	c1_compat x ## c; x ## c.d = x
+# define OLD_CFLOAT_REAL(x)	__real__ x ## c.cf
+# define OLD_CFLOAT_IMAG(x)	__imag__ x ## c.cf
+# define OLD_CFLOAT_VALUE(x)	x ## c.cf
+# define OLD_CFLOAT_RETTYPE	double
+# define OLD_CFLOAT_RETURN(x)	x ## c.d
+# define NEW_CFLOAT_PROTO	_Complex float
+# define NEW_CFLOAT_DECL(x)	_Complex float x
+# define NEW_CFLOAT_INIT(x)
+# define NEW_CFLOAT_REAL(x)	__real__ x
+# define NEW_CFLOAT_IMAG(x)	__imag__ x
+# define NEW_CFLOAT_VALUE(x)	x
+# define NEW_CFLOAT_RETTYPE	_Complex float
+# define NEW_CFLOAT_RETURN(x)	x
+#else
+# define OLD_CFLOAT_PROTO	_Complex float
+# define OLD_CFLOAT_DECL(x)	_Complex float x
+# define OLD_CFLOAT_INIT(x)
+# define OLD_CFLOAT_REAL(x)	__real__ x
+# define OLD_CFLOAT_IMAG(x)	__imag__ x
+# define OLD_CFLOAT_VALUE(x)	x
+# define OLD_CFLOAT_RETTYPE	_Complex float
+# define OLD_CFLOAT_RETURN(x)	x
+# define NEW_CFLOAT_PROTO	float, float
+# define NEW_CFLOAT_DECL(x)	float x ## r, float x ## i
+# define NEW_CFLOAT_INIT(x) \
+	_Complex float x ## c;    \
+	__real__ x ## c = x ## r; \
+	__imag__ x ## c = x ## i
+# define NEW_CFLOAT_REAL(x)	x ## r
+# define NEW_CFLOAT_IMAG(x)	x ## i
+# define NEW_CFLOAT_VALUE(x)	x ## c
+# define NEW_CFLOAT_RETTYPE	double _Complex
+# define NEW_CFLOAT_RETURN(x)	x ## c
+#endif
Index: sysdeps/alpha/fpu/cimagf.c
===================================================================
RCS file: sysdeps/alpha/fpu/cimagf.c
diff -N sysdeps/alpha/fpu/cimagf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/cimagf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,31 @@
+/* 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.  */
+
+#include <complex.h>
+#include "cfloat-compat.h"
+
+float old_cimagf (OLD_CFLOAT_PROTO) __asm__("__cimagf");
+
+float
+old_cimagf (OLD_CFLOAT_DECL (z))
+{
+  OLD_CFLOAT_INIT (z);
+  return OLD_CFLOAT_IMAG (z);
+}
+weak_alias (__cimagf, cimagf)
Index: sysdeps/alpha/fpu/conjf.c
===================================================================
RCS file: sysdeps/alpha/fpu/conjf.c
diff -N sysdeps/alpha/fpu/conjf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/conjf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,32 @@
+/* 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.  */
+
+#include <complex.h>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_conjf (OLD_CFLOAT_PROTO) __asm__("__conjf");
+
+OLD_CFLOAT_RETTYPE
+old_conjf (OLD_CFLOAT_DECL (z))
+{
+  OLD_CFLOAT_INIT (z);
+  OLD_CFLOAT_VALUE (z) = ~ OLD_CFLOAT_VALUE (z);
+  return OLD_CFLOAT_RETURN (z);
+}
+weak_alias (__conjf, conjf)
Index: sysdeps/alpha/fpu/crealf.c
===================================================================
RCS file: sysdeps/alpha/fpu/crealf.c
diff -N sysdeps/alpha/fpu/crealf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/crealf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,31 @@
+/* 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.  */
+
+#include <complex.h>
+#include "cfloat-compat.h"
+
+float old_crealf (OLD_CFLOAT_PROTO) __asm__("__crealf");
+
+float
+old_crealf (OLD_CFLOAT_DECL (z))
+{
+  OLD_CFLOAT_INIT (z);
+  return OLD_CFLOAT_REAL (z);
+}
+weak_alias (__crealf, crealf)
Index: sysdeps/alpha/fpu/s_cacosf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_cacosf.c
diff -N sysdeps/alpha/fpu/s_cacosf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_cacosf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_cacosf (__complex__ float x);
+#define __cacosf internal_cacosf
+
+#include <sysdeps/generic/s_cacosf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_cacosf (OLD_CFLOAT_PROTO) __asm__("__cacosf");
+
+OLD_CFLOAT_RETTYPE
+old_cacosf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_cacosf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_cacoshf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_cacoshf.c
diff -N sysdeps/alpha/fpu/s_cacoshf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_cacoshf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_cacoshf (__complex__ float x);
+#define __cacoshf internal_cacoshf
+
+#include <sysdeps/generic/s_cacoshf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_cacoshf (OLD_CFLOAT_PROTO) __asm__("__cacoshf");
+
+OLD_CFLOAT_RETTYPE
+old_cacoshf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_cacoshf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_casinf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_casinf.c
diff -N sysdeps/alpha/fpu/s_casinf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_casinf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_casinf (__complex__ float x);
+#define __casinf internal_casinf
+
+#include <sysdeps/generic/s_casinf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_casinf (OLD_CFLOAT_PROTO) __asm__("__casinf");
+
+OLD_CFLOAT_RETTYPE
+old_casinf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_casinf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_casinhf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_casinhf.c
diff -N sysdeps/alpha/fpu/s_casinhf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_casinhf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_casinhf (__complex__ float x);
+#define __casinhf internal_casinhf
+
+#include <sysdeps/generic/s_casinhf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_casinhf (OLD_CFLOAT_PROTO) __asm__("__casinhf");
+
+OLD_CFLOAT_RETTYPE
+old_casinhf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_casinhf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_catanf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_catanf.c
diff -N sysdeps/alpha/fpu/s_catanf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_catanf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_catanf (__complex__ float x);
+#define __catanf internal_catanf
+
+#include <sysdeps/generic/s_catanf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_catanf (OLD_CFLOAT_PROTO) __asm__("__catanf");
+
+OLD_CFLOAT_RETTYPE
+old_catanf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_catanf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_catanhf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_catanhf.c
diff -N sysdeps/alpha/fpu/s_catanhf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_catanhf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_catanhf (__complex__ float x);
+#define __catanhf internal_catanhf
+
+#include <sysdeps/generic/s_catanhf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_catanhf (OLD_CFLOAT_PROTO) __asm__("__catanhf");
+
+OLD_CFLOAT_RETTYPE
+old_catanhf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_catanhf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_ccosf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_ccosf.c
diff -N sysdeps/alpha/fpu/s_ccosf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_ccosf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_ccosf (__complex__ float x);
+#define __ccosf internal_ccosf
+
+#include <sysdeps/generic/s_ccosf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_ccosf (OLD_CFLOAT_PROTO) __asm__("__ccosf");
+
+OLD_CFLOAT_RETTYPE
+old_ccosf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_ccosf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_ccoshf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_ccoshf.c
diff -N sysdeps/alpha/fpu/s_ccoshf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_ccoshf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_ccoshf (__complex__ float x);
+#define __ccoshf internal_ccoshf
+
+#include <sysdeps/generic/s_ccoshf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_ccoshf (OLD_CFLOAT_PROTO) __asm__("__ccoshf");
+
+OLD_CFLOAT_RETTYPE
+old_ccoshf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_ccoshf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_cexpf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_cexpf.c
diff -N sysdeps/alpha/fpu/s_cexpf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_cexpf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_cexpf (__complex__ float x);
+#define __cexpf internal_cexpf
+
+#include <sysdeps/generic/s_cexpf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_cexpf (OLD_CFLOAT_PROTO) __asm__("__cexpf");
+
+OLD_CFLOAT_RETTYPE
+old_cexpf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_cexpf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_clog10f.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_clog10f.c
diff -N sysdeps/alpha/fpu/s_clog10f.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_clog10f.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_clog10f (__complex__ float x);
+#define __clog10f internal_clog10f
+
+#include <sysdeps/generic/s_clog10f.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_clog10f (OLD_CFLOAT_PROTO) __asm__("__clog10f");
+
+OLD_CFLOAT_RETTYPE
+old_clog10f (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_clog10f (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_clogf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_clogf.c
diff -N sysdeps/alpha/fpu/s_clogf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_clogf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_clogf (__complex__ float x);
+#define __clogf internal_clogf
+
+#include <sysdeps/generic/s_clogf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_clogf (OLD_CFLOAT_PROTO) __asm__("__clogf");
+
+OLD_CFLOAT_RETTYPE
+old_clogf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_clogf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_cpowf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_cpowf.c
diff -N sysdeps/alpha/fpu/s_cpowf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_cpowf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,41 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float
+  internal_cpowf (__complex__ float x, __complex__ float c);
+#define __cpowf internal_cpowf
+
+#include <sysdeps/generic/s_cpowf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_cpowf (OLD_CFLOAT_PROTO, OLD_CFLOAT_PROTO)
+  __asm__("__cpowf");
+
+OLD_CFLOAT_RETTYPE
+old_cpowf (OLD_CFLOAT_DECL (x), OLD_CFLOAT_DECL (c))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_INIT (c);
+  OLD_CFLOAT_VALUE (x)
+    = internal_cpowf (OLD_CFLOAT_VALUE (x), OLD_CFLOAT_VALUE (c));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_cprojf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_cprojf.c
diff -N sysdeps/alpha/fpu/s_cprojf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_cprojf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_cprojf (__complex__ float x);
+#define __cprojf internal_cprojf
+
+#include <sysdeps/generic/s_cprojf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_cprojf (OLD_CFLOAT_PROTO) __asm__("__cprojf");
+
+OLD_CFLOAT_RETTYPE
+old_cprojf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_cprojf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_csinf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_csinf.c
diff -N sysdeps/alpha/fpu/s_csinf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_csinf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_csinf (__complex__ float x);
+#define __csinf internal_csinf
+
+#include <sysdeps/generic/s_csinf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_csinf (OLD_CFLOAT_PROTO) __asm__("__csinf");
+
+OLD_CFLOAT_RETTYPE
+old_csinf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_csinf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_csinhf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_csinhf.c
diff -N sysdeps/alpha/fpu/s_csinhf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_csinhf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_csinhf (__complex__ float x);
+#define __csinhf internal_csinhf
+
+#include <sysdeps/generic/s_csinhf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_csinhf (OLD_CFLOAT_PROTO) __asm__("__csinhf");
+
+OLD_CFLOAT_RETTYPE
+old_csinhf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_csinhf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_csqrtf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_csqrtf.c
diff -N sysdeps/alpha/fpu/s_csqrtf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_csqrtf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_csqrtf (__complex__ float x);
+#define __csqrtf internal_csqrtf
+
+#include <sysdeps/generic/s_csqrtf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_csqrtf (OLD_CFLOAT_PROTO) __asm__("__csqrtf");
+
+OLD_CFLOAT_RETTYPE
+old_csqrtf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_csqrtf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_ctanf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_ctanf.c
diff -N sysdeps/alpha/fpu/s_ctanf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_ctanf.c	12 Jan 2004 06:33:18 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_ctanf (__complex__ float x);
+#define __ctanf internal_ctanf
+
+#include <sysdeps/generic/s_ctanf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_ctanf (OLD_CFLOAT_PROTO) __asm__("__ctanf");
+
+OLD_CFLOAT_RETTYPE
+old_ctanf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_ctanf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/s_ctanhf.c
===================================================================
RCS file: sysdeps/alpha/fpu/s_ctanhf.c
diff -N sysdeps/alpha/fpu/s_ctanhf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysdeps/alpha/fpu/s_ctanhf.c	12 Jan 2004 06:33:19 -0000
@@ -0,0 +1,37 @@
+/* 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.  */
+
+#include <complex.h>
+#include <math.h>
+
+static inline __complex__ float internal_ctanhf (__complex__ float x);
+#define __ctanhf internal_ctanhf
+
+#include <sysdeps/generic/s_ctanhf.c>
+#include "cfloat-compat.h"
+
+OLD_CFLOAT_RETTYPE old_ctanhf (OLD_CFLOAT_PROTO) __asm__("__ctanhf");
+
+OLD_CFLOAT_RETTYPE
+old_ctanhf (OLD_CFLOAT_DECL (x))
+{
+  OLD_CFLOAT_INIT (x);
+  OLD_CFLOAT_VALUE (x) = internal_ctanhf (OLD_CFLOAT_VALUE (x));
+  return OLD_CFLOAT_RETURN (x);
+}
Index: sysdeps/alpha/fpu/bits/mathdef.h
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/alpha/fpu/bits/mathdef.h,v
retrieving revision 1.10
diff -c -p -d -u -r1.10 mathdef.h
--- sysdeps/alpha/fpu/bits/mathdef.h	9 Apr 2003 07:39:17 -0000	1.10
+++ sysdeps/alpha/fpu/bits/mathdef.h	12 Jan 2004 06:33:19 -0000
@@ -61,10 +61,34 @@ typedef double double_t;
 # define FP_ILOGB0     (-2147483647)
 # define FP_ILOGBNAN   (2147483647)
 
-#endif	/* ISO C99 */
+#endif	/* ISO C99 && MATH_H */
 
 #ifndef __NO_LONG_DOUBLE_MATH
 /* Signal that we do not really have a `long double'.  The disables the
    declaration of all the `long double' function variants.  */
 # define __NO_LONG_DOUBLE_MATH	1
 #endif
+
+#if defined _COMPLEX_H && !defined _COMPLEX_H_MATHDEF
+# define _COMPLEX_H_MATHDEF 1
+# if __GNUC_PREREQ(3,4)
+
+/* Due to an ABI change, we need to remap the complex float symbols.  */
+#  define _Mdouble_		float
+#  define __MATHCALL(function, args) \
+    __MATHDECL (_Complex float, function, args)
+#  define __MATHDECL(type, function, args) \
+    __MATHDECL_1(type, function##f, args, __c2_##function##f); \
+    __MATHDECL_1(type, __##function##f, args, __c2_##function##f)
+#  define __MATHDECL_1(type, function, args, alias) \
+    extern type function args __asm__(#alias) __THROW
+
+#  include <bits/cmathcalls.h>
+
+#  undef _Mdouble_
+#  undef __MATHCALL
+#  undef __MATHDECL
+#  undef __MATHDECL_1
+
+# endif /* GNUC 3.4 or higher */
+#endif /* COMPLEX_H */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]