diff --git a/code/math/implementation.lisp b/code/math/implementation.lisp index a5715dca..97e20288 100644 --- a/code/math/implementation.lisp +++ b/code/math/implementation.lisp @@ -24,17 +24,17 @@ (defun round-to-odd/32 (g cp) (let ((p (* g cp))) (logior (ldb (byte 32 64) p) - (if (> (ldb (byte 32 32) p) 1) 1 0)))) + (if (> p #x1FFFFFFFF) 1 0)))) (defun round-to-odd/64 (g cp) (let ((p (* g cp))) (logior (ldb (byte 64 128) p) - (if (> (ldb (byte 64 64) p) 1) 1 0)))) + (if (> p #x1FFFFFFFFFFFFFFFF) 1 0)))) (defun round-to-odd/128 (g cp) (let ((p (* g cp))) (logior (ldb (byte 128 256) p) - (if (> (ldb (byte 128 128) p) 1) 1 0)))) + (if (> p #x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF) 1 0)))) (defconstant +expt10/min-exponent/32+ -31)