Update of /project/oct/cvsroot/oct In directory clnet:/tmp/cvs-serv16245
Modified Files: qd-methods.lisp Log Message: Minor optimization converting a rational to a qd-real. If the denominator is 1, skip the qd-real division.
--- /project/oct/cvsroot/oct/qd-methods.lisp 2007/09/20 21:04:05 1.60 +++ /project/oct/cvsroot/oct/qd-methods.lisp 2007/09/24 21:30:07 1.61 @@ -81,9 +81,11 @@ ;; We should do something better than this. (let ((top (numerator x)) (bot (denominator x))) - (make-instance 'qd-real - :value (div-qd (qdi::make-float (signum top) (abs top) 0 0 0) - (qdi::make-float (signum bot) (abs bot) 0 0 0))))) + (if (= bot 1) + (make-instance 'qd-real :value (qdi::make-float (signum top) (abs top) 0 0 0)) + (make-instance 'qd-real + :value (div-qd (qdi::make-float (signum top) (abs top) 0 0 0) + (qdi::make-float (signum bot) (abs bot) 0 0 0))))))
(defmethod add1 ((a number))