Boost logo

Boost :

From: Gero Peterhoff (g.peterhoff_at_[hidden])
Date: 2021-01-31 13:17:29


Hello Christopher,
I just noticed that my simple patch with base=0 doesn't work. It is probably not that simple.
https://godbolt.org/z/8Me15Y

regards
Gero

Am 30.01.21 um 16:22 schrieb Christopher Kormanyos:
>>> the pow-function pow(scalar, complex) in
>>> boost/math/cstdfloat/cstdfloat_complex_std.hpp
>>> get wrong result.
>
>> Thanks Gero,
>> I am on the go, but later today, I'll add this
>> as an issue in Git and kick off the discussion
>> for the fix with the colleagues.
>
> A new issue can be found here, but it
> is not clear which code example elicits
> the unexpected behavior.
>
> https://github.com/boostorg/math/issues/506 <https://github.com/boostorg/math/issues/506>
>
>
> On Thursday, January 28, 2021, 12:55:59 PM GMT+1, Gero Peterhoff via Boost <boost_at_[hidden]> wrote:
>
>
> Hello,
> the pow-function pow(scalar, complex) in boost/math/cstdfloat/cstdfloat_complex_std.hpp get wrong result.
>
> Current implementation:
> inline complex<BOOST_CSTDFLOAT_EXTENDED_COMPLEX_FLOAT_TYPE> pow(const BOOST_CSTDFLOAT_EXTENDED_COMPLEX_FLOAT_TYPE& x,
>                                                                 const complex<BOOST_CSTDFLOAT_EXTENDED_COMPLEX_FLOAT_TYPE>& a)
> {
>   return std::exp(a * std::log(x));
> }
>
> I think that's correct:
> inline complex<BOOST_CSTDFLOAT_EXTENDED_COMPLEX_FLOAT_TYPE> pow(const BOOST_CSTDFLOAT_EXTENDED_COMPLEX_FLOAT_TYPE& x,
>                                                                 const complex<BOOST_CSTDFLOAT_EXTENDED_COMPLEX_FLOAT_TYPE>& a)
> {
>   return std::exp(a * std::log(complex<BOOST_CSTDFLOAT_EXTENDED_COMPLEX_FLOAT_TYPE>(x)));
> }
>
> regards
> Gero
>
>
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost <http://lists.boost.org/mailman/listinfo.cgi/boost>




Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk