[patch] std::polar requires non-negative rho
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4383.html#2459 Voted into the WP in Lenexa. Tested powerpc64le-linux, comitted to trunk. commit 9bf3b9ea20334711ecdced656323f69959521a82 Author: Jonathan Wakely Date: Wed May 13 14:18:03 2015 +0100 * include/std/complex (polar): Check for negative rho (LWG 2459). diff --git a/libstdc++-v3/include/std/complex b/libstdc++-v3/include/std/complex index 585683c..f2a6cf9 100644 --- a/libstdc++-v3/include/std/complex +++ b/libstdc++-v3/include/std/complex @@ -667,7 +667,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template inline complex<_Tp> polar(const _Tp& __rho, const _Tp& __theta) -{ return complex<_Tp>(__rho * cos(__theta), __rho * sin(__theta)); } +{ + _GLIBCXX_DEBUG_ASSERT( __rho >= 0 ); + return complex<_Tp>(__rho * cos(__theta), __rho * sin(__theta)); +} template inline complex<_Tp>
Re: [patch] std::polar requires non-negative rho
2015-05-13 15:32 GMT+02:00 Jonathan Wakely : > http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4383.html#2459 > > Voted into the WP in Lenexa. > > Tested powerpc64le-linux, comitted to trunk. What about assertions regarding non-NAN rho and finite theta, as decided for by the LWG 2439? - Daniel
Re: [patch] std::polar requires non-negative rho
On 13/05/15 15:36 +0200, Daniel Krügler wrote: 2015-05-13 15:32 GMT+02:00 Jonathan Wakely : http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4383.html#2459 Voted into the WP in Lenexa. Tested powerpc64le-linux, comitted to trunk. What about assertions regarding non-NAN rho and finite theta, as decided for by the LWG 2439? I don't know how to reliably test those conditions. What if _Tp is not a floating-point type? The assertion I added addresses the original issue as reported numerous times to libc++. I don't really care if it doesn't deal with the additional preconditions added in Cologne, as users don't seem to expect a meaningful answer for NaNs and infinities.
Re: [patch] std::polar requires non-negative rho
On Wed, 13 May 2015, Daniel Krügler wrote: 2015-05-13 15:32 GMT+02:00 Jonathan Wakely : http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4383.html#2459 Voted into the WP in Lenexa. Tested powerpc64le-linux, comitted to trunk. What about assertions regarding non-NAN rho and finite theta, as decided for by the LWG 2439? non-NAN rho is already covered by rho >= 0. -- Marc Glisse
Re: [patch] std::polar requires non-negative rho
2015-05-13 16:05 GMT+02:00 Marc Glisse : > On Wed, 13 May 2015, Daniel Krügler wrote: >> What about assertions regarding non-NAN rho and finite theta, as >> decided for by the LWG 2439? > > non-NAN rho is already covered by rho >= 0. Agreed on that. - Daniel