update readme
[sfpy.git] / README.md
1 # sfpy
2 softfloat and softposit in Python
3 * support for softposit posit8, quire8, posit16, and quire16
4 * no softfloat support yet, still WIP
5 ## Demo
6 ```
7 >>> from posit import Posit16, Quire16
8 >>> Posit16(1.3) + Posit16(1.4)
9 Posit16(2.7001953125)
10 >>> x = Posit16(7)
11 >>> x
12 Posit16(1.7881393432617188e-07)
13 >>> x += Posit16(9)
14 >>> x
15 Posit16(4.76837158203125e-07)
16 >>> q = Quire16()
17 >>> q.fdp_add(Posit16(11.0), Posit16(2.0))
18 >>> q
19 uA.ui : 29056
20 Quire16(22.0)
21 >>> q.p16
22 uA.ui : 29056
23 Posit16(22.0)
24 ```
25 ## Building
26 The cython module can be built in place in the usual way:
27 `python setup.py build_ext --inplace`
28 This requires the submodules to be checked out, and the static library `SoftPosit/build/Linux-x86_64-GCC/softposit.a` to be built. Note that in order for cython to be able to build the shared object for the module, the static library must be compiled with -fPIC, which currently requires modifying the appropriate Makefile manually.