Add new primitive `flonum-denormalize'.
authorChris Hanson <org/chris-hanson/cph>
Mon, 25 Sep 1989 16:51:23 +0000 (16:51 +0000)
committerChris Hanson <org/chris-hanson/cph>
Mon, 25 Sep 1989 16:51:23 +0000 (16:51 +0000)
v7/src/microcode/artutl.c
v7/src/microcode/extern.h
v7/src/microcode/flonum.c
v7/src/microcode/version.h
v8/src/microcode/version.h

index 2ae505a666099bc806c16ce9486bbf95440236a3..7cb2a3a971307397c0e35719297bd4aa6498c04f 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/artutl.c,v 1.3 1989/09/24 16:15:01 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/artutl.c,v 1.4 1989/09/25 16:50:56 cph Exp $
 
 Copyright (c) 1989 Massachusetts Institute of Technology
 
@@ -150,7 +150,7 @@ bignum_to_flonum (bignum)
      ? (BIGNUM_TO_FLONUM (bignum))
      : SHARP_F);
 }
-
+\f
 Boolean
 flonum_integer_p (x)
      SCHEME_OBJECT x;
@@ -195,6 +195,16 @@ flonum_normalize (x)
   return (cons ((double_to_flonum (significand)),
                (long_to_integer ((long) exponent))));
 }
+
+SCHEME_OBJECT
+flonum_denormalize (x, e)
+     SCHEME_OBJECT x;
+     SCHEME_OBJECT e;
+{
+  extern double ldexp ();
+  return (double_to_flonum (ldexp ((FLONUM_TO_DOUBLE (x)),
+                                  ((int) (integer_to_long (e))))));
+}
 \f
 /* Generic Integer Operations */
 
index 2a86b0019d7594e205a7f1da14b0b2a848e2a415..0128d3b984dfc28e495c87bb4706059a69c9eb28 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/extern.h,v 9.34 1989/09/24 13:49:05 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/extern.h,v 9.35 1989/09/25 16:51:09 cph Exp $
 
 Copyright (c) 1987, 1988, 1989 Massachusetts Institute of Technology
 
@@ -173,6 +173,7 @@ extern SCHEME_OBJECT flonum_floor ();
 extern SCHEME_OBJECT flonum_ceiling ();
 extern SCHEME_OBJECT flonum_round ();
 extern SCHEME_OBJECT flonum_normalize ();
+extern SCHEME_OBJECT flonum_denormalize ();
 extern Boolean integer_zero_p ();
 extern Boolean integer_negative_p ();
 extern Boolean integer_positive_p ();
index 89e5b413186f74f31866fa97d61651ad6ba37157..707e711dffbc1e36ecea1ed3792a6b7b33bd5b2c 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/flonum.c,v 9.29 1989/09/24 15:12:57 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/flonum.c,v 9.30 1989/09/25 16:51:17 cph Exp $
 
 Copyright (c) 1987, 1988, 1989 Massachusetts Institute of Technology
 
@@ -259,5 +259,14 @@ DEFINE_PRIMITIVE ("FLONUM-NORMALIZE", Prim_flonum_normalize, 1, 1, 0)
   PRIMITIVE_HEADER (1);
   Set_Time_Zone (Zone_Math);
   CHECK_ARG (1, FLONUM_P);
-  PRIMITIVE_RETURN (flonum_normalize (ARG_REF (1))); 
+  PRIMITIVE_RETURN (flonum_normalize (ARG_REF (1)));
+}
+
+DEFINE_PRIMITIVE ("FLONUM-DENORMALIZE", Prim_flonum_denormalize, 2, 2, 0)
+{
+  PRIMITIVE_HEADER (2);
+  Set_Time_Zone (Zone_Math);
+  CHECK_ARG (1, FLONUM_P);
+  CHECK_ARG (1, INTEGER_P);
+  PRIMITIVE_RETURN (flonum_denormalize ((ARG_REF (1)), (ARG_REF (2))));
 }
index eb72e3e0432ba3fbe51d3d2022026c1d8ebe041c..a6a0d27a2060891c7b2d389a5164a9f1d8ccdef3 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/Attic/version.h,v 11.2 1989/09/24 13:50:06 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/Attic/version.h,v 11.3 1989/09/25 16:51:23 cph Exp $
 
 Copyright (c) 1988, 1989 Massachusetts Institute of Technology
 
@@ -46,7 +46,7 @@ MIT in each case. */
 #define VERSION                11
 #endif
 #ifndef SUBVERSION
-#define SUBVERSION     2
+#define SUBVERSION     3
 #endif
 
 #ifndef UCODE_TABLES_FILENAME
index 61ff454b92000b05696484ce8a1df81e7dcdbc6a..f88b690f62a8ba59fe882f8e2a1d54ded4794f84 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/version.h,v 11.2 1989/09/24 13:50:06 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/version.h,v 11.3 1989/09/25 16:51:23 cph Exp $
 
 Copyright (c) 1988, 1989 Massachusetts Institute of Technology
 
@@ -46,7 +46,7 @@ MIT in each case. */
 #define VERSION                11
 #endif
 #ifndef SUBVERSION
-#define SUBVERSION     2
+#define SUBVERSION     3
 #endif
 
 #ifndef UCODE_TABLES_FILENAME