projects
/
ieee754fpu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5d04b89
)
guessing / experimenting...
author
Luke Kenneth Casson Leighton
<lkcl@lkcl.net>
Mon, 29 Apr 2019 14:12:19 +0000
(15:12 +0100)
committer
Luke Kenneth Casson Leighton
<lkcl@lkcl.net>
Mon, 29 Apr 2019 14:12:19 +0000
(15:12 +0100)
src/add/fsqrt.py
patch
|
blob
|
history
diff --git
a/src/add/fsqrt.py
b/src/add/fsqrt.py
index 4c6d07c6aec6f451d4ac1a3acd447dc019f71150..3b6d1f239ee19c1ba5f669ade6f55d64e1e897fb 100644
(file)
--- a/
src/add/fsqrt.py
+++ b/
src/add/fsqrt.py
@@
-25,7
+25,7
@@
def sqrt(num):
Q = 0
R = 0
r = 0 # remainder
Q = 0
R = 0
r = 0 # remainder
- for i in range(
15
, -1, -1): # negative ranges are weird...
+ for i in range(
64
, -1, -1): # negative ranges are weird...
if (R>=0):
if (R>=0):
@@
-96,9
+96,13
@@
def fsqrt_test(x):
s, e, m = decode_fp32(xbits)
print("x decode", s, e, m, hex(m))
s, e, m = decode_fp32(xbits)
print("x decode", s, e, m, hex(m))
- #m |= 1<<23
+ m |= 1<<24 # set top bit (the missing "1" from mantissa)
+ m <<= 24
sm, se = main(m, e)
sm, se = main(m, e)
+ sm >>= 1
+ sm = get_mantissa(sm)
+ #sm += 2
print("our sqrt", s, se, sm, hex(sm), bin(sm))
sq_xbits = sq_test.bits
print("our sqrt", s, se, sm, hex(sm), bin(sm))
sq_xbits = sq_test.bits
@@
-122,8
+126,14
@@
if __name__ == '__main__':
x = Float32(1234.123456789)
fsqrt_test(x)
x = Float32(1234.123456789)
fsqrt_test(x)
+ x = Float32(32.1)
+ fsqrt_test(x)
+ x = Float32(16.0)
+ fsqrt_test(x)
x = Float32(8.0)
fsqrt_test(x)
x = Float32(8.0)
fsqrt_test(x)
+ x = Float32(8.5)
+ fsqrt_test(x)
"""
"""