$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [lexical_cast][math] can't unconditionally call math::changesign with long double
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2013-02-24 04:50:36
On Sunday 24 February 2013 09:51:27 Antony Polukhin wrote:
> 2013/2/24 Jeroen Habraken <vexocide_at_[hidden]>:
> > On 23 February 2013 18:53, Eric Niebler <eniebler_at_[hidden]> wrote:
> >> lexical_cast is using math::changesign with long double regardless of
> >> whether BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS is defined or not. This
> >> is causing Boost.Test build problems (see here http://tinyurl.com/af5453h
> >> ).
> >>
> >> I'm pretty sure this is a bug in lexical_cast, so I've opened a ticket:
> >> https://svn.boost.org/trac/boost/ticket/8162
>
> So, portable way of changing sign is just to multiply on -1 ?
You could toggle the most significant bit, if FP numbers have IEEE 754 format
(which should be common nowdays). Unlike multiplication, this would keep the
precision and is faster.