|
|
@ -41,12 +41,19 @@
|
|
|
|
;; 1337
|
|
|
|
;; 1337
|
|
|
|
sylvester-radix-value
|
|
|
|
sylvester-radix-value
|
|
|
|
|
|
|
|
|
|
|
|
;; add two sylvester-radix numbers
|
|
|
|
;; Add two sylvester-radix numbers
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
;; Example:
|
|
|
|
;; Example:
|
|
|
|
;; > (add-sylvester-radix '(1 0 1) '(1 0 2))
|
|
|
|
;; > (add-sylvester-radix '(1 0 1) '(1 0 2))
|
|
|
|
;; '(0 1 3)
|
|
|
|
;; '(0 1 3)
|
|
|
|
add-sylvester-radix)
|
|
|
|
add-sylvester-radix
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; Extend length of sylvester-radix number with zero elements.
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
;; Example:
|
|
|
|
|
|
|
|
;; > ((extend-sylvester-radix 4) '(1 2))
|
|
|
|
|
|
|
|
;; '(1 2 0 0)
|
|
|
|
|
|
|
|
extend-sylvester-radix)
|
|
|
|
|
|
|
|
|
|
|
|
;; —————————————————————————————————
|
|
|
|
;; —————————————————————————————————
|
|
|
|
;; Implementation Section
|
|
|
|
;; Implementation Section
|
|
|
@ -73,6 +80,16 @@
|
|
|
|
(define (add-sylvester-radix v w)
|
|
|
|
(define (add-sylvester-radix v w)
|
|
|
|
(normalize-sylvester-radix (add-components v w)))
|
|
|
|
(normalize-sylvester-radix (add-components v w)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; Create procedure to extend list to length n
|
|
|
|
|
|
|
|
(define (extend-sylvester-radix n)
|
|
|
|
|
|
|
|
(lambda (v)
|
|
|
|
|
|
|
|
(if (>= (length v) n)
|
|
|
|
|
|
|
|
v
|
|
|
|
|
|
|
|
(append v
|
|
|
|
|
|
|
|
(build-list
|
|
|
|
|
|
|
|
(- n (length v))
|
|
|
|
|
|
|
|
(lambda (x) 0))))))
|
|
|
|
|
|
|
|
|
|
|
|
;; Ensure digits are in the required range by carrying surplus value.
|
|
|
|
;; Ensure digits are in the required range by carrying surplus value.
|
|
|
|
(define (normalize-sylvester-radix v)
|
|
|
|
(define (normalize-sylvester-radix v)
|
|
|
|
(normalize-sylvester-helper v 0 0))
|
|
|
|
(normalize-sylvester-helper v 0 0))
|
|
|
|