components/gcc49/patches/027-cmath_c99.patch
author Stefan Teleman <stefan.teleman@oracle.com>
Wed, 16 Dec 2015 20:20:50 -0800
changeset 5205 eaff9ab86216
permissions -rw-r--r--
21637184 integrate GCC 4.9.3 in Solaris 21637193 enable CilkPlus support for SPARC in GCC 4.9.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5205
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     1
# Imported from GCC upstream. Originally applied to GCC > 5.3, backported
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     2
# to 4.9.3 and 5.3.
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     3
#
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     4
# S12 build 86 introduces changes to <math.h> and <iso/math_c99.h>.
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     5
# <iso/math_c99.h> now contains the inline template declarations and
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     6
# definitions of many C99 Math C++ functions.
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     7
# This wreaks havoc for consumers of cmath. We have no choice but to do
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     8
# an adjustment to cmath. Corresponding changes to ./configure to make it
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     9
# recognize when it cmatch changes are needed are included in
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    10
# this patch.  The bulk of the changes are based on a recent upstream
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    11
# changeset:
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    12
#   https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=230807
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    13
#
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    14
# The correct solution here is to fix <iso/math_c99.h>. The changes
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    15
# introduced in build 86 are unnecessary and ill-formed.
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    16
diff -r -u libstdc++-v3/include/c_global/cmath libstdc++-v3/include/c_global/cmath
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    17
--- libstdc++-v3/include/c_global/cmath	Thu Jan  2 14:30:10 2014
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    18
+++ libstdc++-v3/include/c_global/cmath	Thu Dec 10 07:37:50 2015
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    19
@@ -557,6 +557,8 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    20
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    21
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    22
 #if __cplusplus >= 201103L
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    23
+
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    24
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    25
   constexpr int
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    26
   fpclassify(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    27
   { return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL,
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    28
@@ -571,6 +573,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    29
   fpclassify(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    30
   { return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL,
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    31
 				FP_SUBNORMAL, FP_ZERO, __x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    32
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    33
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    34
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    35
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    36
@@ -578,6 +581,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    37
     fpclassify(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    38
     { return __x != 0 ? FP_NORMAL : FP_ZERO; }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    39
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    40
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    41
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    42
   isfinite(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    43
   { return __builtin_isfinite(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    44
@@ -589,6 +593,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    45
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    46
   isfinite(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    47
   { return __builtin_isfinite(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    48
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    49
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    50
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    51
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    52
@@ -596,6 +601,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    53
     isfinite(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    54
     { return true; }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    55
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    56
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    57
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    58
   isinf(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    59
   { return __builtin_isinf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    60
@@ -607,6 +613,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    61
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    62
   isinf(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    63
   { return __builtin_isinf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    64
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    65
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    66
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    67
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    68
@@ -614,6 +621,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    69
     isinf(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    70
     { return false; }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    71
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    72
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    73
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    74
   isnan(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    75
   { return __builtin_isnan(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    76
@@ -625,6 +633,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    77
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    78
   isnan(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    79
   { return __builtin_isnan(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    80
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    81
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    82
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    83
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    84
@@ -632,6 +641,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    85
     isnan(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    86
     { return false; }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    87
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    88
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    89
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    90
   isnormal(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    91
   { return __builtin_isnormal(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    92
@@ -643,6 +653,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    93
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    94
   isnormal(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    95
   { return __builtin_isnormal(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    96
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    97
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    98
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    99
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   100
@@ -650,6 +661,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   101
     isnormal(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   102
     { return __x != 0 ? true : false; }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   103
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   104
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   105
   // The front-end doesn't provide a type generic builtin (libstdc++/58625).
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   106
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   107
   signbit(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   108
@@ -662,6 +674,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   109
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   110
   signbit(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   111
   { return __builtin_signbitl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   112
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   113
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   114
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   115
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   116
@@ -669,6 +682,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   117
     signbit(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   118
     { return __x < 0 ? true : false; }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   119
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   120
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   121
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   122
   isgreater(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   123
   { return __builtin_isgreater(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   124
@@ -680,6 +694,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   125
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   126
   isgreater(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   127
   { return __builtin_isgreater(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   128
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   129
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   130
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   131
     constexpr typename
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   132
@@ -691,6 +706,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   133
       return __builtin_isgreater(__type(__x), __type(__y));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   134
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   135
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   136
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   137
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   138
   isgreaterequal(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   139
   { return __builtin_isgreaterequal(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   140
@@ -702,6 +718,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   141
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   142
   isgreaterequal(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   143
   { return __builtin_isgreaterequal(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   144
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   145
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   146
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   147
     constexpr typename
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   148
@@ -713,6 +730,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   149
       return __builtin_isgreaterequal(__type(__x), __type(__y));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   150
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   151
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   152
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   153
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   154
   isless(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   155
   { return __builtin_isless(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   156
@@ -724,6 +742,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   157
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   158
   isless(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   159
   { return __builtin_isless(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   160
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   161
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   162
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   163
     constexpr typename
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   164
@@ -735,6 +754,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   165
       return __builtin_isless(__type(__x), __type(__y));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   166
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   167
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   168
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   169
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   170
   islessequal(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   171
   { return __builtin_islessequal(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   172
@@ -746,6 +766,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   173
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   174
   islessequal(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   175
   { return __builtin_islessequal(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   176
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   177
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   178
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   179
     constexpr typename
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   180
@@ -757,6 +778,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   181
       return __builtin_islessequal(__type(__x), __type(__y));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   182
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   183
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   184
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   185
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   186
   islessgreater(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   187
   { return __builtin_islessgreater(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   188
@@ -768,6 +790,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   189
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   190
   islessgreater(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   191
   { return __builtin_islessgreater(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   192
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   193
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   194
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   195
     constexpr typename
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   196
@@ -779,6 +802,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   197
       return __builtin_islessgreater(__type(__x), __type(__y));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   198
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   199
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   200
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   201
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   202
   isunordered(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   203
   { return __builtin_isunordered(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   204
@@ -790,6 +814,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   205
   constexpr bool
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   206
   isunordered(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   207
   { return __builtin_isunordered(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   208
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   209
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   210
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   211
     constexpr typename
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   212
@@ -1180,6 +1205,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   213
   using ::truncl;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   214
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   215
   /// Additional overloads.
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   216
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   217
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   218
   acosh(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   219
   { return __builtin_acoshf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   220
@@ -1187,6 +1213,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   221
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   222
   acosh(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   223
   { return __builtin_acoshl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   224
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   225
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   226
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   227
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   228
@@ -1194,6 +1221,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   229
     acosh(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   230
     { return __builtin_acosh(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   231
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   232
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   233
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   234
   asinh(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   235
   { return __builtin_asinhf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   236
@@ -1201,6 +1229,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   237
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   238
   asinh(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   239
   { return __builtin_asinhl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   240
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   241
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   242
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   243
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   244
@@ -1208,6 +1237,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   245
     asinh(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   246
     { return __builtin_asinh(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   247
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   248
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   249
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   250
   atanh(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   251
   { return __builtin_atanhf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   252
@@ -1215,6 +1245,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   253
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   254
   atanh(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   255
   { return __builtin_atanhl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   256
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   257
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   258
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   259
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   260
@@ -1222,6 +1253,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   261
     atanh(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   262
     { return __builtin_atanh(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   263
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   264
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   265
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   266
   cbrt(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   267
   { return __builtin_cbrtf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   268
@@ -1229,6 +1261,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   269
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   270
   cbrt(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   271
   { return __builtin_cbrtl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   272
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   273
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   274
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   275
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   276
@@ -1236,6 +1269,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   277
     cbrt(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   278
     { return __builtin_cbrt(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   279
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   280
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   281
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   282
   copysign(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   283
   { return __builtin_copysignf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   284
@@ -1243,6 +1277,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   285
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   286
   copysign(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   287
   { return __builtin_copysignl(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   288
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   289
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   290
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   291
     constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   292
@@ -1252,6 +1287,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   293
       return copysign(__type(__x), __type(__y));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   294
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   295
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   296
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   297
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   298
   erf(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   299
   { return __builtin_erff(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   300
@@ -1259,6 +1295,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   301
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   302
   erf(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   303
   { return __builtin_erfl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   304
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   305
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   306
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   307
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   308
@@ -1266,6 +1303,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   309
     erf(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   310
     { return __builtin_erf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   311
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   312
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   313
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   314
   erfc(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   315
   { return __builtin_erfcf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   316
@@ -1273,6 +1311,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   317
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   318
   erfc(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   319
   { return __builtin_erfcl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   320
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   321
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   322
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   323
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   324
@@ -1280,6 +1319,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   325
     erfc(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   326
     { return __builtin_erfc(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   327
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   328
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   329
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   330
   exp2(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   331
   { return __builtin_exp2f(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   332
@@ -1287,6 +1327,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   333
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   334
   exp2(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   335
   { return __builtin_exp2l(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   336
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   337
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   338
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   339
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   340
@@ -1294,6 +1335,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   341
     exp2(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   342
     { return __builtin_exp2(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   343
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   344
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   345
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   346
   expm1(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   347
   { return __builtin_expm1f(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   348
@@ -1301,6 +1343,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   349
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   350
   expm1(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   351
   { return __builtin_expm1l(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   352
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   353
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   354
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   355
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   356
@@ -1308,6 +1351,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   357
     expm1(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   358
     { return __builtin_expm1(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   359
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   360
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   361
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   362
   fdim(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   363
   { return __builtin_fdimf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   364
@@ -1315,6 +1359,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   365
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   366
   fdim(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   367
   { return __builtin_fdiml(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   368
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   369
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   370
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   371
     constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   372
@@ -1324,6 +1369,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   373
       return fdim(__type(__x), __type(__y));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   374
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   375
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   376
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   377
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   378
   fma(float __x, float __y, float __z)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   379
   { return __builtin_fmaf(__x, __y, __z); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   380
@@ -1331,6 +1377,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   381
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   382
   fma(long double __x, long double __y, long double __z)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   383
   { return __builtin_fmal(__x, __y, __z); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   384
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   385
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   386
   template<typename _Tp, typename _Up, typename _Vp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   387
     constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   388
@@ -1340,6 +1387,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   389
       return fma(__type(__x), __type(__y), __type(__z));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   390
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   391
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   392
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   393
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   394
   fmax(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   395
   { return __builtin_fmaxf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   396
@@ -1347,6 +1395,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   397
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   398
   fmax(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   399
   { return __builtin_fmaxl(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   400
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   401
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   402
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   403
     constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   404
@@ -1356,6 +1405,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   405
       return fmax(__type(__x), __type(__y));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   406
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   407
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   408
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   409
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   410
   fmin(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   411
   { return __builtin_fminf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   412
@@ -1363,6 +1413,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   413
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   414
   fmin(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   415
   { return __builtin_fminl(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   416
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   417
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   418
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   419
     constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   420
@@ -1372,6 +1423,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   421
       return fmin(__type(__x), __type(__y));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   422
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   423
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   424
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   425
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   426
   hypot(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   427
   { return __builtin_hypotf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   428
@@ -1379,6 +1431,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   429
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   430
   hypot(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   431
   { return __builtin_hypotl(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   432
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   433
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   434
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   435
     constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   436
@@ -1388,6 +1441,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   437
       return hypot(__type(__x), __type(__y));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   438
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   439
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   440
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   441
   constexpr int
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   442
   ilogb(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   443
   { return __builtin_ilogbf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   444
@@ -1395,6 +1449,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   445
   constexpr int
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   446
   ilogb(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   447
   { return __builtin_ilogbl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   448
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   449
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   450
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   451
     constexpr
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   452
@@ -1403,6 +1458,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   453
     ilogb(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   454
     { return __builtin_ilogb(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   455
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   456
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   457
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   458
   lgamma(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   459
   { return __builtin_lgammaf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   460
@@ -1410,6 +1466,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   461
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   462
   lgamma(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   463
   { return __builtin_lgammal(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   464
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   465
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   466
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   467
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   468
@@ -1417,6 +1474,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   469
     lgamma(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   470
     { return __builtin_lgamma(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   471
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   472
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   473
   constexpr long long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   474
   llrint(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   475
   { return __builtin_llrintf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   476
@@ -1424,6 +1482,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   477
   constexpr long long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   478
   llrint(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   479
   { return __builtin_llrintl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   480
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   481
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   482
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   483
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   484
@@ -1431,6 +1490,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   485
     llrint(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   486
     { return __builtin_llrint(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   487
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   488
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   489
   constexpr long long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   490
   llround(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   491
   { return __builtin_llroundf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   492
@@ -1438,6 +1498,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   493
   constexpr long long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   494
   llround(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   495
   { return __builtin_llroundl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   496
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   497
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   498
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   499
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   500
@@ -1445,6 +1506,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   501
     llround(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   502
     { return __builtin_llround(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   503
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   504
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   505
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   506
   log1p(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   507
   { return __builtin_log1pf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   508
@@ -1452,6 +1514,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   509
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   510
   log1p(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   511
   { return __builtin_log1pl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   512
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   513
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   514
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   515
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   516
@@ -1459,6 +1522,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   517
     log1p(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   518
     { return __builtin_log1p(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   519
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   520
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   521
   // DR 568.
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   522
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   523
   log2(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   524
@@ -1467,6 +1531,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   525
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   526
   log2(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   527
   { return __builtin_log2l(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   528
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   529
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   530
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   531
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   532
@@ -1474,6 +1539,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   533
     log2(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   534
     { return __builtin_log2(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   535
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   536
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   537
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   538
   logb(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   539
   { return __builtin_logbf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   540
@@ -1481,6 +1547,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   541
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   542
   logb(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   543
   { return __builtin_logbl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   544
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   545
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   546
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   547
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   548
@@ -1488,6 +1555,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   549
     logb(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   550
     { return __builtin_logb(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   551
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   552
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   553
   constexpr long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   554
   lrint(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   555
   { return __builtin_lrintf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   556
@@ -1495,6 +1563,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   557
   constexpr long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   558
   lrint(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   559
   { return __builtin_lrintl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   560
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   561
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   562
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   563
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   564
@@ -1502,6 +1571,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   565
     lrint(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   566
     { return __builtin_lrint(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   567
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   568
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   569
   constexpr long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   570
   lround(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   571
   { return __builtin_lroundf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   572
@@ -1509,6 +1579,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   573
   constexpr long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   574
   lround(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   575
   { return __builtin_lroundl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   576
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   577
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   578
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   579
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   580
@@ -1516,6 +1587,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   581
     lround(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   582
     { return __builtin_lround(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   583
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   584
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   585
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   586
   nearbyint(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   587
   { return __builtin_nearbyintf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   588
@@ -1523,6 +1595,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   589
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   590
   nearbyint(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   591
   { return __builtin_nearbyintl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   592
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   593
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   594
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   595
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   596
@@ -1530,6 +1603,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   597
     nearbyint(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   598
     { return __builtin_nearbyint(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   599
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   600
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   601
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   602
   nextafter(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   603
   { return __builtin_nextafterf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   604
@@ -1537,6 +1611,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   605
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   606
   nextafter(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   607
   { return __builtin_nextafterl(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   608
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   609
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   610
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   611
     constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   612
@@ -1546,6 +1621,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   613
       return nextafter(__type(__x), __type(__y));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   614
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   615
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   616
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   617
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   618
   nexttoward(float __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   619
   { return __builtin_nexttowardf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   620
@@ -1553,6 +1629,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   621
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   622
   nexttoward(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   623
   { return __builtin_nexttowardl(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   624
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   625
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   626
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   627
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   628
@@ -1560,6 +1637,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   629
     nexttoward(_Tp __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   630
     { return __builtin_nexttoward(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   631
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   632
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   633
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   634
   remainder(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   635
   { return __builtin_remainderf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   636
@@ -1567,6 +1645,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   637
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   638
   remainder(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   639
   { return __builtin_remainderl(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   640
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   641
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   642
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   643
     constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   644
@@ -1576,6 +1655,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   645
       return remainder(__type(__x), __type(__y));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   646
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   647
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   648
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   649
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   650
   remquo(float __x, float __y, int* __pquo)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   651
   { return __builtin_remquof(__x, __y, __pquo); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   652
@@ -1583,6 +1663,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   653
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   654
   remquo(long double __x, long double __y, int* __pquo)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   655
   { return __builtin_remquol(__x, __y, __pquo); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   656
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   657
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   658
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   659
     inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   660
@@ -1592,6 +1673,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   661
       return remquo(__type(__x), __type(__y), __pquo);
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   662
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   663
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   664
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   665
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   666
   rint(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   667
   { return __builtin_rintf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   668
@@ -1599,6 +1681,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   669
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   670
   rint(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   671
   { return __builtin_rintl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   672
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   673
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   674
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   675
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   676
@@ -1606,6 +1689,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   677
     rint(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   678
     { return __builtin_rint(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   679
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   680
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   681
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   682
   round(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   683
   { return __builtin_roundf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   684
@@ -1613,6 +1697,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   685
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   686
   round(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   687
   { return __builtin_roundl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   688
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   689
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   690
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   691
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   692
@@ -1620,6 +1705,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   693
     round(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   694
     { return __builtin_round(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   695
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   696
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   697
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   698
   scalbln(float __x, long __ex)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   699
   { return __builtin_scalblnf(__x, __ex); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   700
@@ -1627,6 +1713,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   701
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   702
   scalbln(long double __x, long __ex)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   703
   { return __builtin_scalblnl(__x, __ex); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   704
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   705
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   706
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   707
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   708
@@ -1634,6 +1721,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   709
     scalbln(_Tp __x, long __ex)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   710
     { return __builtin_scalbln(__x, __ex); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   711
  
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   712
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   713
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   714
   scalbn(float __x, int __ex)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   715
   { return __builtin_scalbnf(__x, __ex); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   716
@@ -1641,6 +1729,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   717
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   718
   scalbn(long double __x, int __ex)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   719
   { return __builtin_scalbnl(__x, __ex); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   720
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   721
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   722
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   723
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   724
@@ -1648,6 +1737,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   725
     scalbn(_Tp __x, int __ex)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   726
     { return __builtin_scalbn(__x, __ex); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   727
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   728
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   729
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   730
   tgamma(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   731
   { return __builtin_tgammaf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   732
@@ -1655,6 +1745,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   733
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   734
   tgamma(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   735
   { return __builtin_tgammal(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   736
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   737
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   738
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   739
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   740
@@ -1662,6 +1753,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   741
     tgamma(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   742
     { return __builtin_tgamma(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   743
  
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   744
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   745
   constexpr float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   746
   trunc(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   747
   { return __builtin_truncf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   748
@@ -1669,6 +1761,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   749
   constexpr long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   750
   trunc(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   751
   { return __builtin_truncl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   752
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   753
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   754
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   755
     constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   756
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   757
diff -r -u libstdc++-v3/include/tr1/cmath libstdc++-v3/include/tr1/cmath
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   758
--- libstdc++-v3/include/tr1/cmath	Thu Jan  2 14:30:10 2014
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   759
+++ libstdc++-v3/include/tr1/cmath	Thu Dec 10 07:34:33 2015
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   760
@@ -419,6 +419,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   761
   /// Additional overloads [8.16.4].
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   762
   using std::acos;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   763
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   764
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   765
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   766
   acosh(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   767
   { return __builtin_acoshf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   768
@@ -426,6 +427,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   769
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   770
   acosh(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   771
   { return __builtin_acoshl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   772
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   773
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   774
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   775
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   776
@@ -435,6 +437,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   777
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   778
   using std::asin;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   779
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   780
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   781
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   782
   asinh(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   783
   { return __builtin_asinhf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   784
@@ -442,6 +445,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   785
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   786
   asinh(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   787
   { return __builtin_asinhl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   788
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   789
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   790
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   791
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   792
@@ -452,6 +456,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   793
   using std::atan;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   794
   using std::atan2;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   795
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   796
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   797
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   798
   atanh(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   799
   { return __builtin_atanhf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   800
@@ -459,6 +464,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   801
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   802
   atanh(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   803
   { return __builtin_atanhl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   804
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   805
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   806
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   807
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   808
@@ -466,6 +472,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   809
     atanh(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   810
     { return __builtin_atanh(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   811
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   812
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   813
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   814
   cbrt(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   815
   { return __builtin_cbrtf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   816
@@ -473,6 +480,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   817
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   818
   cbrt(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   819
   { return __builtin_cbrtl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   820
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   821
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   822
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   823
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   824
@@ -482,6 +490,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   825
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   826
   using std::ceil;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   827
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   828
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   829
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   830
   copysign(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   831
   { return __builtin_copysignf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   832
@@ -489,6 +498,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   833
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   834
   copysign(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   835
   { return __builtin_copysignl(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   836
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   837
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   838
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   839
     inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   840
@@ -501,6 +511,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   841
   using std::cos;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   842
   using std::cosh;  
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   843
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   844
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   845
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   846
   erf(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   847
   { return __builtin_erff(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   848
@@ -508,6 +519,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   849
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   850
   erf(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   851
   { return __builtin_erfl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   852
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   853
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   854
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   855
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   856
@@ -515,6 +527,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   857
     erf(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   858
     { return __builtin_erf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   859
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   860
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   861
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   862
   erfc(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   863
   { return __builtin_erfcf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   864
@@ -522,6 +535,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   865
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   866
   erfc(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   867
   { return __builtin_erfcl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   868
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   869
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   870
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   871
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   872
@@ -531,6 +545,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   873
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   874
   using std::exp;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   875
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   876
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   877
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   878
   exp2(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   879
   { return __builtin_exp2f(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   880
@@ -538,6 +553,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   881
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   882
   exp2(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   883
   { return __builtin_exp2l(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   884
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   885
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   886
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   887
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   888
@@ -545,6 +561,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   889
     exp2(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   890
     { return __builtin_exp2(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   891
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   892
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   893
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   894
   expm1(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   895
   { return __builtin_expm1f(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   896
@@ -552,6 +569,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   897
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   898
   expm1(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   899
   { return __builtin_expm1l(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   900
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   901
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   902
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   903
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   904
@@ -568,6 +586,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   905
   using ::fabs;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   906
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   907
 #ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   908
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   909
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   910
   fabs(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   911
   { return __builtin_fabsf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   912
@@ -575,6 +594,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   913
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   914
   fabs(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   915
   { return __builtin_fabsl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   916
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   917
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   918
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   919
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   920
@@ -583,6 +603,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   921
     { return __builtin_fabs(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   922
 #endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   923
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   924
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   925
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   926
   fdim(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   927
   { return __builtin_fdimf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   928
@@ -590,6 +611,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   929
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   930
   fdim(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   931
   { return __builtin_fdiml(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   932
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   933
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   934
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   935
     inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   936
@@ -601,6 +623,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   937
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   938
   using std::floor;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   939
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   940
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   941
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   942
   fma(float __x, float __y, float __z)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   943
   { return __builtin_fmaf(__x, __y, __z); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   944
@@ -608,6 +631,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   945
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   946
   fma(long double __x, long double __y, long double __z)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   947
   { return __builtin_fmal(__x, __y, __z); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   948
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   949
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   950
   template<typename _Tp, typename _Up, typename _Vp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   951
     inline typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   952
@@ -617,6 +641,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   953
       return fma(__type(__x), __type(__y), __type(__z));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   954
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   955
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   956
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   957
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   958
   fmax(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   959
   { return __builtin_fmaxf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   960
@@ -624,6 +649,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   961
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   962
   fmax(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   963
   { return __builtin_fmaxl(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   964
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   965
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   966
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   967
     inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   968
@@ -633,6 +659,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   969
       return fmax(__type(__x), __type(__y));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   970
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   971
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   972
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   973
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   974
   fmin(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   975
   { return __builtin_fminf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   976
@@ -640,6 +667,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   977
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   978
   fmin(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   979
   { return __builtin_fminl(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   980
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   981
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   982
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   983
     inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   984
@@ -652,6 +680,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   985
   using std::fmod;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   986
   using std::frexp;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   987
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   988
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   989
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   990
   hypot(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   991
   { return __builtin_hypotf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   992
@@ -659,6 +688,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   993
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   994
   hypot(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   995
   { return __builtin_hypotl(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   996
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   997
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   998
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   999
     inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1000
@@ -668,6 +698,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1001
       return hypot(__type(__y), __type(__x));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1002
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1003
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1004
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1005
   inline int
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1006
   ilogb(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1007
   { return __builtin_ilogbf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1008
@@ -675,6 +706,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1009
   inline int
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1010
   ilogb(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1011
   { return __builtin_ilogbl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1012
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1013
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1014
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1015
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1016
@@ -684,6 +716,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1017
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1018
   using std::ldexp;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1019
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1020
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1021
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1022
   lgamma(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1023
   { return __builtin_lgammaf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1024
@@ -691,6 +724,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1025
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1026
   lgamma(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1027
   { return __builtin_lgammal(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1028
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1029
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1030
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1031
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1032
@@ -698,6 +732,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1033
     lgamma(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1034
     { return __builtin_lgamma(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1035
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1036
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1037
   inline long long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1038
   llrint(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1039
   { return __builtin_llrintf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1040
@@ -705,6 +740,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1041
   inline long long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1042
   llrint(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1043
   { return __builtin_llrintl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1044
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1045
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1046
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1047
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1048
@@ -712,6 +748,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1049
     llrint(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1050
     { return __builtin_llrint(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1051
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1052
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1053
   inline long long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1054
   llround(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1055
   { return __builtin_llroundf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1056
@@ -719,6 +756,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1057
   inline long long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1058
   llround(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1059
   { return __builtin_llroundl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1060
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1061
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1062
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1063
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1064
@@ -729,6 +767,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1065
   using std::log;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1066
   using std::log10;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1067
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1068
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1069
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1070
   log1p(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1071
   { return __builtin_log1pf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1072
@@ -736,6 +775,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1073
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1074
   log1p(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1075
   { return __builtin_log1pl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1076
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1077
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1078
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1079
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1080
@@ -744,6 +784,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1081
     { return __builtin_log1p(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1082
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1083
   // DR 568.
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1084
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1085
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1086
   log2(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1087
   { return __builtin_log2f(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1088
@@ -751,6 +792,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1089
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1090
   log2(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1091
   { return __builtin_log2l(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1092
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1093
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1094
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1095
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1096
@@ -758,6 +800,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1097
     log2(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1098
     { return __builtin_log2(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1099
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1100
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1101
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1102
   logb(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1103
   { return __builtin_logbf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1104
@@ -765,6 +808,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1105
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1106
   logb(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1107
   { return __builtin_logbl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1108
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1109
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1110
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1111
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1112
@@ -774,6 +818,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1113
       return __builtin_logb(__x);
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1114
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1115
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1116
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1117
   inline long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1118
   lrint(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1119
   { return __builtin_lrintf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1120
@@ -781,6 +826,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1121
   inline long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1122
   lrint(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1123
   { return __builtin_lrintl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1124
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1125
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1126
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1127
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1128
@@ -788,6 +834,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1129
     lrint(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1130
     { return __builtin_lrint(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1131
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1132
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1133
   inline long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1134
   lround(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1135
   { return __builtin_lroundf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1136
@@ -795,6 +842,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1137
   inline long
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1138
   lround(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1139
   { return __builtin_lroundl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1140
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1141
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1142
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1143
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1144
@@ -802,6 +850,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1145
     lround(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1146
     { return __builtin_lround(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1147
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1148
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1149
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1150
   nearbyint(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1151
   { return __builtin_nearbyintf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1152
@@ -809,6 +858,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1153
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1154
   nearbyint(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1155
   { return __builtin_nearbyintl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1156
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1157
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1158
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1159
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1160
@@ -816,6 +866,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1161
     nearbyint(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1162
     { return __builtin_nearbyint(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1163
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1164
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1165
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1166
   nextafter(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1167
   { return __builtin_nextafterf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1168
@@ -823,6 +874,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1169
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1170
   nextafter(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1171
   { return __builtin_nextafterl(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1172
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1173
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1174
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1175
     inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1176
@@ -832,6 +884,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1177
       return nextafter(__type(__x), __type(__y));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1178
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1179
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1180
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1181
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1182
   nexttoward(float __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1183
   { return __builtin_nexttowardf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1184
@@ -839,6 +892,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1185
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1186
   nexttoward(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1187
   { return __builtin_nexttowardl(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1188
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1189
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1190
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1191
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1192
@@ -846,6 +900,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1193
     nexttoward(_Tp __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1194
     { return __builtin_nexttoward(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1195
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1196
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1197
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1198
   remainder(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1199
   { return __builtin_remainderf(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1200
@@ -853,6 +908,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1201
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1202
   remainder(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1203
   { return __builtin_remainderl(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1204
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1205
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1206
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1207
     inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1208
@@ -862,6 +918,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1209
       return remainder(__type(__x), __type(__y));
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1210
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1211
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1212
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1213
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1214
   remquo(float __x, float __y, int* __pquo)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1215
   { return __builtin_remquof(__x, __y, __pquo); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1216
@@ -869,6 +926,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1217
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1218
   remquo(long double __x, long double __y, int* __pquo)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1219
   { return __builtin_remquol(__x, __y, __pquo); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1220
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1221
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1222
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1223
     inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1224
@@ -878,6 +936,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1225
       return remquo(__type(__x), __type(__y), __pquo);
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1226
     }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1227
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1228
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1229
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1230
   rint(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1231
   { return __builtin_rintf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1232
@@ -885,6 +944,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1233
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1234
   rint(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1235
   { return __builtin_rintl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1236
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1237
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1238
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1239
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1240
@@ -892,6 +952,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1241
     rint(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1242
     { return __builtin_rint(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1243
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1244
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1245
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1246
   round(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1247
   { return __builtin_roundf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1248
@@ -899,6 +960,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1249
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1250
   round(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1251
   { return __builtin_roundl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1252
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1253
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1254
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1255
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1256
@@ -906,6 +968,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1257
     round(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1258
     { return __builtin_round(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1259
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1260
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1261
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1262
   scalbln(float __x, long __ex)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1263
   { return __builtin_scalblnf(__x, __ex); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1264
@@ -913,6 +976,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1265
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1266
   scalbln(long double __x, long __ex)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1267
   { return __builtin_scalblnl(__x, __ex); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1268
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1269
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1270
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1271
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1272
@@ -920,6 +984,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1273
     scalbln(_Tp __x, long __ex)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1274
     { return __builtin_scalbln(__x, __ex); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1275
  
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1276
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1277
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1278
   scalbn(float __x, int __ex)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1279
   { return __builtin_scalbnf(__x, __ex); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1280
@@ -927,6 +992,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1281
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1282
   scalbn(long double __x, int __ex)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1283
   { return __builtin_scalbnl(__x, __ex); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1284
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1285
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1286
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1287
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1288
@@ -940,6 +1006,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1289
   using std::tan;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1290
   using std::tanh;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1291
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1292
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1293
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1294
   tgamma(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1295
   { return __builtin_tgammaf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1296
@@ -947,6 +1014,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1297
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1298
   tgamma(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1299
   { return __builtin_tgammal(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1300
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1301
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1302
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1303
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1304
@@ -954,6 +1022,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1305
     tgamma(_Tp __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1306
     { return __builtin_tgamma(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1307
  
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1308
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1309
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1310
   trunc(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1311
   { return __builtin_truncf(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1312
@@ -961,6 +1030,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1313
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1314
   trunc(long double __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1315
   { return __builtin_truncl(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1316
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1317
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1318
   template<typename _Tp>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1319
     inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1320
@@ -994,6 +1064,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1321
   // the discussion about this issue here:
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1322
   // http://gcc.gnu.org/ml/gcc-patches/2012-09/msg01278.html
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1323
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1324
+#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1325
   inline float
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1326
   pow(float __x, float __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1327
   { return std::pow(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1328
@@ -1001,6 +1072,7 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1329
   inline long double
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1330
   pow(long double __x, long double __y)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1331
   { return std::pow(__x, __y); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1332
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1333
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1334
   template<typename _Tp, typename _Up>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1335
     inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1336
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1337
diff -r -u libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1338
--- libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc	Thu Jan  2 14:30:10 2014
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1339
+++ libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc	Thu Dec 10 07:40:27 2015
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1340
@@ -20,9 +20,10 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1341
 // { dg-do compile }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1342
 // { dg-add-options no_pch }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1343
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1344
-// { dg-xfail-if "" { { *-*-linux* *-*-gnu* *-*-darwin* *-*-solaris2.1[0-9]* hppa*-*-hpux* *-*-mingw* } || { uclibc || newlib } } { "*" } { "" } }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1345
-// { dg-excess-errors "" { target { { *-*-linux* *-*-gnu* *-*-darwin* *-*-solaris2.1[0-9]* hppa*-*-hpux* *-*-mingw* } || { uclibc || newlib } } } }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1346
+// { dg-xfail-if "" { { *-*-linux* *-*-gnu* *-*-darwin* *-*-solaris2.1[01]* hppa*-*-hpux* *-*-mingw* *-*-aix* } || { uclibc || newlib } } { "*" } { "" } }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1347
+// { dg-excess-errors "" { target { { *-*-linux* *-*-gnu* *-*-darwin* *-*-solaris2.1[01]* hppa*-*-hpux* *-*-mingw* *-*-aix* } || { uclibc || newlib } } } }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1348
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1349
+
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1350
 #include <math.h>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1351
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1352
 void fpclassify() { }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1353
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1354
--- libstdc++-v3/include/bits/c++config  Thu Jan  2 14:30:10 2014
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1355
+++ libstdc++-v3/include/bits/c++config       Thu Dec 10 08:35:47 2015
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1356
@@ -456,6 +456,12 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1357
 # define _GLIBCXX_FAST_MATH 0
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1358
 #endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1359
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1360
+/* Define if all C++11 overloads are available in <math.h>.  */
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1361
+#if __cplusplus >= 201103L
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1362
+#define __CORRECT_ISO_CPP11_MATH_H_PROTO 1
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1363
+#endif
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1364
+
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1365
+
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1366
 // This marks string literals in header files to be extracted for eventual
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1367
 // translation.  It is primarily used for messages in thrown exceptions; see
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1368
 // src/functexcept.cc.  We use __N because the more traditional _N is used
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1369
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1370
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1371
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOWNERDEAD" >&5
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1372
 $as_echo_n "checking for EOWNERDEAD... " >&6; }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1373
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1374
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1375
#
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1376
# Since GCC is sensitive to which version of autoconf is used, we are
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1377
# also including a patch to configure here to avoid running autoconf.
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1378
# Perhaps we will make this work with the version of autoconf we are
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1379
# shipping in the future.
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1380
#
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1381
diff -r -u libstdc++-v3/configure libstdc++-v3/configure
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1382
--- libstdc++-v3/configure	Thu Jan 23 13:17:15 2014
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1383
+++ libstdc++-v3/configure		Thu Dec 10 08:19:59 2015
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1384
@@ -17486,8 +17486,65 @@
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1385
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1386
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1387
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1388
+  ac_ext=cpp
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1389
+ac_cpp='$CXXCPP $CPPFLAGS'
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1390
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1391
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1392
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1393
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1394
+  ac_save_CXXFLAGS="$CXXFLAGS"
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1395
+  CXXFLAGS="$CXXFLAGS -std=c++11"
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1396
 
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1397
+  case "$host" in
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1398
+    *-*-solaris2.*)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1399
+      # Solaris 12 introduced the C++11 <math.h> overloads.  A backport to
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1400
+      # a Solaris 11.3 SRU is likely, maybe even a Solaris 10 patch.
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1401
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++11 <math.h> overloads" >&5
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1402
+$as_echo_n "checking for C++11 <math.h> overloads... " >&6; }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1403
+      if ${glibcxx_cv_math11_overload+:} false; then :
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1404
+  $as_echo_n "(cached) " >&6
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1405
+else
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1406
+
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1407
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1408
+/* end confdefs.h.  */
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1409
+#include <math.h>
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1410
+           #undef isfinite
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1411
+           namespace std {
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1412
+             inline bool isfinite(float __x)
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1413
+             { return __builtin_isfinite(__x); }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1414
+           }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1415
+
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1416
+_ACEOF
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1417
+if ac_fn_cxx_try_compile "$LINENO"; then :
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1418
+  glibcxx_cv_math11_overload=no
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1419
+else
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1420
+  glibcxx_cv_math11_overload=yes
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1421
+
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1422
+fi
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1423
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1424
+fi
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1425
+
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1426
+
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1427
+      # autoheader cannot handle indented templates.
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1428
+
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1429
+
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1430
+      if test $glibcxx_cv_math11_overload = yes; then
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1431
+        $as_echo "#define __CORRECT_ISO_CPP11_MATH_H_PROTO 1" >>confdefs.h
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1432
+
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1433
+      fi
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1434
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_math11_overload" >&5
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1435
+$as_echo "$glibcxx_cv_math11_overload" >&6; }
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1436
+      ;;
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1437
+  esac
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1438
+
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1439
+  CXXFLAGS="$ac_save_CXXFLAGS"
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1440
+  ac_ext=c
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1441
+ac_cpp='$CPP $CPPFLAGS'
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1442
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1443
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1444
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1445
+
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1446
+
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1447
eaff9ab86216 21637184 integrate GCC 4.9.3 in Solaris
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1448