Boost logo

Boost :

Subject: Re: [boost] [fixed_point] Request for interest in a binary fixed point library
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2012-04-10 19:01:41


Le 10/04/12 22:54, Christopher Kormanyos a écrit :
>>> the recent discussion on the MultiplePrecission Arithmetic library has show that some people has its ow fixed point library.
>
>>> Is there an interest in a Boost library having as base
>>> http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3352.html?
>> Vicente
> Yes! Absolutely interested!
> I use fixed-point extensively with hard real-time microcontroller systems.
> I am particularly interested in stuff like a 7.8 and 15.16 signed split.
What 7.8 stands for? 7 bits for the integer part and 8 for the
fractional part?
I guess you prefer a specific class for signed fixed_points and not a
template parameter.

sfp<7,8>

versus

fp<int16_t, 7,8>

Do you mind if the library propose some meta-function to specify
different formats, e.g.

format_i_f<7,8>::type and format_i_f<15,16>::type

An alternative design is to have a format parameter, so for example the
user could use specific formats

fp<i_f<7,8>> a;
fp<r_r<7,-8>> b;

where i_f has as parameters the number of integral and fractional bits
and r_r has as parameters the range and resolution. Currently my
prototype and the C++ proposal uses this r_r format. Others use the
total number of bits (width including the sign) and the fractional w_f

fp<w_f<16,8>> b;

The advantage of the meta-function is that the library is open to
unknown formats. The liability is the need of ::type (not realy with
template aliases)

The liability of the format template parameter is that while
fp<i_f<7,8>> and fp<r_r<7,-8>> are equivalent they are not the same type
and again ::type should be needed.

My preference is of course the implicit r_r format and the use of
meta-functions for the other formats.
> I always use signed fixed-point and always use a split right
> down the middle of the representation. It keeps the math simple
> and fast.
Do you mind if the rounding strategy is a template parameter? An
enumeration or and open policy?

Do you have any preferences for the namespace and class names?
>
> Good luck with this project. Looking forward to it.
> I will look into the prelim code later.
>
Any comment is welcome.

Best,
Vicente


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