mirror of git://gcc.gnu.org/git/gcc.git
Handle C++11 <math.h> overloads on Solaris 12
* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): New test. * configure.ac: Use it. * configure: Regenerate. * config.h.in: Regenerate. * include/c_global/cmath [__cplusplus >= 201103L] (std::fpclassify): Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO. (std::isfinite): Likewise. (std::isinf): Likewise. (std::isnan): Likewise. (std::isnormal): Likewise. (std::signbit): Likewise. (std::isgreater): Likewise. (std::isgreaterequal): Likewise. (std::isless): Likewise. (std::islessequal): Likewise. (std::islessgreater): Likewise. (std::isunordered): Likewise. (std::acosh): Likewise. (std::asinh): Likewise. (std::atanh): Likewise. (std::cbrt): Likewise. (std::copysign): Likewise. (std::erf): Likewise. (std::erfc): Likewise. (std::exp2): Likewise. (std::expm1): Likewise. (std::fdim): Likewise. (std::fma): Likewise. (std::fmax): Likewise. (std::fmin): Likewise. (std::hypot): Likewise. (std::ilogb): Likewise. (std::lgamma): Likewise. (std::llrint): Likewise. (std::llround): Likewise. (std::log1p): Likewise. (std::log2): Likewise. (std::logb): Likewise. (std::lrint): Likewise. (std::lround): Likewise. (std::nearbyint): Likewise. (std::nextafter): Likewise. (std::nexttoward): Likewise. (std::remainder): Likewise. (std::remquo): Likewise. (std::rint): Likewise. (std::round): Likewise. (std::scalbln): Likewise. (std::scalbn): Likewise. (std::tgamma): Likewise. (std::trunc): Likewise. * include/tr1/cmath [_GLIBCXX_USE_C99_MATH_TR1] (std::tr1::acosh): Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO. (std::tr1::asinh): Likewise. (std::tr1::atanh): Likewise. (std::tr1::cbrt): Likewise. (std::tr1::copysign): Likewise. (std::tr1::erf): Likewise. (std::tr1::erfc): Likewise. (std::tr1::exp2): Likewise. (std::tr1::expm1): Likewise. (std::tr1::fabs): Likewise. (std::tr1::fdim): Likewise. (std::tr1::fma): Likewise. (std::tr1::fmax): Likewise. (std::tr1::fmin): Likewise. (std::tr1::hypot): Likewise. (std::tr1::ilogb): Likewise. (std::tr1::lgamma): Likewise. (std::tr1::llrint): Likewise. (std::tr1::llround): Likewise. (std::tr1::log1p): Likewise. (std::tr1::log2): Likewise. (std::tr1::logb): Likewise. (std::tr1::lrint): Likewise. (std::tr1::lround): Likewise. (std::tr1::nearbyint): Likewise. (std::tr1::nextafter): Likewise. (std::tr1::nexttoward): Likewise. (std::tr1::remainder): Likewise. (std::tr1::remquo): Likewise. (std::tr1::rint): Likewise. (std::tr1::scalbln): Likewise. (std::tr1::scalbn): Likewise. (std::tr1::tgamma): Likewise. (std::tr1::trunc): Likewise. (std::tr1::pow): Likewise. * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc: Restrict dg-xfail-if to *-*-solaris2.1[01]*. From-SVN: r230808
This commit is contained in:
parent
43648352b5
commit
48575eb9bf
|
|
@ -1,3 +1,97 @@
|
||||||
|
2015-11-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||||
|
|
||||||
|
* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): New test.
|
||||||
|
* configure.ac: Use it.
|
||||||
|
* configure: Regenerate.
|
||||||
|
* config.h.in: Regenerate.
|
||||||
|
|
||||||
|
* include/c_global/cmath [__cplusplus >= 201103L]
|
||||||
|
(std::fpclassify): Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO.
|
||||||
|
(std::isfinite): Likewise.
|
||||||
|
(std::isinf): Likewise.
|
||||||
|
(std::isnan): Likewise.
|
||||||
|
(std::isnormal): Likewise.
|
||||||
|
(std::signbit): Likewise.
|
||||||
|
(std::isgreater): Likewise.
|
||||||
|
(std::isgreaterequal): Likewise.
|
||||||
|
(std::isless): Likewise.
|
||||||
|
(std::islessequal): Likewise.
|
||||||
|
(std::islessgreater): Likewise.
|
||||||
|
(std::isunordered): Likewise.
|
||||||
|
(std::acosh): Likewise.
|
||||||
|
(std::asinh): Likewise.
|
||||||
|
(std::atanh): Likewise.
|
||||||
|
(std::cbrt): Likewise.
|
||||||
|
(std::copysign): Likewise.
|
||||||
|
(std::erf): Likewise.
|
||||||
|
(std::erfc): Likewise.
|
||||||
|
(std::exp2): Likewise.
|
||||||
|
(std::expm1): Likewise.
|
||||||
|
(std::fdim): Likewise.
|
||||||
|
(std::fma): Likewise.
|
||||||
|
(std::fmax): Likewise.
|
||||||
|
(std::fmin): Likewise.
|
||||||
|
(std::hypot): Likewise.
|
||||||
|
(std::ilogb): Likewise.
|
||||||
|
(std::lgamma): Likewise.
|
||||||
|
(std::llrint): Likewise.
|
||||||
|
(std::llround): Likewise.
|
||||||
|
(std::log1p): Likewise.
|
||||||
|
(std::log2): Likewise.
|
||||||
|
(std::logb): Likewise.
|
||||||
|
(std::lrint): Likewise.
|
||||||
|
(std::lround): Likewise.
|
||||||
|
(std::nearbyint): Likewise.
|
||||||
|
(std::nextafter): Likewise.
|
||||||
|
(std::nexttoward): Likewise.
|
||||||
|
(std::remainder): Likewise.
|
||||||
|
(std::remquo): Likewise.
|
||||||
|
(std::rint): Likewise.
|
||||||
|
(std::round): Likewise.
|
||||||
|
(std::scalbln): Likewise.
|
||||||
|
(std::scalbn): Likewise.
|
||||||
|
(std::tgamma): Likewise.
|
||||||
|
(std::trunc): Likewise.
|
||||||
|
* include/tr1/cmath [_GLIBCXX_USE_C99_MATH_TR1] (std::tr1::acosh):
|
||||||
|
Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO.
|
||||||
|
(std::tr1::asinh): Likewise.
|
||||||
|
(std::tr1::atanh): Likewise.
|
||||||
|
(std::tr1::cbrt): Likewise.
|
||||||
|
(std::tr1::copysign): Likewise.
|
||||||
|
(std::tr1::erf): Likewise.
|
||||||
|
(std::tr1::erfc): Likewise.
|
||||||
|
(std::tr1::exp2): Likewise.
|
||||||
|
(std::tr1::expm1): Likewise.
|
||||||
|
(std::tr1::fabs): Likewise.
|
||||||
|
(std::tr1::fdim): Likewise.
|
||||||
|
(std::tr1::fma): Likewise.
|
||||||
|
(std::tr1::fmax): Likewise.
|
||||||
|
(std::tr1::fmin): Likewise.
|
||||||
|
(std::tr1::hypot): Likewise.
|
||||||
|
(std::tr1::ilogb): Likewise.
|
||||||
|
(std::tr1::lgamma): Likewise.
|
||||||
|
(std::tr1::llrint): Likewise.
|
||||||
|
(std::tr1::llround): Likewise.
|
||||||
|
(std::tr1::log1p): Likewise.
|
||||||
|
(std::tr1::log2): Likewise.
|
||||||
|
(std::tr1::logb): Likewise.
|
||||||
|
(std::tr1::lrint): Likewise.
|
||||||
|
(std::tr1::lround): Likewise.
|
||||||
|
(std::tr1::nearbyint): Likewise.
|
||||||
|
(std::tr1::nextafter): Likewise.
|
||||||
|
(std::tr1::nexttoward): Likewise.
|
||||||
|
(std::tr1::remainder): Likewise.
|
||||||
|
(std::tr1::remquo): Likewise.
|
||||||
|
(std::tr1::rint): Likewise.
|
||||||
|
(std::tr1::scalbln): Likewise.
|
||||||
|
(std::tr1::scalbn): Likewise.
|
||||||
|
(std::tr1::tgamma): Likewise.
|
||||||
|
(std::tr1::trunc): Likewise.
|
||||||
|
(std::tr1::pow): Likewise.
|
||||||
|
|
||||||
|
* testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
|
||||||
|
Restrict dg-xfail-if to *-*-solaris2.1[01]*.
|
||||||
|
|
||||||
2015-11-20 Jan Kratochvil <jan.kratochvil@redhat.com>
|
2015-11-20 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
PR libstdc++/68448
|
PR libstdc++/68448
|
||||||
|
|
|
||||||
|
|
@ -1896,6 +1896,52 @@ AC_DEFUN([GLIBCXX_CHECK_STDIO_PROTO], [
|
||||||
AC_LANG_RESTORE
|
AC_LANG_RESTORE
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Check whether required C++11 overloads are present in <math.h>.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([GLIBCXX_CHECK_MATH11_PROTO], [
|
||||||
|
|
||||||
|
AC_LANG_SAVE
|
||||||
|
AC_LANG_CPLUSPLUS
|
||||||
|
ac_save_CXXFLAGS="$CXXFLAGS"
|
||||||
|
CXXFLAGS="$CXXFLAGS -std=c++11"
|
||||||
|
|
||||||
|
case "$host" in
|
||||||
|
*-*-solaris2.*)
|
||||||
|
# Solaris 12 introduced the C++11 <math.h> overloads. A backport to
|
||||||
|
# a Solaris 11.3 SRU is likely, maybe even a Solaris 10 patch.
|
||||||
|
AC_MSG_CHECKING([for C++11 <math.h> overloads])
|
||||||
|
AC_CACHE_VAL(glibcxx_cv_math11_overload, [
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE(
|
||||||
|
[#include <math.h>
|
||||||
|
#undef isfinite
|
||||||
|
namespace std {
|
||||||
|
inline bool isfinite(float __x)
|
||||||
|
{ return __builtin_isfinite(__x); }
|
||||||
|
}
|
||||||
|
])],
|
||||||
|
[glibcxx_cv_math11_overload=no],
|
||||||
|
[glibcxx_cv_math11_overload=yes]
|
||||||
|
)])
|
||||||
|
|
||||||
|
# autoheader cannot handle indented templates.
|
||||||
|
AH_VERBATIM([__CORRECT_ISO_CPP11_MATH_H_PROTO],
|
||||||
|
[/* Define if all C++11 overloads are available in <math.h>. */
|
||||||
|
#if __cplusplus >= 201103L
|
||||||
|
#undef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
|
#endif])
|
||||||
|
|
||||||
|
if test $glibcxx_cv_math11_overload = yes; then
|
||||||
|
AC_DEFINE(__CORRECT_ISO_CPP11_MATH_H_PROTO)
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT([$glibcxx_cv_math11_overload])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||||
|
AC_LANG_RESTORE
|
||||||
|
])
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
dnl Check whether macros, etc are present for <system_error>
|
dnl Check whether macros, etc are present for <system_error>
|
||||||
dnl
|
dnl
|
||||||
|
|
|
||||||
|
|
@ -919,6 +919,11 @@
|
||||||
/* Define to 1 if mutex_timedlock is available. */
|
/* Define to 1 if mutex_timedlock is available. */
|
||||||
#undef _GTHREAD_USE_MUTEX_TIMEDLOCK
|
#undef _GTHREAD_USE_MUTEX_TIMEDLOCK
|
||||||
|
|
||||||
|
/* Define if all C++11 overloads are available in <math.h>. */
|
||||||
|
#if __cplusplus >= 201103L
|
||||||
|
#undef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined (HAVE__ACOSF) && ! defined (HAVE_ACOSF)
|
#if defined (HAVE__ACOSF) && ! defined (HAVE_ACOSF)
|
||||||
# define HAVE_ACOSF 1
|
# define HAVE_ACOSF 1
|
||||||
# define acosf _acosf
|
# define acosf _acosf
|
||||||
|
|
|
||||||
|
|
@ -17604,6 +17604,68 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ac_ext=cpp
|
||||||
|
ac_cpp='$CXXCPP $CPPFLAGS'
|
||||||
|
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||||
|
|
||||||
|
ac_save_CXXFLAGS="$CXXFLAGS"
|
||||||
|
CXXFLAGS="$CXXFLAGS -std=c++11"
|
||||||
|
|
||||||
|
case "$host" in
|
||||||
|
*-*-solaris2.*)
|
||||||
|
# Solaris 12 introduced the C++11 <math.h> overloads. A backport to
|
||||||
|
# a Solaris 11.3 SRU is likely, maybe even a Solaris 10 patch.
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++11 <math.h> overloads" >&5
|
||||||
|
$as_echo_n "checking for C++11 <math.h> overloads... " >&6; }
|
||||||
|
if test "${glibcxx_cv_math11_overload+set}" = set; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <math.h>
|
||||||
|
#undef isfinite
|
||||||
|
namespace std {
|
||||||
|
inline bool isfinite(float __x)
|
||||||
|
{ return __builtin_isfinite(__x); }
|
||||||
|
}
|
||||||
|
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_cxx_try_compile "$LINENO"; then :
|
||||||
|
glibcxx_cv_math11_overload=no
|
||||||
|
else
|
||||||
|
glibcxx_cv_math11_overload=yes
|
||||||
|
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# autoheader cannot handle indented templates.
|
||||||
|
|
||||||
|
|
||||||
|
if test $glibcxx_cv_math11_overload = yes; then
|
||||||
|
$as_echo "#define __CORRECT_ISO_CPP11_MATH_H_PROTO 1" >>confdefs.h
|
||||||
|
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_math11_overload" >&5
|
||||||
|
$as_echo "$glibcxx_cv_math11_overload" >&6; }
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||||
|
ac_ext=c
|
||||||
|
ac_cpp='$CPP $CPPFLAGS'
|
||||||
|
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOWNERDEAD" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOWNERDEAD" >&5
|
||||||
$as_echo_n "checking for EOWNERDEAD... " >&6; }
|
$as_echo_n "checking for EOWNERDEAD... " >&6; }
|
||||||
if test "${glibcxx_cv_system_error1+set}" = set; then :
|
if test "${glibcxx_cv_system_error1+set}" = set; then :
|
||||||
|
|
|
||||||
|
|
@ -181,6 +181,7 @@ GLIBCXX_ENABLE_VTABLE_VERIFY([no])
|
||||||
|
|
||||||
# Checks for operating systems support that doesn't require linking.
|
# Checks for operating systems support that doesn't require linking.
|
||||||
GLIBCXX_CHECK_STDIO_PROTO
|
GLIBCXX_CHECK_STDIO_PROTO
|
||||||
|
GLIBCXX_CHECK_MATH11_PROTO
|
||||||
GLIBCXX_CHECK_SYSTEM_ERROR
|
GLIBCXX_CHECK_SYSTEM_ERROR
|
||||||
|
|
||||||
# For the streamoff typedef.
|
# For the streamoff typedef.
|
||||||
|
|
|
||||||
|
|
@ -557,6 +557,8 @@ namespace std _GLIBCXX_VISIBILITY(default)
|
||||||
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
#if __cplusplus >= 201103L
|
#if __cplusplus >= 201103L
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr int
|
constexpr int
|
||||||
fpclassify(float __x)
|
fpclassify(float __x)
|
||||||
{ return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL,
|
{ return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL,
|
||||||
|
|
@ -571,6 +573,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
fpclassify(long double __x)
|
fpclassify(long double __x)
|
||||||
{ return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL,
|
{ return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL,
|
||||||
FP_SUBNORMAL, FP_ZERO, __x); }
|
FP_SUBNORMAL, FP_ZERO, __x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -578,6 +581,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
fpclassify(_Tp __x)
|
fpclassify(_Tp __x)
|
||||||
{ return __x != 0 ? FP_NORMAL : FP_ZERO; }
|
{ return __x != 0 ? FP_NORMAL : FP_ZERO; }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isfinite(float __x)
|
isfinite(float __x)
|
||||||
{ return __builtin_isfinite(__x); }
|
{ return __builtin_isfinite(__x); }
|
||||||
|
|
@ -589,6 +593,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isfinite(long double __x)
|
isfinite(long double __x)
|
||||||
{ return __builtin_isfinite(__x); }
|
{ return __builtin_isfinite(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -596,6 +601,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
isfinite(_Tp __x)
|
isfinite(_Tp __x)
|
||||||
{ return true; }
|
{ return true; }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isinf(float __x)
|
isinf(float __x)
|
||||||
{ return __builtin_isinf(__x); }
|
{ return __builtin_isinf(__x); }
|
||||||
|
|
@ -607,6 +613,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isinf(long double __x)
|
isinf(long double __x)
|
||||||
{ return __builtin_isinf(__x); }
|
{ return __builtin_isinf(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -614,6 +621,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
isinf(_Tp __x)
|
isinf(_Tp __x)
|
||||||
{ return false; }
|
{ return false; }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isnan(float __x)
|
isnan(float __x)
|
||||||
{ return __builtin_isnan(__x); }
|
{ return __builtin_isnan(__x); }
|
||||||
|
|
@ -625,6 +633,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isnan(long double __x)
|
isnan(long double __x)
|
||||||
{ return __builtin_isnan(__x); }
|
{ return __builtin_isnan(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -632,6 +641,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
isnan(_Tp __x)
|
isnan(_Tp __x)
|
||||||
{ return false; }
|
{ return false; }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isnormal(float __x)
|
isnormal(float __x)
|
||||||
{ return __builtin_isnormal(__x); }
|
{ return __builtin_isnormal(__x); }
|
||||||
|
|
@ -643,6 +653,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isnormal(long double __x)
|
isnormal(long double __x)
|
||||||
{ return __builtin_isnormal(__x); }
|
{ return __builtin_isnormal(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -650,6 +661,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
isnormal(_Tp __x)
|
isnormal(_Tp __x)
|
||||||
{ return __x != 0 ? true : false; }
|
{ return __x != 0 ? true : false; }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
// The front-end doesn't provide a type generic builtin (libstdc++/58625).
|
// The front-end doesn't provide a type generic builtin (libstdc++/58625).
|
||||||
constexpr bool
|
constexpr bool
|
||||||
signbit(float __x)
|
signbit(float __x)
|
||||||
|
|
@ -662,6 +674,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr bool
|
constexpr bool
|
||||||
signbit(long double __x)
|
signbit(long double __x)
|
||||||
{ return __builtin_signbitl(__x); }
|
{ return __builtin_signbitl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -669,6 +682,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
signbit(_Tp __x)
|
signbit(_Tp __x)
|
||||||
{ return __x < 0 ? true : false; }
|
{ return __x < 0 ? true : false; }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isgreater(float __x, float __y)
|
isgreater(float __x, float __y)
|
||||||
{ return __builtin_isgreater(__x, __y); }
|
{ return __builtin_isgreater(__x, __y); }
|
||||||
|
|
@ -680,6 +694,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isgreater(long double __x, long double __y)
|
isgreater(long double __x, long double __y)
|
||||||
{ return __builtin_isgreater(__x, __y); }
|
{ return __builtin_isgreater(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
constexpr typename
|
constexpr typename
|
||||||
|
|
@ -691,6 +706,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return __builtin_isgreater(__type(__x), __type(__y));
|
return __builtin_isgreater(__type(__x), __type(__y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isgreaterequal(float __x, float __y)
|
isgreaterequal(float __x, float __y)
|
||||||
{ return __builtin_isgreaterequal(__x, __y); }
|
{ return __builtin_isgreaterequal(__x, __y); }
|
||||||
|
|
@ -702,6 +718,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isgreaterequal(long double __x, long double __y)
|
isgreaterequal(long double __x, long double __y)
|
||||||
{ return __builtin_isgreaterequal(__x, __y); }
|
{ return __builtin_isgreaterequal(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
constexpr typename
|
constexpr typename
|
||||||
|
|
@ -713,6 +730,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return __builtin_isgreaterequal(__type(__x), __type(__y));
|
return __builtin_isgreaterequal(__type(__x), __type(__y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isless(float __x, float __y)
|
isless(float __x, float __y)
|
||||||
{ return __builtin_isless(__x, __y); }
|
{ return __builtin_isless(__x, __y); }
|
||||||
|
|
@ -724,6 +742,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isless(long double __x, long double __y)
|
isless(long double __x, long double __y)
|
||||||
{ return __builtin_isless(__x, __y); }
|
{ return __builtin_isless(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
constexpr typename
|
constexpr typename
|
||||||
|
|
@ -735,6 +754,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return __builtin_isless(__type(__x), __type(__y));
|
return __builtin_isless(__type(__x), __type(__y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr bool
|
constexpr bool
|
||||||
islessequal(float __x, float __y)
|
islessequal(float __x, float __y)
|
||||||
{ return __builtin_islessequal(__x, __y); }
|
{ return __builtin_islessequal(__x, __y); }
|
||||||
|
|
@ -746,6 +766,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr bool
|
constexpr bool
|
||||||
islessequal(long double __x, long double __y)
|
islessequal(long double __x, long double __y)
|
||||||
{ return __builtin_islessequal(__x, __y); }
|
{ return __builtin_islessequal(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
constexpr typename
|
constexpr typename
|
||||||
|
|
@ -757,6 +778,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return __builtin_islessequal(__type(__x), __type(__y));
|
return __builtin_islessequal(__type(__x), __type(__y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr bool
|
constexpr bool
|
||||||
islessgreater(float __x, float __y)
|
islessgreater(float __x, float __y)
|
||||||
{ return __builtin_islessgreater(__x, __y); }
|
{ return __builtin_islessgreater(__x, __y); }
|
||||||
|
|
@ -768,6 +790,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr bool
|
constexpr bool
|
||||||
islessgreater(long double __x, long double __y)
|
islessgreater(long double __x, long double __y)
|
||||||
{ return __builtin_islessgreater(__x, __y); }
|
{ return __builtin_islessgreater(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
constexpr typename
|
constexpr typename
|
||||||
|
|
@ -779,6 +802,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return __builtin_islessgreater(__type(__x), __type(__y));
|
return __builtin_islessgreater(__type(__x), __type(__y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isunordered(float __x, float __y)
|
isunordered(float __x, float __y)
|
||||||
{ return __builtin_isunordered(__x, __y); }
|
{ return __builtin_isunordered(__x, __y); }
|
||||||
|
|
@ -790,6 +814,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr bool
|
constexpr bool
|
||||||
isunordered(long double __x, long double __y)
|
isunordered(long double __x, long double __y)
|
||||||
{ return __builtin_isunordered(__x, __y); }
|
{ return __builtin_isunordered(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
constexpr typename
|
constexpr typename
|
||||||
|
|
@ -1180,6 +1205,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
using ::truncl;
|
using ::truncl;
|
||||||
|
|
||||||
/// Additional overloads.
|
/// Additional overloads.
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
acosh(float __x)
|
acosh(float __x)
|
||||||
{ return __builtin_acoshf(__x); }
|
{ return __builtin_acoshf(__x); }
|
||||||
|
|
@ -1187,6 +1213,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
acosh(long double __x)
|
acosh(long double __x)
|
||||||
{ return __builtin_acoshl(__x); }
|
{ return __builtin_acoshl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1194,6 +1221,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
acosh(_Tp __x)
|
acosh(_Tp __x)
|
||||||
{ return __builtin_acosh(__x); }
|
{ return __builtin_acosh(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
asinh(float __x)
|
asinh(float __x)
|
||||||
{ return __builtin_asinhf(__x); }
|
{ return __builtin_asinhf(__x); }
|
||||||
|
|
@ -1201,6 +1229,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
asinh(long double __x)
|
asinh(long double __x)
|
||||||
{ return __builtin_asinhl(__x); }
|
{ return __builtin_asinhl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1208,6 +1237,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
asinh(_Tp __x)
|
asinh(_Tp __x)
|
||||||
{ return __builtin_asinh(__x); }
|
{ return __builtin_asinh(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
atanh(float __x)
|
atanh(float __x)
|
||||||
{ return __builtin_atanhf(__x); }
|
{ return __builtin_atanhf(__x); }
|
||||||
|
|
@ -1215,6 +1245,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
atanh(long double __x)
|
atanh(long double __x)
|
||||||
{ return __builtin_atanhl(__x); }
|
{ return __builtin_atanhl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1222,6 +1253,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
atanh(_Tp __x)
|
atanh(_Tp __x)
|
||||||
{ return __builtin_atanh(__x); }
|
{ return __builtin_atanh(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
cbrt(float __x)
|
cbrt(float __x)
|
||||||
{ return __builtin_cbrtf(__x); }
|
{ return __builtin_cbrtf(__x); }
|
||||||
|
|
@ -1229,6 +1261,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
cbrt(long double __x)
|
cbrt(long double __x)
|
||||||
{ return __builtin_cbrtl(__x); }
|
{ return __builtin_cbrtl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1236,6 +1269,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
cbrt(_Tp __x)
|
cbrt(_Tp __x)
|
||||||
{ return __builtin_cbrt(__x); }
|
{ return __builtin_cbrt(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
copysign(float __x, float __y)
|
copysign(float __x, float __y)
|
||||||
{ return __builtin_copysignf(__x, __y); }
|
{ return __builtin_copysignf(__x, __y); }
|
||||||
|
|
@ -1243,6 +1277,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
copysign(long double __x, long double __y)
|
copysign(long double __x, long double __y)
|
||||||
{ return __builtin_copysignl(__x, __y); }
|
{ return __builtin_copysignl(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -1252,6 +1287,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return copysign(__type(__x), __type(__y));
|
return copysign(__type(__x), __type(__y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
erf(float __x)
|
erf(float __x)
|
||||||
{ return __builtin_erff(__x); }
|
{ return __builtin_erff(__x); }
|
||||||
|
|
@ -1259,6 +1295,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
erf(long double __x)
|
erf(long double __x)
|
||||||
{ return __builtin_erfl(__x); }
|
{ return __builtin_erfl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1266,6 +1303,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
erf(_Tp __x)
|
erf(_Tp __x)
|
||||||
{ return __builtin_erf(__x); }
|
{ return __builtin_erf(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
erfc(float __x)
|
erfc(float __x)
|
||||||
{ return __builtin_erfcf(__x); }
|
{ return __builtin_erfcf(__x); }
|
||||||
|
|
@ -1273,6 +1311,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
erfc(long double __x)
|
erfc(long double __x)
|
||||||
{ return __builtin_erfcl(__x); }
|
{ return __builtin_erfcl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1280,6 +1319,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
erfc(_Tp __x)
|
erfc(_Tp __x)
|
||||||
{ return __builtin_erfc(__x); }
|
{ return __builtin_erfc(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
exp2(float __x)
|
exp2(float __x)
|
||||||
{ return __builtin_exp2f(__x); }
|
{ return __builtin_exp2f(__x); }
|
||||||
|
|
@ -1287,6 +1327,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
exp2(long double __x)
|
exp2(long double __x)
|
||||||
{ return __builtin_exp2l(__x); }
|
{ return __builtin_exp2l(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1294,6 +1335,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
exp2(_Tp __x)
|
exp2(_Tp __x)
|
||||||
{ return __builtin_exp2(__x); }
|
{ return __builtin_exp2(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
expm1(float __x)
|
expm1(float __x)
|
||||||
{ return __builtin_expm1f(__x); }
|
{ return __builtin_expm1f(__x); }
|
||||||
|
|
@ -1301,6 +1343,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
expm1(long double __x)
|
expm1(long double __x)
|
||||||
{ return __builtin_expm1l(__x); }
|
{ return __builtin_expm1l(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1308,6 +1351,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
expm1(_Tp __x)
|
expm1(_Tp __x)
|
||||||
{ return __builtin_expm1(__x); }
|
{ return __builtin_expm1(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
fdim(float __x, float __y)
|
fdim(float __x, float __y)
|
||||||
{ return __builtin_fdimf(__x, __y); }
|
{ return __builtin_fdimf(__x, __y); }
|
||||||
|
|
@ -1315,6 +1359,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
fdim(long double __x, long double __y)
|
fdim(long double __x, long double __y)
|
||||||
{ return __builtin_fdiml(__x, __y); }
|
{ return __builtin_fdiml(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -1324,6 +1369,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return fdim(__type(__x), __type(__y));
|
return fdim(__type(__x), __type(__y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
fma(float __x, float __y, float __z)
|
fma(float __x, float __y, float __z)
|
||||||
{ return __builtin_fmaf(__x, __y, __z); }
|
{ return __builtin_fmaf(__x, __y, __z); }
|
||||||
|
|
@ -1331,6 +1377,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
fma(long double __x, long double __y, long double __z)
|
fma(long double __x, long double __y, long double __z)
|
||||||
{ return __builtin_fmal(__x, __y, __z); }
|
{ return __builtin_fmal(__x, __y, __z); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up, typename _Vp>
|
template<typename _Tp, typename _Up, typename _Vp>
|
||||||
constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type
|
constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type
|
||||||
|
|
@ -1340,6 +1387,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return fma(__type(__x), __type(__y), __type(__z));
|
return fma(__type(__x), __type(__y), __type(__z));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
fmax(float __x, float __y)
|
fmax(float __x, float __y)
|
||||||
{ return __builtin_fmaxf(__x, __y); }
|
{ return __builtin_fmaxf(__x, __y); }
|
||||||
|
|
@ -1347,6 +1395,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
fmax(long double __x, long double __y)
|
fmax(long double __x, long double __y)
|
||||||
{ return __builtin_fmaxl(__x, __y); }
|
{ return __builtin_fmaxl(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -1356,6 +1405,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return fmax(__type(__x), __type(__y));
|
return fmax(__type(__x), __type(__y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
fmin(float __x, float __y)
|
fmin(float __x, float __y)
|
||||||
{ return __builtin_fminf(__x, __y); }
|
{ return __builtin_fminf(__x, __y); }
|
||||||
|
|
@ -1363,6 +1413,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
fmin(long double __x, long double __y)
|
fmin(long double __x, long double __y)
|
||||||
{ return __builtin_fminl(__x, __y); }
|
{ return __builtin_fminl(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -1372,6 +1423,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return fmin(__type(__x), __type(__y));
|
return fmin(__type(__x), __type(__y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
hypot(float __x, float __y)
|
hypot(float __x, float __y)
|
||||||
{ return __builtin_hypotf(__x, __y); }
|
{ return __builtin_hypotf(__x, __y); }
|
||||||
|
|
@ -1379,6 +1431,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
hypot(long double __x, long double __y)
|
hypot(long double __x, long double __y)
|
||||||
{ return __builtin_hypotl(__x, __y); }
|
{ return __builtin_hypotl(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -1388,6 +1441,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return hypot(__type(__x), __type(__y));
|
return hypot(__type(__x), __type(__y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr int
|
constexpr int
|
||||||
ilogb(float __x)
|
ilogb(float __x)
|
||||||
{ return __builtin_ilogbf(__x); }
|
{ return __builtin_ilogbf(__x); }
|
||||||
|
|
@ -1395,6 +1449,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr int
|
constexpr int
|
||||||
ilogb(long double __x)
|
ilogb(long double __x)
|
||||||
{ return __builtin_ilogbl(__x); }
|
{ return __builtin_ilogbl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr
|
constexpr
|
||||||
|
|
@ -1403,6 +1458,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
ilogb(_Tp __x)
|
ilogb(_Tp __x)
|
||||||
{ return __builtin_ilogb(__x); }
|
{ return __builtin_ilogb(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
lgamma(float __x)
|
lgamma(float __x)
|
||||||
{ return __builtin_lgammaf(__x); }
|
{ return __builtin_lgammaf(__x); }
|
||||||
|
|
@ -1410,6 +1466,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
lgamma(long double __x)
|
lgamma(long double __x)
|
||||||
{ return __builtin_lgammal(__x); }
|
{ return __builtin_lgammal(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1417,6 +1474,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
lgamma(_Tp __x)
|
lgamma(_Tp __x)
|
||||||
{ return __builtin_lgamma(__x); }
|
{ return __builtin_lgamma(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr long long
|
constexpr long long
|
||||||
llrint(float __x)
|
llrint(float __x)
|
||||||
{ return __builtin_llrintf(__x); }
|
{ return __builtin_llrintf(__x); }
|
||||||
|
|
@ -1424,6 +1482,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long long
|
constexpr long long
|
||||||
llrint(long double __x)
|
llrint(long double __x)
|
||||||
{ return __builtin_llrintl(__x); }
|
{ return __builtin_llrintl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1431,6 +1490,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
llrint(_Tp __x)
|
llrint(_Tp __x)
|
||||||
{ return __builtin_llrint(__x); }
|
{ return __builtin_llrint(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr long long
|
constexpr long long
|
||||||
llround(float __x)
|
llround(float __x)
|
||||||
{ return __builtin_llroundf(__x); }
|
{ return __builtin_llroundf(__x); }
|
||||||
|
|
@ -1438,6 +1498,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long long
|
constexpr long long
|
||||||
llround(long double __x)
|
llround(long double __x)
|
||||||
{ return __builtin_llroundl(__x); }
|
{ return __builtin_llroundl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1445,6 +1506,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
llround(_Tp __x)
|
llround(_Tp __x)
|
||||||
{ return __builtin_llround(__x); }
|
{ return __builtin_llround(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
log1p(float __x)
|
log1p(float __x)
|
||||||
{ return __builtin_log1pf(__x); }
|
{ return __builtin_log1pf(__x); }
|
||||||
|
|
@ -1452,6 +1514,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
log1p(long double __x)
|
log1p(long double __x)
|
||||||
{ return __builtin_log1pl(__x); }
|
{ return __builtin_log1pl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1459,6 +1522,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
log1p(_Tp __x)
|
log1p(_Tp __x)
|
||||||
{ return __builtin_log1p(__x); }
|
{ return __builtin_log1p(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
// DR 568.
|
// DR 568.
|
||||||
constexpr float
|
constexpr float
|
||||||
log2(float __x)
|
log2(float __x)
|
||||||
|
|
@ -1467,6 +1531,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
log2(long double __x)
|
log2(long double __x)
|
||||||
{ return __builtin_log2l(__x); }
|
{ return __builtin_log2l(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1474,6 +1539,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
log2(_Tp __x)
|
log2(_Tp __x)
|
||||||
{ return __builtin_log2(__x); }
|
{ return __builtin_log2(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
logb(float __x)
|
logb(float __x)
|
||||||
{ return __builtin_logbf(__x); }
|
{ return __builtin_logbf(__x); }
|
||||||
|
|
@ -1481,6 +1547,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
logb(long double __x)
|
logb(long double __x)
|
||||||
{ return __builtin_logbl(__x); }
|
{ return __builtin_logbl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1488,6 +1555,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
logb(_Tp __x)
|
logb(_Tp __x)
|
||||||
{ return __builtin_logb(__x); }
|
{ return __builtin_logb(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr long
|
constexpr long
|
||||||
lrint(float __x)
|
lrint(float __x)
|
||||||
{ return __builtin_lrintf(__x); }
|
{ return __builtin_lrintf(__x); }
|
||||||
|
|
@ -1495,6 +1563,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long
|
constexpr long
|
||||||
lrint(long double __x)
|
lrint(long double __x)
|
||||||
{ return __builtin_lrintl(__x); }
|
{ return __builtin_lrintl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1502,6 +1571,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
lrint(_Tp __x)
|
lrint(_Tp __x)
|
||||||
{ return __builtin_lrint(__x); }
|
{ return __builtin_lrint(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr long
|
constexpr long
|
||||||
lround(float __x)
|
lround(float __x)
|
||||||
{ return __builtin_lroundf(__x); }
|
{ return __builtin_lroundf(__x); }
|
||||||
|
|
@ -1509,6 +1579,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long
|
constexpr long
|
||||||
lround(long double __x)
|
lround(long double __x)
|
||||||
{ return __builtin_lroundl(__x); }
|
{ return __builtin_lroundl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1516,6 +1587,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
lround(_Tp __x)
|
lround(_Tp __x)
|
||||||
{ return __builtin_lround(__x); }
|
{ return __builtin_lround(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
nearbyint(float __x)
|
nearbyint(float __x)
|
||||||
{ return __builtin_nearbyintf(__x); }
|
{ return __builtin_nearbyintf(__x); }
|
||||||
|
|
@ -1523,6 +1595,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
nearbyint(long double __x)
|
nearbyint(long double __x)
|
||||||
{ return __builtin_nearbyintl(__x); }
|
{ return __builtin_nearbyintl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1530,6 +1603,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
nearbyint(_Tp __x)
|
nearbyint(_Tp __x)
|
||||||
{ return __builtin_nearbyint(__x); }
|
{ return __builtin_nearbyint(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
nextafter(float __x, float __y)
|
nextafter(float __x, float __y)
|
||||||
{ return __builtin_nextafterf(__x, __y); }
|
{ return __builtin_nextafterf(__x, __y); }
|
||||||
|
|
@ -1537,6 +1611,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
nextafter(long double __x, long double __y)
|
nextafter(long double __x, long double __y)
|
||||||
{ return __builtin_nextafterl(__x, __y); }
|
{ return __builtin_nextafterl(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -1546,6 +1621,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return nextafter(__type(__x), __type(__y));
|
return nextafter(__type(__x), __type(__y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
nexttoward(float __x, long double __y)
|
nexttoward(float __x, long double __y)
|
||||||
{ return __builtin_nexttowardf(__x, __y); }
|
{ return __builtin_nexttowardf(__x, __y); }
|
||||||
|
|
@ -1553,6 +1629,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
nexttoward(long double __x, long double __y)
|
nexttoward(long double __x, long double __y)
|
||||||
{ return __builtin_nexttowardl(__x, __y); }
|
{ return __builtin_nexttowardl(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1560,6 +1637,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
nexttoward(_Tp __x, long double __y)
|
nexttoward(_Tp __x, long double __y)
|
||||||
{ return __builtin_nexttoward(__x, __y); }
|
{ return __builtin_nexttoward(__x, __y); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
remainder(float __x, float __y)
|
remainder(float __x, float __y)
|
||||||
{ return __builtin_remainderf(__x, __y); }
|
{ return __builtin_remainderf(__x, __y); }
|
||||||
|
|
@ -1567,6 +1645,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
remainder(long double __x, long double __y)
|
remainder(long double __x, long double __y)
|
||||||
{ return __builtin_remainderl(__x, __y); }
|
{ return __builtin_remainderl(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -1576,6 +1655,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return remainder(__type(__x), __type(__y));
|
return remainder(__type(__x), __type(__y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
remquo(float __x, float __y, int* __pquo)
|
remquo(float __x, float __y, int* __pquo)
|
||||||
{ return __builtin_remquof(__x, __y, __pquo); }
|
{ return __builtin_remquof(__x, __y, __pquo); }
|
||||||
|
|
@ -1583,6 +1663,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
remquo(long double __x, long double __y, int* __pquo)
|
remquo(long double __x, long double __y, int* __pquo)
|
||||||
{ return __builtin_remquol(__x, __y, __pquo); }
|
{ return __builtin_remquol(__x, __y, __pquo); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -1592,6 +1673,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return remquo(__type(__x), __type(__y), __pquo);
|
return remquo(__type(__x), __type(__y), __pquo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
rint(float __x)
|
rint(float __x)
|
||||||
{ return __builtin_rintf(__x); }
|
{ return __builtin_rintf(__x); }
|
||||||
|
|
@ -1599,6 +1681,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
rint(long double __x)
|
rint(long double __x)
|
||||||
{ return __builtin_rintl(__x); }
|
{ return __builtin_rintl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1606,6 +1689,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
rint(_Tp __x)
|
rint(_Tp __x)
|
||||||
{ return __builtin_rint(__x); }
|
{ return __builtin_rint(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
round(float __x)
|
round(float __x)
|
||||||
{ return __builtin_roundf(__x); }
|
{ return __builtin_roundf(__x); }
|
||||||
|
|
@ -1613,6 +1697,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
round(long double __x)
|
round(long double __x)
|
||||||
{ return __builtin_roundl(__x); }
|
{ return __builtin_roundl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1620,6 +1705,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
round(_Tp __x)
|
round(_Tp __x)
|
||||||
{ return __builtin_round(__x); }
|
{ return __builtin_round(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
scalbln(float __x, long __ex)
|
scalbln(float __x, long __ex)
|
||||||
{ return __builtin_scalblnf(__x, __ex); }
|
{ return __builtin_scalblnf(__x, __ex); }
|
||||||
|
|
@ -1627,6 +1713,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
scalbln(long double __x, long __ex)
|
scalbln(long double __x, long __ex)
|
||||||
{ return __builtin_scalblnl(__x, __ex); }
|
{ return __builtin_scalblnl(__x, __ex); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1634,6 +1721,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
scalbln(_Tp __x, long __ex)
|
scalbln(_Tp __x, long __ex)
|
||||||
{ return __builtin_scalbln(__x, __ex); }
|
{ return __builtin_scalbln(__x, __ex); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
scalbn(float __x, int __ex)
|
scalbn(float __x, int __ex)
|
||||||
{ return __builtin_scalbnf(__x, __ex); }
|
{ return __builtin_scalbnf(__x, __ex); }
|
||||||
|
|
@ -1641,6 +1729,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
scalbn(long double __x, int __ex)
|
scalbn(long double __x, int __ex)
|
||||||
{ return __builtin_scalbnl(__x, __ex); }
|
{ return __builtin_scalbnl(__x, __ex); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1648,6 +1737,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
scalbn(_Tp __x, int __ex)
|
scalbn(_Tp __x, int __ex)
|
||||||
{ return __builtin_scalbn(__x, __ex); }
|
{ return __builtin_scalbn(__x, __ex); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
tgamma(float __x)
|
tgamma(float __x)
|
||||||
{ return __builtin_tgammaf(__x); }
|
{ return __builtin_tgammaf(__x); }
|
||||||
|
|
@ -1655,6 +1745,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
tgamma(long double __x)
|
tgamma(long double __x)
|
||||||
{ return __builtin_tgammal(__x); }
|
{ return __builtin_tgammal(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -1662,6 +1753,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
tgamma(_Tp __x)
|
tgamma(_Tp __x)
|
||||||
{ return __builtin_tgamma(__x); }
|
{ return __builtin_tgamma(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
constexpr float
|
constexpr float
|
||||||
trunc(float __x)
|
trunc(float __x)
|
||||||
{ return __builtin_truncf(__x); }
|
{ return __builtin_truncf(__x); }
|
||||||
|
|
@ -1669,6 +1761,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
constexpr long double
|
constexpr long double
|
||||||
trunc(long double __x)
|
trunc(long double __x)
|
||||||
{ return __builtin_truncl(__x); }
|
{ return __builtin_truncl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
|
||||||
|
|
@ -419,6 +419,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
/// Additional overloads [8.16.4].
|
/// Additional overloads [8.16.4].
|
||||||
using std::acos;
|
using std::acos;
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
acosh(float __x)
|
acosh(float __x)
|
||||||
{ return __builtin_acoshf(__x); }
|
{ return __builtin_acoshf(__x); }
|
||||||
|
|
@ -426,6 +427,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
acosh(long double __x)
|
acosh(long double __x)
|
||||||
{ return __builtin_acoshl(__x); }
|
{ return __builtin_acoshl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -435,6 +437,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
using std::asin;
|
using std::asin;
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
asinh(float __x)
|
asinh(float __x)
|
||||||
{ return __builtin_asinhf(__x); }
|
{ return __builtin_asinhf(__x); }
|
||||||
|
|
@ -442,6 +445,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
asinh(long double __x)
|
asinh(long double __x)
|
||||||
{ return __builtin_asinhl(__x); }
|
{ return __builtin_asinhl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -452,6 +456,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
using std::atan;
|
using std::atan;
|
||||||
using std::atan2;
|
using std::atan2;
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
atanh(float __x)
|
atanh(float __x)
|
||||||
{ return __builtin_atanhf(__x); }
|
{ return __builtin_atanhf(__x); }
|
||||||
|
|
@ -459,6 +464,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
atanh(long double __x)
|
atanh(long double __x)
|
||||||
{ return __builtin_atanhl(__x); }
|
{ return __builtin_atanhl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -466,6 +472,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
atanh(_Tp __x)
|
atanh(_Tp __x)
|
||||||
{ return __builtin_atanh(__x); }
|
{ return __builtin_atanh(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
cbrt(float __x)
|
cbrt(float __x)
|
||||||
{ return __builtin_cbrtf(__x); }
|
{ return __builtin_cbrtf(__x); }
|
||||||
|
|
@ -473,6 +480,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
cbrt(long double __x)
|
cbrt(long double __x)
|
||||||
{ return __builtin_cbrtl(__x); }
|
{ return __builtin_cbrtl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -482,6 +490,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
using std::ceil;
|
using std::ceil;
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
copysign(float __x, float __y)
|
copysign(float __x, float __y)
|
||||||
{ return __builtin_copysignf(__x, __y); }
|
{ return __builtin_copysignf(__x, __y); }
|
||||||
|
|
@ -489,6 +498,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
copysign(long double __x, long double __y)
|
copysign(long double __x, long double __y)
|
||||||
{ return __builtin_copysignl(__x, __y); }
|
{ return __builtin_copysignl(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -501,6 +511,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
using std::cos;
|
using std::cos;
|
||||||
using std::cosh;
|
using std::cosh;
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
erf(float __x)
|
erf(float __x)
|
||||||
{ return __builtin_erff(__x); }
|
{ return __builtin_erff(__x); }
|
||||||
|
|
@ -508,6 +519,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
erf(long double __x)
|
erf(long double __x)
|
||||||
{ return __builtin_erfl(__x); }
|
{ return __builtin_erfl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -515,6 +527,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
erf(_Tp __x)
|
erf(_Tp __x)
|
||||||
{ return __builtin_erf(__x); }
|
{ return __builtin_erf(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
erfc(float __x)
|
erfc(float __x)
|
||||||
{ return __builtin_erfcf(__x); }
|
{ return __builtin_erfcf(__x); }
|
||||||
|
|
@ -522,6 +535,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
erfc(long double __x)
|
erfc(long double __x)
|
||||||
{ return __builtin_erfcl(__x); }
|
{ return __builtin_erfcl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -531,6 +545,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
using std::exp;
|
using std::exp;
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
exp2(float __x)
|
exp2(float __x)
|
||||||
{ return __builtin_exp2f(__x); }
|
{ return __builtin_exp2f(__x); }
|
||||||
|
|
@ -538,6 +553,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
exp2(long double __x)
|
exp2(long double __x)
|
||||||
{ return __builtin_exp2l(__x); }
|
{ return __builtin_exp2l(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -545,6 +561,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
exp2(_Tp __x)
|
exp2(_Tp __x)
|
||||||
{ return __builtin_exp2(__x); }
|
{ return __builtin_exp2(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
expm1(float __x)
|
expm1(float __x)
|
||||||
{ return __builtin_expm1f(__x); }
|
{ return __builtin_expm1f(__x); }
|
||||||
|
|
@ -552,6 +569,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
expm1(long double __x)
|
expm1(long double __x)
|
||||||
{ return __builtin_expm1l(__x); }
|
{ return __builtin_expm1l(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -568,6 +586,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
using ::fabs;
|
using ::fabs;
|
||||||
|
|
||||||
#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
|
#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
fabs(float __x)
|
fabs(float __x)
|
||||||
{ return __builtin_fabsf(__x); }
|
{ return __builtin_fabsf(__x); }
|
||||||
|
|
@ -575,6 +594,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
fabs(long double __x)
|
fabs(long double __x)
|
||||||
{ return __builtin_fabsl(__x); }
|
{ return __builtin_fabsl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -583,6 +603,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
{ return __builtin_fabs(__x); }
|
{ return __builtin_fabs(__x); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
fdim(float __x, float __y)
|
fdim(float __x, float __y)
|
||||||
{ return __builtin_fdimf(__x, __y); }
|
{ return __builtin_fdimf(__x, __y); }
|
||||||
|
|
@ -590,6 +611,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
fdim(long double __x, long double __y)
|
fdim(long double __x, long double __y)
|
||||||
{ return __builtin_fdiml(__x, __y); }
|
{ return __builtin_fdiml(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -601,6 +623,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
using std::floor;
|
using std::floor;
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
fma(float __x, float __y, float __z)
|
fma(float __x, float __y, float __z)
|
||||||
{ return __builtin_fmaf(__x, __y, __z); }
|
{ return __builtin_fmaf(__x, __y, __z); }
|
||||||
|
|
@ -608,6 +631,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
fma(long double __x, long double __y, long double __z)
|
fma(long double __x, long double __y, long double __z)
|
||||||
{ return __builtin_fmal(__x, __y, __z); }
|
{ return __builtin_fmal(__x, __y, __z); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up, typename _Vp>
|
template<typename _Tp, typename _Up, typename _Vp>
|
||||||
inline typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type
|
inline typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type
|
||||||
|
|
@ -617,6 +641,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return fma(__type(__x), __type(__y), __type(__z));
|
return fma(__type(__x), __type(__y), __type(__z));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
fmax(float __x, float __y)
|
fmax(float __x, float __y)
|
||||||
{ return __builtin_fmaxf(__x, __y); }
|
{ return __builtin_fmaxf(__x, __y); }
|
||||||
|
|
@ -624,6 +649,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
fmax(long double __x, long double __y)
|
fmax(long double __x, long double __y)
|
||||||
{ return __builtin_fmaxl(__x, __y); }
|
{ return __builtin_fmaxl(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -633,6 +659,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return fmax(__type(__x), __type(__y));
|
return fmax(__type(__x), __type(__y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
fmin(float __x, float __y)
|
fmin(float __x, float __y)
|
||||||
{ return __builtin_fminf(__x, __y); }
|
{ return __builtin_fminf(__x, __y); }
|
||||||
|
|
@ -640,6 +667,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
fmin(long double __x, long double __y)
|
fmin(long double __x, long double __y)
|
||||||
{ return __builtin_fminl(__x, __y); }
|
{ return __builtin_fminl(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -652,6 +680,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
using std::fmod;
|
using std::fmod;
|
||||||
using std::frexp;
|
using std::frexp;
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
hypot(float __x, float __y)
|
hypot(float __x, float __y)
|
||||||
{ return __builtin_hypotf(__x, __y); }
|
{ return __builtin_hypotf(__x, __y); }
|
||||||
|
|
@ -659,6 +688,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
hypot(long double __x, long double __y)
|
hypot(long double __x, long double __y)
|
||||||
{ return __builtin_hypotl(__x, __y); }
|
{ return __builtin_hypotl(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -668,6 +698,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return hypot(__type(__y), __type(__x));
|
return hypot(__type(__y), __type(__x));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline int
|
inline int
|
||||||
ilogb(float __x)
|
ilogb(float __x)
|
||||||
{ return __builtin_ilogbf(__x); }
|
{ return __builtin_ilogbf(__x); }
|
||||||
|
|
@ -675,6 +706,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline int
|
inline int
|
||||||
ilogb(long double __x)
|
ilogb(long double __x)
|
||||||
{ return __builtin_ilogbl(__x); }
|
{ return __builtin_ilogbl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -684,6 +716,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
using std::ldexp;
|
using std::ldexp;
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
lgamma(float __x)
|
lgamma(float __x)
|
||||||
{ return __builtin_lgammaf(__x); }
|
{ return __builtin_lgammaf(__x); }
|
||||||
|
|
@ -691,6 +724,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
lgamma(long double __x)
|
lgamma(long double __x)
|
||||||
{ return __builtin_lgammal(__x); }
|
{ return __builtin_lgammal(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -698,6 +732,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
lgamma(_Tp __x)
|
lgamma(_Tp __x)
|
||||||
{ return __builtin_lgamma(__x); }
|
{ return __builtin_lgamma(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline long long
|
inline long long
|
||||||
llrint(float __x)
|
llrint(float __x)
|
||||||
{ return __builtin_llrintf(__x); }
|
{ return __builtin_llrintf(__x); }
|
||||||
|
|
@ -705,6 +740,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long long
|
inline long long
|
||||||
llrint(long double __x)
|
llrint(long double __x)
|
||||||
{ return __builtin_llrintl(__x); }
|
{ return __builtin_llrintl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -712,6 +748,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
llrint(_Tp __x)
|
llrint(_Tp __x)
|
||||||
{ return __builtin_llrint(__x); }
|
{ return __builtin_llrint(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline long long
|
inline long long
|
||||||
llround(float __x)
|
llround(float __x)
|
||||||
{ return __builtin_llroundf(__x); }
|
{ return __builtin_llroundf(__x); }
|
||||||
|
|
@ -719,6 +756,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long long
|
inline long long
|
||||||
llround(long double __x)
|
llround(long double __x)
|
||||||
{ return __builtin_llroundl(__x); }
|
{ return __builtin_llroundl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -729,6 +767,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
using std::log;
|
using std::log;
|
||||||
using std::log10;
|
using std::log10;
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
log1p(float __x)
|
log1p(float __x)
|
||||||
{ return __builtin_log1pf(__x); }
|
{ return __builtin_log1pf(__x); }
|
||||||
|
|
@ -736,6 +775,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
log1p(long double __x)
|
log1p(long double __x)
|
||||||
{ return __builtin_log1pl(__x); }
|
{ return __builtin_log1pl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -744,6 +784,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
{ return __builtin_log1p(__x); }
|
{ return __builtin_log1p(__x); }
|
||||||
|
|
||||||
// DR 568.
|
// DR 568.
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
log2(float __x)
|
log2(float __x)
|
||||||
{ return __builtin_log2f(__x); }
|
{ return __builtin_log2f(__x); }
|
||||||
|
|
@ -751,6 +792,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
log2(long double __x)
|
log2(long double __x)
|
||||||
{ return __builtin_log2l(__x); }
|
{ return __builtin_log2l(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -758,6 +800,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
log2(_Tp __x)
|
log2(_Tp __x)
|
||||||
{ return __builtin_log2(__x); }
|
{ return __builtin_log2(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
logb(float __x)
|
logb(float __x)
|
||||||
{ return __builtin_logbf(__x); }
|
{ return __builtin_logbf(__x); }
|
||||||
|
|
@ -765,6 +808,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
logb(long double __x)
|
logb(long double __x)
|
||||||
{ return __builtin_logbl(__x); }
|
{ return __builtin_logbl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -774,6 +818,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return __builtin_logb(__x);
|
return __builtin_logb(__x);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline long
|
inline long
|
||||||
lrint(float __x)
|
lrint(float __x)
|
||||||
{ return __builtin_lrintf(__x); }
|
{ return __builtin_lrintf(__x); }
|
||||||
|
|
@ -781,6 +826,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long
|
inline long
|
||||||
lrint(long double __x)
|
lrint(long double __x)
|
||||||
{ return __builtin_lrintl(__x); }
|
{ return __builtin_lrintl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -788,6 +834,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
lrint(_Tp __x)
|
lrint(_Tp __x)
|
||||||
{ return __builtin_lrint(__x); }
|
{ return __builtin_lrint(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline long
|
inline long
|
||||||
lround(float __x)
|
lround(float __x)
|
||||||
{ return __builtin_lroundf(__x); }
|
{ return __builtin_lroundf(__x); }
|
||||||
|
|
@ -795,6 +842,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long
|
inline long
|
||||||
lround(long double __x)
|
lround(long double __x)
|
||||||
{ return __builtin_lroundl(__x); }
|
{ return __builtin_lroundl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -802,6 +850,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
lround(_Tp __x)
|
lround(_Tp __x)
|
||||||
{ return __builtin_lround(__x); }
|
{ return __builtin_lround(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
nearbyint(float __x)
|
nearbyint(float __x)
|
||||||
{ return __builtin_nearbyintf(__x); }
|
{ return __builtin_nearbyintf(__x); }
|
||||||
|
|
@ -809,6 +858,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
nearbyint(long double __x)
|
nearbyint(long double __x)
|
||||||
{ return __builtin_nearbyintl(__x); }
|
{ return __builtin_nearbyintl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -816,6 +866,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
nearbyint(_Tp __x)
|
nearbyint(_Tp __x)
|
||||||
{ return __builtin_nearbyint(__x); }
|
{ return __builtin_nearbyint(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
nextafter(float __x, float __y)
|
nextafter(float __x, float __y)
|
||||||
{ return __builtin_nextafterf(__x, __y); }
|
{ return __builtin_nextafterf(__x, __y); }
|
||||||
|
|
@ -823,6 +874,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
nextafter(long double __x, long double __y)
|
nextafter(long double __x, long double __y)
|
||||||
{ return __builtin_nextafterl(__x, __y); }
|
{ return __builtin_nextafterl(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -832,6 +884,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return nextafter(__type(__x), __type(__y));
|
return nextafter(__type(__x), __type(__y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
nexttoward(float __x, long double __y)
|
nexttoward(float __x, long double __y)
|
||||||
{ return __builtin_nexttowardf(__x, __y); }
|
{ return __builtin_nexttowardf(__x, __y); }
|
||||||
|
|
@ -839,6 +892,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
nexttoward(long double __x, long double __y)
|
nexttoward(long double __x, long double __y)
|
||||||
{ return __builtin_nexttowardl(__x, __y); }
|
{ return __builtin_nexttowardl(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -846,6 +900,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
nexttoward(_Tp __x, long double __y)
|
nexttoward(_Tp __x, long double __y)
|
||||||
{ return __builtin_nexttoward(__x, __y); }
|
{ return __builtin_nexttoward(__x, __y); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
remainder(float __x, float __y)
|
remainder(float __x, float __y)
|
||||||
{ return __builtin_remainderf(__x, __y); }
|
{ return __builtin_remainderf(__x, __y); }
|
||||||
|
|
@ -853,6 +908,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
remainder(long double __x, long double __y)
|
remainder(long double __x, long double __y)
|
||||||
{ return __builtin_remainderl(__x, __y); }
|
{ return __builtin_remainderl(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -862,6 +918,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return remainder(__type(__x), __type(__y));
|
return remainder(__type(__x), __type(__y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
remquo(float __x, float __y, int* __pquo)
|
remquo(float __x, float __y, int* __pquo)
|
||||||
{ return __builtin_remquof(__x, __y, __pquo); }
|
{ return __builtin_remquof(__x, __y, __pquo); }
|
||||||
|
|
@ -869,6 +926,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
remquo(long double __x, long double __y, int* __pquo)
|
remquo(long double __x, long double __y, int* __pquo)
|
||||||
{ return __builtin_remquol(__x, __y, __pquo); }
|
{ return __builtin_remquol(__x, __y, __pquo); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
@ -878,6 +936,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
return remquo(__type(__x), __type(__y), __pquo);
|
return remquo(__type(__x), __type(__y), __pquo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
rint(float __x)
|
rint(float __x)
|
||||||
{ return __builtin_rintf(__x); }
|
{ return __builtin_rintf(__x); }
|
||||||
|
|
@ -885,6 +944,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
rint(long double __x)
|
rint(long double __x)
|
||||||
{ return __builtin_rintl(__x); }
|
{ return __builtin_rintl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -892,6 +952,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
rint(_Tp __x)
|
rint(_Tp __x)
|
||||||
{ return __builtin_rint(__x); }
|
{ return __builtin_rint(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
round(float __x)
|
round(float __x)
|
||||||
{ return __builtin_roundf(__x); }
|
{ return __builtin_roundf(__x); }
|
||||||
|
|
@ -899,6 +960,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
round(long double __x)
|
round(long double __x)
|
||||||
{ return __builtin_roundl(__x); }
|
{ return __builtin_roundl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -906,6 +968,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
round(_Tp __x)
|
round(_Tp __x)
|
||||||
{ return __builtin_round(__x); }
|
{ return __builtin_round(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
scalbln(float __x, long __ex)
|
scalbln(float __x, long __ex)
|
||||||
{ return __builtin_scalblnf(__x, __ex); }
|
{ return __builtin_scalblnf(__x, __ex); }
|
||||||
|
|
@ -913,6 +976,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
scalbln(long double __x, long __ex)
|
scalbln(long double __x, long __ex)
|
||||||
{ return __builtin_scalblnl(__x, __ex); }
|
{ return __builtin_scalblnl(__x, __ex); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -920,6 +984,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
scalbln(_Tp __x, long __ex)
|
scalbln(_Tp __x, long __ex)
|
||||||
{ return __builtin_scalbln(__x, __ex); }
|
{ return __builtin_scalbln(__x, __ex); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
scalbn(float __x, int __ex)
|
scalbn(float __x, int __ex)
|
||||||
{ return __builtin_scalbnf(__x, __ex); }
|
{ return __builtin_scalbnf(__x, __ex); }
|
||||||
|
|
@ -927,6 +992,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
scalbn(long double __x, int __ex)
|
scalbn(long double __x, int __ex)
|
||||||
{ return __builtin_scalbnl(__x, __ex); }
|
{ return __builtin_scalbnl(__x, __ex); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -940,6 +1006,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
using std::tan;
|
using std::tan;
|
||||||
using std::tanh;
|
using std::tanh;
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
tgamma(float __x)
|
tgamma(float __x)
|
||||||
{ return __builtin_tgammaf(__x); }
|
{ return __builtin_tgammaf(__x); }
|
||||||
|
|
@ -947,6 +1014,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
tgamma(long double __x)
|
tgamma(long double __x)
|
||||||
{ return __builtin_tgammal(__x); }
|
{ return __builtin_tgammal(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -954,6 +1022,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
tgamma(_Tp __x)
|
tgamma(_Tp __x)
|
||||||
{ return __builtin_tgamma(__x); }
|
{ return __builtin_tgamma(__x); }
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
trunc(float __x)
|
trunc(float __x)
|
||||||
{ return __builtin_truncf(__x); }
|
{ return __builtin_truncf(__x); }
|
||||||
|
|
@ -961,6 +1030,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
trunc(long double __x)
|
trunc(long double __x)
|
||||||
{ return __builtin_truncl(__x); }
|
{ return __builtin_truncl(__x); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
|
||||||
|
|
@ -994,6 +1064,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
// the discussion about this issue here:
|
// the discussion about this issue here:
|
||||||
// http://gcc.gnu.org/ml/gcc-patches/2012-09/msg01278.html
|
// http://gcc.gnu.org/ml/gcc-patches/2012-09/msg01278.html
|
||||||
|
|
||||||
|
#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO
|
||||||
inline float
|
inline float
|
||||||
pow(float __x, float __y)
|
pow(float __x, float __y)
|
||||||
{ return std::pow(__x, __y); }
|
{ return std::pow(__x, __y); }
|
||||||
|
|
@ -1001,6 +1072,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
inline long double
|
inline long double
|
||||||
pow(long double __x, long double __y)
|
pow(long double __x, long double __y)
|
||||||
{ return std::pow(__x, __y); }
|
{ return std::pow(__x, __y); }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp, typename _Up>
|
template<typename _Tp, typename _Up>
|
||||||
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
// { dg-do compile }
|
// { dg-do compile }
|
||||||
// { dg-add-options no_pch }
|
// { dg-add-options no_pch }
|
||||||
|
|
||||||
// { dg-xfail-if "" { { *-*-linux* *-*-gnu* *-*-darwin* *-*-solaris2.1[0-9]* hppa*-*-hpux* *-*-mingw* *-*-aix* } || { uclibc || newlib } } { "*" } { "" } }
|
// { dg-xfail-if "" { { *-*-linux* *-*-gnu* *-*-darwin* *-*-solaris2.1[01]* hppa*-*-hpux* *-*-mingw* *-*-aix* } || { uclibc || newlib } } { "*" } { "" } }
|
||||||
// { dg-excess-errors "" { target { { *-*-linux* *-*-gnu* *-*-darwin* *-*-solaris2.1[0-9]* hppa*-*-hpux* *-*-mingw* *-*-aix* } || { uclibc || newlib } } } }
|
// { dg-excess-errors "" { target { { *-*-linux* *-*-gnu* *-*-darwin* *-*-solaris2.1[0-9]* hppa*-*-hpux* *-*-mingw* *-*-aix* } || { uclibc || newlib } } } }
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue