
"John C. Femiani" <john.femiani@asu.edu> writes:
Neal Becker wrote:
I have the beginning of a fixed-pt binary lib. Fixed-pt is popular in DSP applications. It is integer arithmetic, but keeping track of the binary pt.
Also, do your implementations for /= and *= actually round? You actually seem to be using the round policy for conversions, is that right? Have you looked at the numeric/conversion stuff? (I haven't grokked it yet).
The division throws away the lower "frac_bits" of the result: self operator/=(self const& x) { base_type tmp = (base_type)val / (base_type)x.val; val = tmp << (frac_bits); return *this; } I published a more fully-fledged fixed point type here a few months ago. You can get it from my website (along with a link to the DDJ article where I describe how it works): http://www.justsoftwaresolutions.co.uk/news/optimizing-applications-with-fix... It has a fixed number if integer and fractional bits (35.28). However, this allows it to support sin, cos, exp and log by using lookup tables. Anthony -- Anthony Williams | Just Software Solutions Ltd Custom Software Development | http://www.justsoftwaresolutions.co.uk Registered in England, Company Number 5478976. Registered Office: 15 Carrallack Mews, St Just, Cornwall, TR19 7UL