[Numpy-discussion] Fixed-point arithemetic...any solution yet?

Norbert Nemec Norbert.Nemec.list at gmx.de
Thu Dec 10 13:36:26 EST 2009



Dag Sverre Seljebotn wrote:
> I haven't heard of anything, but here's what I'd do:
>   - Use np.int64
>   - Multiply all inputs to my code with 10^6
>   - Divide all output from my code with 10^6
>   - If you need to debug-print and array, simply define something like
>
> FIXED_POINT_FACTOR = 10**6
>
> def printarr(x):
>      print x.astype(np.float) / FIXED_POINT_FACTOR
>
> Or am I missing something?
>   
Indeed, you are missing that internal multiplications have to take into 
account this factor as well. To prevent loss of precision, you would 
need int128 results and shift those correctly after the multiplication.




More information about the NumPy-Discussion mailing list