Add fixnum arithmetic for use by compiled code.
authorChris Hanson <org/chris-hanson/cph>
Sat, 9 May 1987 20:04:56 +0000 (20:04 +0000)
committerChris Hanson <org/chris-hanson/cph>
Sat, 9 May 1987 20:04:56 +0000 (20:04 +0000)
v7/src/sf/gconst.scm
v7/src/sf/usiexp.scm

index 6dc1b15d125dd389db1ba94978ed764b09f53884..e6c06b0285c44a65db92dec7839500ff9d71a923 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/sf/gconst.scm,v 3.1 1987/04/25 20:06:59 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/sf/gconst.scm,v 3.2 1987/05/09 20:02:49 cph Rel $
 
 Copyright (c) 1987 Massachusetts Institute of Technology
 
@@ -65,6 +65,10 @@ MIT in each case. |#
     TRUNCATE ROUND FLOOR CEILING
     SQRT EXP LOG SIN COS 
 
+    ;; Fixnum Arithmetic
+    FIX:ZERO? FIX:NEGATIVE? FIX:POSITIVE? FIX:= FIX:< FIX:>
+    FIX:1+ FIX:-1+ FIX:+ FIX:- FIX:* FIX:DIVIDE FIX:GCD
+
     ;; Basic Compound Datatypes
     CONS PAIR? CAR CDR SET-CAR! SET-CDR! GENERAL-CAR-CDR
     NULL? LENGTH MEMQ ASSQ FIRST HEAD EMPTY-STREAM?
index a522e750d4a612418febb1d335b1cc3711d86a42..43c4a4a4ef86729ad9b206d99e49dae5b2f7a5a4 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/sf/usiexp.scm,v 3.1 1987/05/04 23:50:20 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/sf/usiexp.scm,v 3.2 1987/05/09 20:04:56 cph Exp $
 
 Copyright (c) 1987 Massachusetts Institute of Technology
 
@@ -151,17 +151,23 @@ MIT in each case. |#
 \f
 ;;;; Miscellaneous Arithmetic
 
-(define (divide-component-expansion selector)
+(define (divide-component-expansion divide selector)
   (lambda (operands if-expanded if-not-expanded)
     (if-expanded
      (make-combination selector
-                      (list (make-combination integer-divide operands))))))
+                      (list (make-combination divide operands))))))
 
 (define quotient-expansion
-  (divide-component-expansion car))
+  (divide-component-expansion integer-divide car))
 
 (define remainder-expansion
-  (divide-component-expansion cdr))
+  (divide-component-expansion integer-divide cdr))
+
+(define fix:quotient-expansion
+  (divide-component-expansion fixnum-divide car))
+
+(define fix:remainder-expansion
+  (divide-component-expansion fixnum-divide cdr))
 \f
 ;;;; N-ary List Operations
 
@@ -279,7 +285,7 @@ MIT in each case. |#
 ;;;; Tables
 
 (define usual-integrations/expansion-names
-  '(= < > <= >= + - * / quotient remainder
+  '(= < > <= >= + - * / quotient remainder fix:quotient fix:remainder
       apply cons* list vector
       caar cadr cdar cddr
       caaar caadr cadar caddr cdaar cdadr cddar cdddr
@@ -293,6 +299,7 @@ MIT in each case. |#
   (list =-expansion <-expansion >-expansion <=-expansion >=-expansion
        +-expansion --expansion *-expansion /-expansion
        quotient-expansion remainder-expansion
+       fix:quotient-expansion fix:remainder-expansion
        apply*-expansion cons*-expansion list-expansion vector-expansion
        caar-expansion cadr-expansion cdar-expansion cddr-expansion
        caaar-expansion caadr-expansion cadar-expansion caddr-expansion