Boost logo

Boost :

From: Anthony Williams (anthony.ajw_at_[hidden])
Date: 2008-08-01 02:54:24

"John C. Femiani" <john.femiani_at_[hidden]> 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):

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 Williams            | Just Software Solutions Ltd
Custom Software Development |
Registered in England, Company Number 5478976.
Registered Office: 15 Carrallack Mews, St Just, Cornwall, TR19 7UL

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