===================================================================
@@ -268,6 +268,13 @@
fmod(long double __x, long double __y)
{ return __builtin_fmodl(__x, __y); }
+ template<typename _Tp, typename _Up>
+ inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value
+ && __is_integer<_Up>::__value,
+ double>::__type
+ fmod(_Tp __x, _Up __y)
+ { return __builtin_fmod(__x, __y); }
+
using ::frexp;
inline float
===================================================================
@@ -282,6 +282,18 @@
fmod(long double __x, long double __y)
{ return __builtin_fmodl(__x, __y); }
+ template<typename _Tp, typename _Up>
+ inline _GLIBCXX_CONSTEXPR
+ typename __gnu_cxx::__promote_2<
+ typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value
+ && __is_arithmetic<_Up>::__value,
+ _Tp>::__type, _Up>::__type
+ fmod(_Tp __x, _Up __y)
+ {
+ typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
+ return fmod(__type(__x), __type(__y));
+ }
+
using ::frexp;
inline _GLIBCXX_CONSTEXPR float
@@ -313,8 +325,8 @@
inline _GLIBCXX_CONSTEXPR
typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
double>::__type
- ldexp(_Tp __x, int __exp)
- { return __builtin_ldexp(__x, __exp); }
+ ldexp(_Tp __x, int __exp)
+ { return __builtin_ldexp(__x, __exp); }
using ::log;