From bf945d409b70a303f98b1a997aa4f7710f01e92c Mon Sep 17 00:00:00 2001 From: paolo Date: Thu, 11 Mar 2004 19:05:19 +0000 Subject: [PATCH] 2004-03-11 Paolo Carlini * include/std/std_complex.h (pow(const complex&, const _Tp&), pow(const _Tp&, const complex&), pow(const complex&, const complex&)): Fully qualify with std:: a few calls. * testsuite/26_numerics/complex/13450.cc: Minor tweak. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79338 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/ChangeLog | 7 +++++++ libstdc++-v3/include/std/std_complex.h | 9 +++++---- libstdc++-v3/testsuite/26_numerics/complex/13450.cc | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 8377536456c..7668e70bfb7 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2004-03-11 Paolo Carlini + + * include/std/std_complex.h (pow(const complex&, const _Tp&), + pow(const _Tp&, const complex&), pow(const complex&, + const complex&)): Fully qualify with std:: a few calls. + * testsuite/26_numerics/complex/13450.cc: Minor tweak. + 2004-03-11 Steven Bosscher PR libstdc++/11706 diff --git a/libstdc++-v3/include/std/std_complex.h b/libstdc++-v3/include/std/std_complex.h index d997867c588..e1027f65991 100644 --- a/libstdc++-v3/include/std/std_complex.h +++ b/libstdc++-v3/include/std/std_complex.h @@ -708,7 +708,7 @@ namespace std if (__x.imag() == _Tp() && __x.real() > _Tp()) return pow(__x.real(), __y); - complex<_Tp> __t = log(__x); + complex<_Tp> __t = std::log(__x); return std::polar(exp(__y * __t.real()), __y * __t.imag()); } @@ -716,15 +716,16 @@ namespace std inline complex<_Tp> pow(const complex<_Tp>& __x, const complex<_Tp>& __y) { - return __x == _Tp() ? _Tp() : exp(__y * log(__x)); + return __x == _Tp() ? _Tp() : std::exp(__y * std::log(__x)); } template inline complex<_Tp> pow(const _Tp& __x, const complex<_Tp>& __y) { - return __x > _Tp() ? polar(pow(__x, __y.real()), __y.imag() * log(__x)) - : pow(complex<_Tp>(__x, _Tp()), __y); + return __x > _Tp() ? std::polar(pow(__x, __y.real()), + __y.imag() * log(__x)) + : std::pow(complex<_Tp>(__x, _Tp()), __y); } // 26.2.3 complex specializations diff --git a/libstdc++-v3/testsuite/26_numerics/complex/13450.cc b/libstdc++-v3/testsuite/26_numerics/complex/13450.cc index 9df257db599..50f4bad3b93 100644 --- a/libstdc++-v3/testsuite/26_numerics/complex/13450.cc +++ b/libstdc++-v3/testsuite/26_numerics/complex/13450.cc @@ -29,7 +29,7 @@ template bool test __attribute__((unused)) = true; typedef complex cplx; - T eps = numeric_limits::epsilon() * 10; + T eps = numeric_limits::epsilon() * 100; cplx ref = pow(cplx(a, T()), cplx(b, T())); cplx res1 = pow(a, cplx(b, T())); -- 2.11.0