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

@ -192,16 +192,16 @@ template<Integral T> double norm(T);
float norm(float); float norm(float);
template<class T> complex<T> conj(const complex<T>&); template<class T> complex<T> conj(const complex<T>&);
long double conj(long double); complex<long double> conj(long double);
double conj(double); complex<double> conj(double);
template<Integral T> double conj(T); template<Integral T> complex<double> conj(T);
float conj(float); complex<float> conj(float);
template<class T> complex<T> proj(const complex<T>&); template<class T> complex<T> proj(const complex<T>&);
long double proj(long double); complex<long double> proj(long double);
double proj(double); complex<double> proj(double);
template<Integral T> double proj(T); template<Integral T> complex<double> proj(T);
float proj(float); complex<float> proj(float);
template<class T> complex<T> polar(const T&, const T& = 0); template<class T> complex<T> polar(const T&, const T& = 0);
@ -980,17 +980,17 @@ conj(const complex<_Tp>& __c)
} }
inline _LIBCPP_INLINE_VISIBILITY inline _LIBCPP_INLINE_VISIBILITY
long double complex<long double>
conj(long double __re) conj(long double __re)
{ {
return __re; return complex<long double>(__re);
} }
inline _LIBCPP_INLINE_VISIBILITY inline _LIBCPP_INLINE_VISIBILITY
double complex<double>
conj(double __re) conj(double __re)
{ {
return __re; return complex<double>(__re);
} }
template<class _Tp> template<class _Tp>
@ -998,18 +998,18 @@ inline _LIBCPP_INLINE_VISIBILITY
typename enable_if typename enable_if
< <
is_integral<_Tp>::value, is_integral<_Tp>::value,
double complex<double>
>::type >::type
conj(_Tp __re) conj(_Tp __re)
{ {
return __re; return complex<double>(__re);
} }
inline _LIBCPP_INLINE_VISIBILITY inline _LIBCPP_INLINE_VISIBILITY
float complex<float>
conj(float __re) conj(float __re)
{ {
return __re; return complex<float>(__re);
} }
// proj // proj
@ -1026,21 +1026,21 @@ proj(const complex<_Tp>& __c)
} }
inline _LIBCPP_INLINE_VISIBILITY inline _LIBCPP_INLINE_VISIBILITY
long double complex<long double>
proj(long double __re) proj(long double __re)
{ {
if (isinf(__re)) if (isinf(__re))
__re = abs(__re); __re = abs(__re);
return __re; return complex<long double>(__re);
} }
inline _LIBCPP_INLINE_VISIBILITY inline _LIBCPP_INLINE_VISIBILITY
double complex<double>
proj(double __re) proj(double __re)
{ {
if (isinf(__re)) if (isinf(__re))
__re = abs(__re); __re = abs(__re);
return __re; return complex<double>(__re);
} }
template<class _Tp> template<class _Tp>
@ -1048,20 +1048,20 @@ inline _LIBCPP_INLINE_VISIBILITY
typename enable_if typename enable_if
< <
is_integral<_Tp>::value, is_integral<_Tp>::value,
double complex<double>
>::type >::type
proj(_Tp __re) proj(_Tp __re)
{ {
return __re; return complex<double>(__re);
} }
inline _LIBCPP_INLINE_VISIBILITY inline _LIBCPP_INLINE_VISIBILITY
float complex<float>
proj(float __re) proj(float __re)
{ {
if (isinf(__re)) if (isinf(__re))
__re = abs(__re); __re = abs(__re);
return __re; return complex<float>(__re);
} }
// polar // polar

View File

@ -1498,7 +1498,7 @@ class piecewise_constant_distribution
UnaryOperation fw); UnaryOperation fw);
vector<result_type> intervals() const; 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);
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 // property functions
vector<result_type> intervals() const; vector<result_type> intervals() const;
vector<double> densities() const; vector<result_type> densities() const;
param_type param() const; param_type param() const;
void param(const param_type& parm); void param(const param_type& parm);
@ -1573,7 +1573,7 @@ class piecewise_linear_distribution
UnaryOperation fw); UnaryOperation fw);
vector<result_type> intervals() const; 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);
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 // property functions
vector<result_type> intervals() const; vector<result_type> intervals() const;
vector<double> densities() const; vector<result_type> densities() const;
param_type param() const; param_type param() const;
void param(const param_type& parm); void param(const param_type& parm);

View File

@ -10,10 +10,10 @@
// <complex> // <complex>
// template<class T> complex<T> conj(const complex<T>&); // template<class T> complex<T> conj(const complex<T>&);
// long double conj(long double); // complex<long double> conj(long double);
// double conj(double); // complex<double> conj(double);
// template<Integral T> double conj(T); // template<Integral T> complex<double> conj(T);
// float conj(float); // complex<float> conj(float);
#include <complex> #include <complex>
#include <type_traits> #include <type_traits>
@ -25,7 +25,7 @@ template <class T>
void void
test(T x, typename std::enable_if<std::is_integral<T>::value>::type* = 0) 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))); assert(std::conj(x) == conj(std::complex<double>(x, 0)));
} }
@ -33,7 +33,7 @@ template <class T>
void void
test(T x, typename std::enable_if<std::is_floating_point<T>::value>::type* = 0) 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))); assert(std::conj(x) == conj(std::complex<T>(x, 0)));
} }

View File

@ -10,10 +10,10 @@
// <complex> // <complex>
// template<class T> complex<T> proj(const complex<T>&); // template<class T> complex<T> proj(const complex<T>&);
// long double proj(long double); // complex<long double> proj(long double);
// double proj(double); // complex<double> proj(double);
// template<Integral T> double proj(T); // template<Integral T> complex<double> proj(T);
// float proj(float); // complex<float> proj(float);
#include <complex> #include <complex>
#include <type_traits> #include <type_traits>
@ -25,7 +25,7 @@ template <class T>
void void
test(T x, typename std::enable_if<std::is_integral<T>::value>::type* = 0) 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))); assert(std::proj(x) == proj(std::complex<double>(x, 0)));
} }
@ -33,7 +33,7 @@ template <class T>
void void
test(T x, typename std::enable_if<std::is_floating_point<T>::value>::type* = 0) 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))); assert(std::proj(x) == proj(std::complex<T>(x, 0)));
} }