
Soren Holstebroe wrote:
Some years ago I wrote a fixed point template for transparent fixed point integer arithmetics and conversion.
To me, "fixed point" => !"integer".
It worked well and performance was equal to that of native integer types, at least in MS VC++. The template takes a base type and the number of bits reserved for the fraction part and meta-programming works out boundary safe arithmetics and conversions. The template has been used in an image processing library, but lately I used it for seamless conversion of a 4+28 bit fixed point MAD-library decoded mp3-stream to the output buffer of the sound system, with a detour through a float-based sound effect.
Would there be public interest in a template like that in the boost library?
I proposed something like this a while ago. The feedback suggested that most potential users wanted more than I was offering. In particular, saturating or otherwise detecting overflows seemed to be required. I did have a go at implementing this (using a saturating int class as the implementation type) but I'm unenthusiastic about proposing something that I'm not myself using. Other people suggested that it would be better to use expression templates and I seem to recall that someone was actually working on that. It was also suggested that I ought to provide all of the features that <cmath> provides for floating point. Regards, Phil.