From 975dc690a17bccfed157bde283056ab02f77e092 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sat, 1 Apr 2017 22:14:29 +0900 Subject: [PATCH] renaming centered/ balanced/ --- lib/scheme/division.scm | 27 ++++++--------------------- lib/scheme/division.sld | 8 ++------ 2 files changed, 8 insertions(+), 27 deletions(-) diff --git a/lib/scheme/division.scm b/lib/scheme/division.scm index 6e2ec3ae..c8427fed 100644 --- a/lib/scheme/division.scm +++ b/lib/scheme/division.scm @@ -17,25 +17,10 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; The builtin quotient and remainder implement truncation - the -;; fractional part is always discarded. - -(define truncate-quotient quotient) -(define truncate-remainder remainder) -(define (truncate/ n m) - (values (truncate-quotient n m) (truncate-remainder n m))) - ;; Floor, ceiling and round just compose their corresponding function ;; with division to determine the quotient, and compute the remainder ;; from that. -(define (floor-quotient n m) - (copy-exactness2 n m (floor (/ n m)))) -(define (floor-remainder n m) - (- n (* m (floor-quotient n m)))) -(define (floor/ n m) - (values (floor-quotient n m) (floor-remainder n m))) - (define (ceiling-quotient n m) (copy-exactness2 n m (ceiling (/ n m)))) (define (ceiling-remainder n m) @@ -60,16 +45,16 @@ (define (euclidean/ n m) (values (euclidean-quotient n m) (euclidean-remainder n m))) -;; Centered places the remainder in the half-open interval +;; Balanced places the remainder in the half-open interval ;; [-m/2, m/2). -(define (centered-remainder n m) +(define (balanced-remainder n m) (let ((r (euclidean-remainder n m)) (m/2 (abs (/ m 2)))) (cond ((< r (- m/2)) (+ r (abs m))) ((>= r m/2) (- r (abs m))) (else r)))) -(define (centered-quotient n m) - (quotient (- n (centered-remainder n m)) m)) -(define (centered/ n m) - (values (centered-quotient n m) (centered-remainder n m))) +(define (balanced-quotient n m) + (quotient (- n (balanced-remainder n m)) m)) +(define (balanced/ n m) + (values (balanced-quotient n m) (balanced-remainder n m))) diff --git a/lib/scheme/division.sld b/lib/scheme/division.sld index bba05139..b5fbc237 100644 --- a/lib/scheme/division.sld +++ b/lib/scheme/division.sld @@ -1,14 +1,10 @@ -;; This library is deprecated, occurring in early R7RS drafts before -;; being removed. (define-library (scheme division) - (import (chibi)) + (import (scheme base)) (export ceiling-quotient ceiling-remainder ceiling/ - centered-quotient centered-remainder centered/ euclidean-quotient euclidean-remainder euclidean/ - floor-quotient floor-remainder floor/ round-quotient round-remainder round/ - truncate-quotient truncate-remainder truncate/) + balanced-quotient balanced-remainder balanced/) ;; The second definition is always valid, but the first is simpler ;; and faster if exact ratios are supported and handled correctly ;; but floor/ceil/round.