aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Glisse <marc.glisse@inria.fr>2014-04-11 20:57:59 +0200
committerMarc Glisse <glisse@gcc.gnu.org>2014-04-11 18:57:59 +0000
commit742f66e7367369abaefd2a5f8d1f7de448f1b997 (patch)
tree0b605ce6ca2df0e0fa8c1f9dca1584723dc1a75f
parentd9bb58007e769e747896eb134370d08d8e250123 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--libstdc++-v3/include/std/complex8
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);
}