jrmuizel / pyunum

Python port of the Mathematica unum prototype from "The End of Error"
52 stars 11 forks source link

This is a python port of the Mathematica unum prototype described in John Gustafson's The End of Error: Unum Computing available here: https://www.crcpress.com/product/isbn/9781482239867

It currently implements all that is needed for polynomial evalution and brute-force solving. The goal is largey to follow the structure of the original Mathematica version, but at the same time keep it mostly readable Python.

The basic format of a Unum is:

sign bit | exponent bits | fraction bits | ubit | exponent size | fraction size

where the sizes of exponent bits and fraction bits fields depends on the exponent size and fraction size fields. And the size of the exponent size and fraction size fields is determined by the environment.

Some other implementations: https://github.com/REX-Computing/unumjl https://github.com/SFrijters/unum-d https://github.com/tbreloff/Unums.jl

See also: http://juliacomputing.com/blog/2016/03/29/unums.html