Opened 19 years ago
Closed 19 years ago
#8 closed defect (fixed)
2-arg log function can't compute some logs
| Reported by: | Raymond Toy | Owned by: | somebody | 
|---|---|---|---|
| Priority: | minor | Milestone: | |
| Component: | Core | Version: | 19c | 
| Keywords: | log, special functions | Cc: | 
Description
Consider the following snip of code. CMUCL should really be able to compute all of these. CMUCL fails mostly because it cannot convert some bignum to a double-float.
(defun test-log ()
  (dolist (base (list nil 2 2.0 2d0
		      (ash 1 99) (ash 1 3000)
		      8/7 (/ (ash 1 3000) 7)))
    (dolist (number (list 100 100.0 100d0
			  (ash 1 100) (ash 1 3500)
			  50/7 (/ (ash 1 3500) 7)))
      (multiple-value-bind (result cond)
	  (ignore-errors (if base
			     (log number base)
			     (log number)))
	(unless result
	  (format t "(log ~A ~A) ->~%  ~S~%" number base cond))))))
    Note: See
        TracTickets for help on using
        tickets.
    

Fixed. Should handle double-double-float's too.