Skip to main content

softfloat and softposit in python

Project description

sfpy

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

>>> 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

See BUILDING.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
sfpy-0.4.2-cp27-cp27m-manylinux1_x86_64.whl (763.5 kB) Copy SHA256 hash SHA256 Wheel cp27
sfpy-0.4.2-cp27-cp27mu-manylinux1_x86_64.whl (763.5 kB) Copy SHA256 hash SHA256 Wheel cp27
sfpy-0.4.2-cp34-cp34m-manylinux1_x86_64.whl (846.3 kB) Copy SHA256 hash SHA256 Wheel cp34
sfpy-0.4.2-cp35-cp35m-manylinux1_x86_64.whl (841.0 kB) Copy SHA256 hash SHA256 Wheel cp35
sfpy-0.4.2-cp36-cp36m-manylinux1_x86_64.whl (909.0 kB) Copy SHA256 hash SHA256 Wheel cp36
sfpy-0.4.2-cp37-cp37m-manylinux1_x86_64.whl (894.6 kB) Copy SHA256 hash SHA256 Wheel cp37

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page