
Soren Holstebroe wrote:
For example, does a(24bit) x b(24bit) -> c(24bit), or c(48bit)?
My preference is to be explicit about these issues, meaning 24bit x 24bit -> 24 bit. If you want more, you cast the operands first. Similarly there were some questions on division.
In my template N bit x N bit equals N bit per default. The number one design criteria was speed. Why would you use fixed point instead of floats if not for speed?
For reproducibility. I have several times wanted to not use floating point because its behaviour may change depending on architecture / compiler / compiler options. In some cases fixed point would have been fine, and it would be nice to see it in Boost. The alternative seems to be to roll my own fixed (or floating!) point type, which would be more difficult and error-prone and probably slower. Nevertheless, I think N bit x N bit equals N bit is sensible. John Bytheway