diff options
author | Paolo Carlini <pcarlini@suse.de> | 2005-05-30 22:02:30 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2005-05-30 22:02:30 +0000 |
commit | d5c405cc717dc39fb20b9dc013400f4da9a143e4 (patch) | |
tree | 57ba37df114b40ae6ef22d404832e6410268cfdd | |
parent | 7f177cf707633d9eafbd184d107bbc002a791277 (diff) | |
download | gcc-d5c405cc717dc39fb20b9dc013400f4da9a143e4.zip gcc-d5c405cc717dc39fb20b9dc013400f4da9a143e4.tar.gz gcc-d5c405cc717dc39fb20b9dc013400f4da9a143e4.tar.bz2 |
std_complex.h (log(const complex<_Tp>&)): When _GLIBCXX_USE_C99_COMPLEX, forward to __builtin_clog/clogf/clogl.
2005-05-30 Paolo Carlini <pcarlini@suse.de>
* include/std/std_complex.h (log(const complex<_Tp>&)): When
_GLIBCXX_USE_C99_COMPLEX, forward to __builtin_clog/clogf/clogl.
From-SVN: r100376
-rw-r--r-- | libstdc++-v3/ChangeLog | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/std/std_complex.h | 12 |
2 files changed, 12 insertions, 5 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index a572b0b..3135700 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2005-05-30 Paolo Carlini <pcarlini@suse.de> + + * include/std/std_complex.h (log(const complex<_Tp>&)): When + _GLIBCXX_USE_C99_COMPLEX, forward to __builtin_clog/clogf/clogl. + 2005-05-28 Paolo Carlini <pcarlini@suse.de> Revert: diff --git a/libstdc++-v3/include/std/std_complex.h b/libstdc++-v3/include/std/std_complex.h index 6c1e003..8002075 100644 --- a/libstdc++-v3/include/std/std_complex.h +++ b/libstdc++-v3/include/std/std_complex.h @@ -749,7 +749,7 @@ namespace std __complex_log(const complex<_Tp>& __z) { return complex<_Tp>(log(std::abs(__z)), std::arg(__z)); } - /* +#if _GLIBCXX_USE_C99_COMPLEX inline __complex__ float __complex_log(__complex__ float __z) { return __builtin_clogf(__z); } @@ -758,14 +758,16 @@ namespace std inline __complex__ long double __complex_log(const __complex__ long double& __z) - { return __builtin_clogl(__z); } */ + { return __builtin_clogl(__z); } - // FIXME: Currently we don't use built-ins for log() because of some - // obscure user name-space issues. So, we use the generic version - // which is why we don't use __z.__rep() in the call below. + template<typename _Tp> + inline complex<_Tp> + log(const complex<_Tp>& __z) { return __complex_log(__z.__rep()); } +#else template<typename _Tp> inline complex<_Tp> log(const complex<_Tp>& __z) { return __complex_log(__z); } +#endif template<typename _Tp> inline complex<_Tp> |