From f657d3e8750395d90d650acdc43a6a2145976a00 Mon Sep 17 00:00:00 2001 From: Sei Lisa Date: Mon, 16 Jan 2017 23:33:49 +0100 Subject: [PATCH] Use hex notation for a denormal float. --- lslopt/lslbasefuncs.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lslopt/lslbasefuncs.py b/lslopt/lslbasefuncs.py index 71350ca..5668d74 100644 --- a/lslopt/lslbasefuncs.py +++ b/lslopt/lslbasefuncs.py @@ -1643,8 +1643,9 @@ def llRotBetween(v1, v2): ddc2 = dot*dot + csq - if ddc2 >= 1.5e-45: - if csq >= 1.5e-45: + DenormalStart = float.fromhex('0x1p-149') + if ddc2 >= DenormalStart: + if csq >= DenormalStart: s = math.sqrt(ddc2) + dot; m = math.sqrt(csq + s*s); return Quaternion(F32((cross[0]/m, cross[1]/m, cross[2]/m, s/m))) @@ -1653,7 +1654,7 @@ def llRotBetween(v1, v2): if dot > 0: return ZERO_ROTATION m = math.sqrt(v1[0]*v1[0] + v1[1]*v1[1]) - if m >= 1.5e-45: + if m >= DenormalStart: return Quaternion(F32((v1[1]/m, -v1[0]/m, 0., 0.))) return Quaternion((1., 0., 0., 0.)) return ZERO_ROTATION