diff options
author | Marc Glisse <marc.glisse@inria.fr> | 2014-04-11 20:57:59 +0200 |
---|---|---|
committer | Marc Glisse <glisse@gcc.gnu.org> | 2014-04-11 18:57:59 +0000 |
commit | 742f66e7367369abaefd2a5f8d1f7de448f1b997 (patch) | |
tree | 0b605ce6ca2df0e0fa8c1f9dca1584723dc1a75f | |
parent | d9bb58007e769e747896eb134370d08d8e250123 (diff) | |
download | gcc-742f66e7367369abaefd2a5f8d1f7de448f1b997.zip gcc-742f66e7367369abaefd2a5f8d1f7de448f1b997.tar.gz gcc-742f66e7367369abaefd2a5f8d1f7de448f1b997.tar.bz2 |
complex (__complex_exp, pow): Specify the template parameter in calls to std::polar, for expression templates.
2014-04-11 Marc Glisse <marc.glisse@inria.fr>
* include/std/complex (__complex_exp, pow): Specify the template
parameter in calls to std::polar, for expression templates.
From-SVN: r209321
-rw-r--r-- | libstdc++-v3/ChangeLog | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/std/complex | 8 |
2 files changed, 9 insertions, 4 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 0aa6dc0..1af136e 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2014-04-11 Marc Glisse <marc.glisse@inria.fr> + + * include/std/complex (__complex_exp, pow): Specify the template + parameter in calls to std::polar, for expression templates. + 2014-04-10 Andreas Schwab <schwab@suse.de> * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Remove TLS diff --git a/libstdc++-v3/include/std/complex b/libstdc++-v3/include/std/complex index 34fa1dd..5849cd5 100644 --- a/libstdc++-v3/include/std/complex +++ b/libstdc++-v3/include/std/complex @@ -735,7 +735,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Tp> inline complex<_Tp> __complex_exp(const complex<_Tp>& __z) - { return std::polar(exp(__z.real()), __z.imag()); } + { return std::polar<_Tp>(exp(__z.real()), __z.imag()); } #if _GLIBCXX_USE_C99_COMPLEX inline __complex__ float @@ -995,7 +995,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return pow(__x.real(), __y); complex<_Tp> __t = std::log(__x); - return std::polar(exp(__y * __t.real()), __y * __t.imag()); + return std::polar<_Tp>(exp(__y * __t.real()), __y * __t.imag()); } template<typename _Tp> @@ -1032,8 +1032,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline complex<_Tp> pow(const _Tp& __x, const complex<_Tp>& __y) { - return __x > _Tp() ? std::polar(pow(__x, __y.real()), - __y.imag() * log(__x)) + return __x > _Tp() ? std::polar<_Tp>(pow(__x, __y.real()), + __y.imag() * log(__x)) : std::pow(complex<_Tp>(__x), __y); } |