Update README.md
authorBill <bill.zorn@gmail.com>
Tue, 21 Aug 2018 01:18:07 +0000 (18:18 -0700)
committerGitHub <noreply@github.com>
Tue, 21 Aug 2018 01:18:07 +0000 (18:18 -0700)
README.md

index 2755be8a9ed6eec3ac1c6a39d36a17d888e31353..54bfab458f92b03514bf31ee2334ed15d6cfecac 100644 (file)
--- a/README.md
+++ b/README.md
@@ -3,9 +3,61 @@ softfloat and softposit in Python
   * support for softfloat float16, float32, and float64
   * support for softposit posit8, quire8, posit16, and quire16
 
+## Installation
+On most linux distros with CPython 2.7, 3.4, 3.5, 3.6, or 3.7, sfpy should work out of the box:
+
+```
+pip install sfpy
+```
+
+Under the hood, sfpy uses Cython to create bindings for the softposit and softfloat C libraries.
+The building instructions are tested on Ubuntu 16.04 - for other platforms they may need some
+adaptation.
+
 ## Demo
 ```
-# WIP
+>>> import sfpy
+>>> from sfpy import *
+>>> a, b = Float16(1.3), Float16(1.4)
+>>> a * b - a / b
+Float16(0.89208984375)
+>>> sfpy.float.flag_get_inexact()
+True
+>>> a += b
+>>> a
+Float16(2.69921875)
+>>>
+>>> x, y = Posit16(3.0), Posit16(3)
+>>> x
+Posit16(3.0)
+>>> x.bits
+22528
+>>> y
+Posit16(2.9802322387695312e-08)
+>>> y.bits
+3
+>>> x * y
+Posit16(8.940696716308594e-08)
+>>> acc = Posit16(0)
+>>> for i in range(10000):
+...   acc = acc.fma(x, y)
+... 
+>>> acc
+Posit16(1.9073486328125e-06)
+>>> acc.bits
+24
+>>> q = Quire16(0)
+>>> for i in range(10000):
+...   q.iqma(x, y)
+... 
+>>> q
+Quire16(0.00089263916015625)
+>>> q.bits
+64424509440000
+>>> q.to_posit()
+Posit16(0.00089263916015625)
+>>> q.to_posit().bits
+490
 ```
 
 ## Building