]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - math/complex.h
Update copyright notices with scripts/update-copyrights
[thirdparty/glibc.git] / math / complex.h
index 751aaf763f58ae851a609194f8e30242b2ec0668..7ad247df142668a6e244c19e586025e89d1935c2 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2014 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
@@ -12,9 +12,8 @@
    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.  */
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
 
 /*
  *     ISO C99:  7.3 Complex arithmetic        <complex.h>
@@ -49,6 +48,13 @@ __BEGIN_DECLS
 #undef I
 #define I _Complex_I
 
+#if defined __USE_ISOC11 && __GNUC_PREREQ (4, 7)
+/* Macros to expand into expression of specified complex type.  */
+# define CMPLX(x, y) __builtin_complex ((double) (x), (double) (y))
+# define CMPLXF(x, y) __builtin_complex ((float) (x), (float) (y))
+# define CMPLXL(x, y) __builtin_complex ((long double) (x), (long double) (y))
+#endif
+
 /* The file <bits/cmathcalls.h> contains the prototypes for all the
    actual math functions.  These macros are used for those prototypes,
    so we can easily declare each function as both `name' and `__name',
@@ -73,19 +79,15 @@ __BEGIN_DECLS
 # define _Mfloat_              float
 #endif
 #define _Mdouble_              _Mfloat_
-#ifdef __STDC__
-# define __MATH_PRECNAME(name) name##f
-#else
-# define __MATH_PRECNAME(name) name/**/f
-#endif
+#define __MATH_PRECNAME(name)  name##f
 #include <bits/cmathcalls.h>
 #undef _Mdouble_
 #undef __MATH_PRECNAME
 
 /* And the long double versions.  It is non-critical to define them
    here unconditionally since `long double' is required in ISO C99.  */
-#if (__STDC__ - 0 || __GNUC__ - 0) \
-    && (!defined __NO_LONG_DOUBLE_MATH || defined __LDBL_COMPAT)
+#if !(defined __NO_LONG_DOUBLE_MATH && defined _LIBC)  \
+    || defined __LDBL_COMPAT
 # ifdef __LDBL_COMPAT
 #  undef __MATHDECL_1
 #  define __MATHDECL_1(type, function, args) \
@@ -96,11 +98,7 @@ __BEGIN_DECLS
 #  define _Mlong_double_       long double
 # endif
 # define _Mdouble_             _Mlong_double_
-# ifdef __STDC__
-#  define __MATH_PRECNAME(name)        name##l
-# else
-#  define __MATH_PRECNAME(name)        name/**/l
-# endif
+# define __MATH_PRECNAME(name) name##l
 # include <bits/cmathcalls.h>
 #endif
 #undef _Mdouble_