I want to use the packages bitstring
and mpmath
(or any other way to guarantee an arbitrarily set output precision and specified rounding mode) to calculate values of rcp
, sqrt
, sin
, co
s, ln
, exp
,... on float inputs given as binary bitstring
s and get a binary bitstring
answer.
My go-to for this is MPFR in C, but I want to explore Python's floating point high-precision packages, hoping for easier handling. My first problem is how to reverse the following decimal float to bitstring
conversion:
>>> from bitstring import *
>>> a = BitArray(float=1.2,length=32)
>>> a.bin
'00111111100110011001100110011010'
i.e. how to feed '00111111100110011001100110011010'
to either bitstring
or mpmath
in a way that it interprets it as (just over) 1.2
and then feed that to a function such as sin
, cos
, or ln
(turning my answer into a bitstring
again).
I'm finding it hard to learn about binary input from the Python bitstring
/mpmath
documentation. It only says about the difficulties of decimal float representation, but not how to bypass these simply inputting exact binary floats.