X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Firrat.lisp;fp=src%2Fcode%2Firrat.lisp;h=c4e9ad46387daaf3b3f2b13a16cee2efb1e2493e;hb=fcd65db754f3a5062fccf136bc633e658e4967b3;hp=79be34a9bffe3d6aad315d74e070d1d66422e3c8;hpb=9283908642216e9a3cc217f8e3eab186c8876593;p=sbcl.git diff --git a/src/code/irrat.lisp b/src/code/irrat.lisp index 79be34a..c4e9ad4 100644 --- a/src/code/irrat.lisp +++ b/src/code/irrat.lisp @@ -342,10 +342,11 @@ ((and (typep number '(integer (0) *)) (typep base '(integer (0) *))) (coerce (/ (log2 number) (log2 base)) 'single-float)) - ((or (and (typep number 'integer) (typep base 'double-float)) - (and (typep number 'double-float) (typep base 'integer))) + ((and (typep number 'integer) (typep base 'double-float)) ;; No single float intermediate result (/ (log2 number) (log base 2.0d0))) + ((and (typep number 'double-float) (typep base 'integer)) + (/ (log number 2.0d0) (log2 base))) (t (/ (log number) (log base)))) (number-dispatch ((number number))