Re: Integer residue-classes William D Clinger (22 Feb 2006 22:44 UTC)
Re: Integer residue-classes Michael Sperber (26 Feb 2006 14:57 UTC)
Re: Integer residue-classes John Cowan (26 Feb 2006 15:52 UTC)
Re: Integer residue-classes Paul Schlie (26 Feb 2006 16:58 UTC)
Re: Integer residue-classes Paul Schlie (05 Mar 2006 18:52 UTC)
Re: Integer residue-classes Paul Schlie (12 Mar 2006 15:29 UTC)
miscellaneous request Paul Schlie (12 Mar 2006 15:47 UTC)
miscellaneous request (last one) Paul Schlie (12 Mar 2006 17:27 UTC)

Re: Integer residue-classes Paul Schlie 26 Feb 2006 16:58 UTC

Personally, I find the following definitions more generally useful:

; q/d :: (+ (quo q d) (/ (mod q d) d))       ; being asymmetric about 0
; q/d :: (+ (div q d) (/ (rem q d) (abs d))) ; being symmetric about 0

(define (quo q d) ; asymmetric about 0
  (if (= q 0) 0 (floor (/ q d))))

(define (mod q d) ; having the same sign as d
  (- q (* (if (= d 0) 0 (quo q d)) d)))

(define (div q d) ; symmetric about 0
  (if (= q 0) 0 (truncate (/ q d))))

(define (rem q d) ; having the same sign as (div q d)
  (* (if (= d 0) 1 (/ d (abs d))) (- q (* (if (= d 0) 0 (div q d)) d))))