mirror of
https://github.com/darlinghq/darling-libcxx.git
synced 2024-11-27 13:50:23 +00:00
LWG 1522
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119710 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9650b6cce3
commit
995676a98e
@ -191,17 +191,17 @@ template<class T> T norm(const complex<T>&);
|
||||
template<Integral T> double norm(T);
|
||||
float norm(float);
|
||||
|
||||
template<class T> complex<T> conj(const complex<T>&);
|
||||
long double conj(long double);
|
||||
double conj(double);
|
||||
template<Integral T> double conj(T);
|
||||
float conj(float);
|
||||
template<class T> complex<T> conj(const complex<T>&);
|
||||
complex<long double> conj(long double);
|
||||
complex<double> conj(double);
|
||||
template<Integral T> complex<double> conj(T);
|
||||
complex<float> conj(float);
|
||||
|
||||
template<class T> complex<T> proj(const complex<T>&);
|
||||
long double proj(long double);
|
||||
double proj(double);
|
||||
template<Integral T> double proj(T);
|
||||
float proj(float);
|
||||
template<class T> complex<T> proj(const complex<T>&);
|
||||
complex<long double> proj(long double);
|
||||
complex<double> proj(double);
|
||||
template<Integral T> complex<double> proj(T);
|
||||
complex<float> proj(float);
|
||||
|
||||
template<class T> complex<T> polar(const T&, const T& = 0);
|
||||
|
||||
@ -980,17 +980,17 @@ conj(const complex<_Tp>& __c)
|
||||
}
|
||||
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
long double
|
||||
complex<long double>
|
||||
conj(long double __re)
|
||||
{
|
||||
return __re;
|
||||
return complex<long double>(__re);
|
||||
}
|
||||
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
double
|
||||
complex<double>
|
||||
conj(double __re)
|
||||
{
|
||||
return __re;
|
||||
return complex<double>(__re);
|
||||
}
|
||||
|
||||
template<class _Tp>
|
||||
@ -998,18 +998,18 @@ inline _LIBCPP_INLINE_VISIBILITY
|
||||
typename enable_if
|
||||
<
|
||||
is_integral<_Tp>::value,
|
||||
double
|
||||
complex<double>
|
||||
>::type
|
||||
conj(_Tp __re)
|
||||
{
|
||||
return __re;
|
||||
return complex<double>(__re);
|
||||
}
|
||||
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
float
|
||||
complex<float>
|
||||
conj(float __re)
|
||||
{
|
||||
return __re;
|
||||
return complex<float>(__re);
|
||||
}
|
||||
|
||||
// proj
|
||||
@ -1026,21 +1026,21 @@ proj(const complex<_Tp>& __c)
|
||||
}
|
||||
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
long double
|
||||
complex<long double>
|
||||
proj(long double __re)
|
||||
{
|
||||
if (isinf(__re))
|
||||
__re = abs(__re);
|
||||
return __re;
|
||||
return complex<long double>(__re);
|
||||
}
|
||||
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
double
|
||||
complex<double>
|
||||
proj(double __re)
|
||||
{
|
||||
if (isinf(__re))
|
||||
__re = abs(__re);
|
||||
return __re;
|
||||
return complex<double>(__re);
|
||||
}
|
||||
|
||||
template<class _Tp>
|
||||
@ -1048,20 +1048,20 @@ inline _LIBCPP_INLINE_VISIBILITY
|
||||
typename enable_if
|
||||
<
|
||||
is_integral<_Tp>::value,
|
||||
double
|
||||
complex<double>
|
||||
>::type
|
||||
proj(_Tp __re)
|
||||
{
|
||||
return __re;
|
||||
return complex<double>(__re);
|
||||
}
|
||||
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
float
|
||||
complex<float>
|
||||
proj(float __re)
|
||||
{
|
||||
if (isinf(__re))
|
||||
__re = abs(__re);
|
||||
return __re;
|
||||
return complex<float>(__re);
|
||||
}
|
||||
|
||||
// polar
|
||||
|
@ -1498,7 +1498,7 @@ class piecewise_constant_distribution
|
||||
UnaryOperation fw);
|
||||
|
||||
vector<result_type> intervals() const;
|
||||
vector<double> densities() const;
|
||||
vector<result_type> densities() const;
|
||||
|
||||
friend bool operator==(const param_type& x, const param_type& y);
|
||||
friend bool operator!=(const param_type& x, const param_type& y);
|
||||
@ -1525,7 +1525,7 @@ class piecewise_constant_distribution
|
||||
|
||||
// property functions
|
||||
vector<result_type> intervals() const;
|
||||
vector<double> densities() const;
|
||||
vector<result_type> densities() const;
|
||||
|
||||
param_type param() const;
|
||||
void param(const param_type& parm);
|
||||
@ -1573,7 +1573,7 @@ class piecewise_linear_distribution
|
||||
UnaryOperation fw);
|
||||
|
||||
vector<result_type> intervals() const;
|
||||
vector<double> densities() const;
|
||||
vector<result_type> densities() const;
|
||||
|
||||
friend bool operator==(const param_type& x, const param_type& y);
|
||||
friend bool operator!=(const param_type& x, const param_type& y);
|
||||
@ -1603,7 +1603,7 @@ class piecewise_linear_distribution
|
||||
|
||||
// property functions
|
||||
vector<result_type> intervals() const;
|
||||
vector<double> densities() const;
|
||||
vector<result_type> densities() const;
|
||||
|
||||
param_type param() const;
|
||||
void param(const param_type& parm);
|
||||
|
@ -9,11 +9,11 @@
|
||||
|
||||
// <complex>
|
||||
|
||||
// template<class T> complex<T> conj(const complex<T>&);
|
||||
// long double conj(long double);
|
||||
// double conj(double);
|
||||
// template<Integral T> double conj(T);
|
||||
// float conj(float);
|
||||
// template<class T> complex<T> conj(const complex<T>&);
|
||||
// complex<long double> conj(long double);
|
||||
// complex<double> conj(double);
|
||||
// template<Integral T> complex<double> conj(T);
|
||||
// complex<float> conj(float);
|
||||
|
||||
#include <complex>
|
||||
#include <type_traits>
|
||||
@ -25,7 +25,7 @@ template <class T>
|
||||
void
|
||||
test(T x, typename std::enable_if<std::is_integral<T>::value>::type* = 0)
|
||||
{
|
||||
static_assert((std::is_same<decltype(std::conj(x)), double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::conj(x)), std::complex<double> >::value), "");
|
||||
assert(std::conj(x) == conj(std::complex<double>(x, 0)));
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@ template <class T>
|
||||
void
|
||||
test(T x, typename std::enable_if<std::is_floating_point<T>::value>::type* = 0)
|
||||
{
|
||||
static_assert((std::is_same<decltype(std::conj(x)), T>::value), "");
|
||||
static_assert((std::is_same<decltype(std::conj(x)), std::complex<T> >::value), "");
|
||||
assert(std::conj(x) == conj(std::complex<T>(x, 0)));
|
||||
}
|
||||
|
||||
|
@ -9,11 +9,11 @@
|
||||
|
||||
// <complex>
|
||||
|
||||
// template<class T> complex<T> proj(const complex<T>&);
|
||||
// long double proj(long double);
|
||||
// double proj(double);
|
||||
// template<Integral T> double proj(T);
|
||||
// float proj(float);
|
||||
// template<class T> complex<T> proj(const complex<T>&);
|
||||
// complex<long double> proj(long double);
|
||||
// complex<double> proj(double);
|
||||
// template<Integral T> complex<double> proj(T);
|
||||
// complex<float> proj(float);
|
||||
|
||||
#include <complex>
|
||||
#include <type_traits>
|
||||
@ -25,7 +25,7 @@ template <class T>
|
||||
void
|
||||
test(T x, typename std::enable_if<std::is_integral<T>::value>::type* = 0)
|
||||
{
|
||||
static_assert((std::is_same<decltype(std::proj(x)), double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::proj(x)), std::complex<double> >::value), "");
|
||||
assert(std::proj(x) == proj(std::complex<double>(x, 0)));
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@ template <class T>
|
||||
void
|
||||
test(T x, typename std::enable_if<std::is_floating_point<T>::value>::type* = 0)
|
||||
{
|
||||
static_assert((std::is_same<decltype(std::proj(x)), T>::value), "");
|
||||
static_assert((std::is_same<decltype(std::proj(x)), std::complex<T> >::value), "");
|
||||
assert(std::proj(x) == proj(std::complex<T>(x, 0)));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user