add convenience routines
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 28 Apr 2019 13:52:11 +0000 (14:52 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 28 Apr 2019 13:52:11 +0000 (14:52 +0100)
src/add/fsqrt.py

index c2d32a7acbbdf4c3e3cb84d0465be4ba52bcc392..f82e8dc6d98bae03d7d3a2fe65986a5426e2940f 100644 (file)
@@ -60,6 +60,17 @@ def set_exponent(x, e):
 def get_sign(x):
     return ((x & 0x80000000) >> 31)
 
+# convert FP32 to s/e/m
+def create_fp32(s, e, m):
+    """ receive sign, exponent, mantissa, return FP32 """
+    return set_exponent((s << 31) | get_mantissa(m))
+
+# convert s/e/m to FP32
+def decode_fp32(x):
+    """ receive FP32, return sign, exponent, mantissa """
+    return get_sign(x), get_exponent(x), get_mantissa(x)
+
+
 # main function, takes mantissa and exponent as separate arguments
 # returns a tuple, sqrt'd mantissa, sqrt'd exponent