Changeset 14009 in project


Ignore:
Timestamp:
03/31/09 16:18:24 (11 years ago)
Author:
Kon Lovett
Message:

Added mod0 & div0.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/4/err5rs-arithmetic/trunk/tests/run.scm

    r14008 r14009  
    55
    66;;
     7
     8(define (div0 n d)
     9  (let* ((quo (quotient n d))
     10         (rem (- n (* quo d))))
     11    (cond ((<= 0 d)
     12           (if (< (* rem 2) d)
     13               (if (<= (* rem -2) d) quo
     14                   (- quo 1) )
     15               (+ quo 1) ) )
     16          ((< d (* rem -2))
     17           (if (<= d (* rem 2)) quo
     18               (+ quo 1) ) )
     19          (else
     20           (- quo 1) ) ) ) )
     21
     22(define (mod0 n d)
     23  (let* ((quo (quotient n d))
     24         (rem (- n (* quo d))))
     25    (cond ((<= 0 d)
     26           (if (< (* rem 2) d)
     27               (if (<= (* rem -2) d) rem
     28                   (+ rem d) )
     29               (- rem d) ) )
     30          ((< d (* rem -2))
     31           (if (<= d (* rem 2)) rem
     32               (- rem d) ) )
     33          (else
     34           (+ rem d) ) ) ) )
    735
    836(define (run-arithmetic-fixnums-tests)
     
    3462    (syntax-rules ()
    3563      ((_ fxop/carry fxop/carry-reference fx1 fx2 fx3)
    36        (test (vals->list fxop/carry-reference fx1 fx2 fx3)
    37              (vals->list fxop/carry fx1 fx2 fx3)))))
     64       (test #;`(fxop/carry ,fx1 ,fx2 ,fx3)
     65              (vals->list fxop/carry-reference fx1 fx2 fx3)
     66              (vals->list fxop/carry fx1 fx2 fx3)))))
    3867
    3968  (define (carry-tests l)
Note: See TracChangeset for help on using the changeset viewer.