* Added ratnum cases to binary*.
This commit is contained in:
parent
b859c05bd6
commit
3798fd932a
BIN
src/ikarus.boot
BIN
src/ikarus.boot
Binary file not shown.
|
@ -188,6 +188,8 @@
|
||||||
(foreign-call "ikrt_fxbnmult" x y)]
|
(foreign-call "ikrt_fxbnmult" x y)]
|
||||||
[(flonum? y)
|
[(flonum? y)
|
||||||
($fl* (fixnum->flonum x) y)]
|
($fl* (fixnum->flonum x) y)]
|
||||||
|
[(ratnum? y)
|
||||||
|
(binary/ (binary* x ($ratnum-n y)) ($ratnum-d y))]
|
||||||
[else
|
[else
|
||||||
(error '* "~s is not a number" y)])]
|
(error '* "~s is not a number" y)])]
|
||||||
[(bignum? x)
|
[(bignum? x)
|
||||||
|
@ -198,6 +200,8 @@
|
||||||
(foreign-call "ikrt_bnbnmult" x y)]
|
(foreign-call "ikrt_bnbnmult" x y)]
|
||||||
[(flonum? y)
|
[(flonum? y)
|
||||||
($fl* (bignum->flonum x) y)]
|
($fl* (bignum->flonum x) y)]
|
||||||
|
[(ratnum? y)
|
||||||
|
(binary/ (binary* x ($ratnum-n y)) ($ratnum-d y))]
|
||||||
[else
|
[else
|
||||||
(error '* "~s is not a number" y)])]
|
(error '* "~s is not a number" y)])]
|
||||||
[(flonum? x)
|
[(flonum? x)
|
||||||
|
@ -208,8 +212,15 @@
|
||||||
($fl* x (bignum->flonum y))]
|
($fl* x (bignum->flonum y))]
|
||||||
[(flonum? y)
|
[(flonum? y)
|
||||||
($fl* x y)]
|
($fl* x y)]
|
||||||
|
[(ratnum? y)
|
||||||
|
(binary/ (binary* x ($ratnum-n y)) ($ratnum-d y))]
|
||||||
[else
|
[else
|
||||||
(error '* "~s is not a number" y)])]
|
(error '* "~s is not a number" y)])]
|
||||||
|
[(ratnum? y)
|
||||||
|
(if (ratnum? x)
|
||||||
|
(binary/ (binary* ($ratnum-n x) ($ratnum-n y))
|
||||||
|
(binary* ($ratnum-d x) ($ratnum-d y)))
|
||||||
|
(binary* y x))]
|
||||||
[else (error '* "~s is not a number" x)])))
|
[else (error '* "~s is not a number" x)])))
|
||||||
|
|
||||||
(define +
|
(define +
|
||||||
|
|
|
@ -1808,7 +1808,10 @@
|
||||||
[(move-byte)
|
[(move-byte)
|
||||||
(let ([s (set-rem d s)])
|
(let ([s (set-rem d s)])
|
||||||
(set-for-each (lambda (y) (add-edge! g d y)) s)
|
(set-for-each (lambda (y) (add-edge! g d y)) s)
|
||||||
(for-each (lambda (r) (add-edge! g d r)) non-8bit-registers)
|
(when (var? d)
|
||||||
|
(for-each (lambda (r) (add-edge! g d r)) non-8bit-registers))
|
||||||
|
(when (var? v)
|
||||||
|
(for-each (lambda (r) (add-edge! g v r)) non-8bit-registers))
|
||||||
(set-union (R v) s))]
|
(set-union (R v) s))]
|
||||||
[(int-/overflow int+/overflow int*/overflow)
|
[(int-/overflow int+/overflow int*/overflow)
|
||||||
(unless (exception-live-set)
|
(unless (exception-live-set)
|
||||||
|
|
Loading…
Reference in New Issue