Export primitive flonum-denormalize as flo:ldexp and flo:scalbn.
authorTaylor R Campbell <campbell@mumble.net>
Sat, 27 Oct 2018 02:21:06 +0000 (02:21 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Sat, 27 Oct 2018 02:21:07 +0000 (02:21 +0000)
These are the familiar -- and when FLT_RADIX = 2, equivalent -- names
for the operation in libm.

`Denormalize' is not right: neither does it turn a normal number into
a subnormal, nor does it put anything into a canonical interval like
[1/2, 1) or [1, 2).  I personally favour `shift' -- it is, in Z, the
same as the bitwise shift operation.  But unless anyone else wants to
join me against this windmill I'll just stay with the familiar if
ugly libm names.

src/runtime/primitive-arithmetic.scm
src/runtime/runtime.pkg

index 62729665c7aa0d2a56206cdd4a2e35c4541c08f3..aa00cf993fe788f695576cc51ee40d2110266c27 100644 (file)
@@ -200,6 +200,7 @@ USA.
   (flo:cbrt flonum-cbrt 1)
   (flo:hypot flonum-hypot 2)
   (flo:expt flonum-expt 2)
+  (flo:denormalize flonum-denormalize 2)
   (flo:lgamma flonum-lgamma 1)
   (flo:gamma flonum-gamma 1)
   (flo:erf flonum-erf 1)
index 3a05dd288b2667ee2fb7121be9bf70161b51fd92..0ca3cd3d8076fcf65e0734bc0b60b78b786025f6 100644 (file)
@@ -243,6 +243,8 @@ USA.
          (smallest-fixnum fix:smallest-value))
   (export ()
          (exact-integer? int:integer?)
+         (flo:ldexp flo:denormalize)
+         (flo:scalbn flo:denormalize)
          ->flonum
          exact-integer-sqrt
          fix:*