Boost logo

Boost :

Subject: Re: [boost] Interest for a Fixed Point Arithmetics library
From: Christopher Kormanyos (e_float_at_[hidden])
Date: 2018-01-03 20:31:28

> Is this proposal stalled? I vaguely remember a fixed-point> proposal but I don't remember the details.
In my opinion, the proposal was halted on purpose,or not forced to continue might be a better way ofputting it...
There were several reasons.
1) There was some, but not much, interest in the review.2) There is a slight conflict between the proposedboost::Fixed_point and the work of C++ standards groups,Mr. Macfarlane and SG14. In the Boost proposal,bound arithmetic is the default (unbound not supported).Whereas in the proposal for the standard, unboundarithmetic is the default, but both bound and unboundare supported.3) The work for Boost only supports 1 fixed-point type(similar to negatable). But the standards work supports4 types used for both signed and unsigned manipulationof both fractional and integral representations.
4) The work for Boost only supports 2 rounding modes.But the standards work supports 5.5) A few other details.

At the time, it was difficult for us to overcomethe slight discrepancies in these two bodies ofwork, in particular number 2 above.
The work for Boost is, nonetheless, available.It is tested and documented, but onlyfor what it does.

Best regards, Chris

    On Sunday, December 31, 2017, 5:14:06 PM GMT+1, Andrey Semashev via Boost <boost_at_[hidden]> wrote:
 On December 31, 2017 6:50:01 PM "Paul A. Bristow via Boost"
<boost_at_[hidden]> wrote:

>> -----Original Message-----
>> From: Boost [mailto:boost-bounces_at_[hidden]] On Behalf Of Julien
>> Vernay via Boost
>> Sent: 30 December 2017 18:30
>> To: boost_at_[hidden]
>> Cc: Julien Vernay
>> Subject: [boost] Interest for a Fixed Point Arithmetics library
>> Hello everybody.
>> I am working on a project that needs and can use fixed point numbers, so I
>> started searching for a library implementing fixed point numbers, but I
>> didn't find anything. So I was wondering if people would need fixed point
>> arithmetics, and here I am.
>> The aim of this FixedPointNumber is to fix the point at compile-time using
>> template, and having another template argument for the underlying type.
>> So we have :
>>    template<typename T, size_t N>
>>    class FixedPointNumber {
>>        T value;
>>    public:
>>        //interface
>>    };
>> The N last bits of value is the decimal part : so to convert a
>> FixedPointNumber to an int, we need only to use a bitshift operator (and
>> same for construction from int).
>> sizeof(FixedPointNumber<T,N>) == sizeof(T) , so there is no overhead in
>> this implementation.
>> Arithmetic and relational operators will be implemented.
>> Multiplication needs one int multiplication and one bit shift.
>> Division needs one int division and one bit shift.
>> There is only one value for zero.
>> Sign can be extracted with Most Significant Bit.
>> I have already a basic implementation but if it interests more people I
>> will do a proper implementation.
> An implementation of fixed-point has been written (and is in real-life use)
> by Chris Kormanyos
> see
> this uses a specified (fixed at compile-time) fixed-point format.  Big
> formats are possible and it works seamlessly with many
> Boost.Math functions, often using constexpr for compile-time computations).
> It did not receive much attention when tentatively proposed for Boost.

Is this proposal stalled? I vaguely remember a fixed-point proposal but I
don't remember the details.

I'm interested in a fast compile-time configured fixed-point type as I had
to write one for one project.

Unsubscribe & other changes:

Boost list run by bdawes at, gregod at, cpdaniel at, john at