
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