Move int:modulo to primitive-arithmetic and export it.
authorChris Hanson <org/chris-hanson/cph>
Tue, 24 Apr 2018 06:15:45 +0000 (23:15 -0700)
committerChris Hanson <org/chris-hanson/cph>
Tue, 24 Apr 2018 06:15:45 +0000 (23:15 -0700)
src/runtime/arith.scm
src/runtime/primitive-arithmetic.scm
src/runtime/runtime.pkg

index 7cdae3b8e44fc08bc8e1fcd0f2d60c6a861e6536..01dd548d9e1730d19984ba41d3f49701a87e0060 100644 (file)
@@ -260,15 +260,6 @@ USA.
 (define (int:even? n)
   (int:zero? (int:remainder n 2)))
 
-(define (int:modulo n d)
-  (let ((r (int:remainder n d)))
-    (if (or (int:zero? r)
-           (if (int:negative? n)
-               (int:negative? d)
-               (not (int:negative? d))))
-       r
-       (int:+ r d))))
-
 (define (int:gcd n m)
   (let loop ((n n) (m m))
     (cond ((not (int:zero? m)) (loop m (int:remainder n m)))
index 7f07d52c8d5faee39806138b4ba8e7ee4e0f74a5..971beef6a2aa58a775a082ca2238931d4c7fac7d 100644 (file)
@@ -274,4 +274,13 @@ USA.
   (int:remainder integer-remainder 2))
 
 (define-integrable (int:<= n m) (not (int:> n m)))
-(define-integrable (int:>= n m) (not (int:< n m)))
\ No newline at end of file
+(define-integrable (int:>= n m) (not (int:< n m)))
+
+(define (int:modulo n d)
+  (let ((r (int:remainder n d)))
+    (if (or (int:zero? r)
+           (if (int:negative? n)
+               (int:negative? d)
+               (not (int:negative? d))))
+       r
+       (int:+ r d))))
\ No newline at end of file
index 7927be55b41bab89f924d71dfa9327cb33fbe15d..836a03e15b71d5c698f4834f5e3c1a69d137f440 100644 (file)
@@ -344,6 +344,7 @@ USA.
          int:>=
          int:divide
          int:integer?
+         int:modulo
          int:negate
          int:negative?
          int:positive?