diff options
| author | jlquinn <jlquinn@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-22 04:57:46 +0000 |
|---|---|---|
| committer | jlquinn <jlquinn@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-22 04:57:46 +0000 |
| commit | d6782d58350eef45e51556dfdd8dee620c2f4dda (patch) | |
| tree | f76ebc4c815b88c0e3338e18655c64f0fec362b2 | |
| parent | e48d0f41d570c6c32e6ee253c7bba6e8a4d0d4d8 (diff) | |
| download | ppe42-gcc-d6782d58350eef45e51556dfdd8dee620c2f4dda.tar.gz ppe42-gcc-d6782d58350eef45e51556dfdd8dee620c2f4dda.zip | |
2003-03-21 Jerry Quinn <jlquinn@optonline.net>
PR libstdc++/5730
* include/bits/c++config (_GLIBCPP_FAST_MATH): Define.
* include/std/std_complex.h (norm): Use faster,
less accurate computation for builtin float types under --fast-math.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64701 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | libstdc++-v3/ChangeLog | 7 | ||||
| -rw-r--r-- | libstdc++-v3/include/bits/c++config | 7 | ||||
| -rw-r--r-- | libstdc++-v3/include/std/std_complex.h | 2 |
3 files changed, 15 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 71793c6d065..30583b0d7ad 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2003-03-21 Jerry Quinn <jlquinn@optonline.net> + + PR libstdc++/5730 + * include/bits/c++config (_GLIBCPP_FAST_MATH): Define. + * include/std/std_complex.h (norm): Use faster, + less accurate computation for builtin float types under --fast-math. + 2003-03-21 Magnus Fromreide <gnats@magfr.user.lysator.liu.se> * testsuite/testsuite_hooks.h: Fix warning nits. diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config index f833b41c44a..829fe7eca26 100644 --- a/libstdc++-v3/include/bits/c++config +++ b/libstdc++-v3/include/bits/c++config @@ -87,6 +87,13 @@ #error __USE_MALLOC should never be defined. Read the release notes. #endif +// Create a boolean flag to be used to determine if --fast-math is set. +#ifdef __FAST_MATH__ +#define _GLIBCPP_FAST_MATH 1 +#else +#define _GLIBCPP_FAST_MATH 0 +#endif + // The remainder of the prewritten config is mostly automatic; all the // user hooks are listed above. diff --git a/libstdc++-v3/include/std/std_complex.h b/libstdc++-v3/include/std/std_complex.h index 955a12ca249..87e4bcb4d26 100644 --- a/libstdc++-v3/include/std/std_complex.h +++ b/libstdc++-v3/include/std/std_complex.h @@ -456,7 +456,7 @@ namespace std inline _Tp norm(const complex<_Tp>& __z) { - return _Norm_helper<__is_floating<_Tp>::_M_type>::_S_do_it(__z); + return _Norm_helper<__is_floating<_Tp>::_M_type && !_GLIBCPP_FAST_MATH>::_S_do_it(__z); } template<typename _Tp> |

