re PR libstdc++/5730 (complex<double>::norm() -- huge slowdown from egcs-2.91.66)
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. From-SVN: r64701
This commit is contained in:
parent
d9b2742a3d
commit
442c0874ea
@ -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>
|
2003-03-21 Magnus Fromreide <gnats@magfr.user.lysator.liu.se>
|
||||||
|
|
||||||
* testsuite/testsuite_hooks.h: Fix warning nits.
|
* testsuite/testsuite_hooks.h: Fix warning nits.
|
||||||
|
@ -87,6 +87,13 @@
|
|||||||
#error __USE_MALLOC should never be defined. Read the release notes.
|
#error __USE_MALLOC should never be defined. Read the release notes.
|
||||||
#endif
|
#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
|
// The remainder of the prewritten config is mostly automatic; all the
|
||||||
// user hooks are listed above.
|
// user hooks are listed above.
|
||||||
|
|
||||||
|
@ -456,7 +456,7 @@ namespace std
|
|||||||
inline _Tp
|
inline _Tp
|
||||||
norm(const complex<_Tp>& __z)
|
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>
|
template<typename _Tp>
|
||||||
|
Loading…
Reference in New Issue
Block a user