git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119710 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Howard Hinnant 2010-11-18 17:34:48 +00:00
parent 9650b6cce3
commit 995676a98e
4 changed files with 44 additions and 44 deletions

View File

@ -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

View File

@ -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);

View File

@ -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)));
}

View File

@ -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)));
}