$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [review] Multiprecision review (June 8th - 17th, 2012)
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2012-06-29 15:42:41
AMDG
On 06/25/2012 10:44 AM, John Maddock wrote:
>>
>> * line 423: (std::numeric_limits<T>::digits + 1) * 1000L
>> This limits the number of bits to LONG_MAX/1000.
>> I'd like there to be some way to know that as
>> long as I use less than k bits, the library
>> won't have any integer overflow problems. k
>> can depend on INT_MAX, LONG_MAX, etc, but the
>> implementation limits need to be clearly documented
>> somewhere. I really hate the normal ad hoc
>> situation where you just ignore the problem and
>> hope that all the values are small enough to avoid
>> overflow.
>
> If there are really more digits than fit in a long then we'll likely
> have other issues - such as not enough memory to store them all in -
> however, I've added a static_assert and a note to this effect.
>
Taking into account the fact that
numeric_limits::digits is in bits
and the extra factor of 1000, it
only takes 500 KB to run into a
problem when long is 32 bits. This
is small enough that running out
of memory is not necessarily an issue.
In Christ,
Steven Watanabe