From: Barton W. <wi...@un...> - 2014-11-14 15:51:27
|
>you could try > foo:x+y > simp:off, I should have mentioned that the simp : false trick didn't work. I may have found a workaround. In working with restoring the option variable formally known as sumhack, I've made a few discoveries, including that fact that outative bypasses simplifya and maps simpcheck on arguments: (defun outative (e z) (setq e (cons (car e) (mapcar #'(lambda (q) (simpcheck q z)) (cdr e)))) That's just so wrong (simplifies summands in the wrong environment, for example). And simpprod does something weird too: ;; Is this guy actually looking at the value of its middle arg? (defun simpprod (x y z) (let (($ratsimpexpons t)) (cond ((equal y 1) (setq y (simplifya (cadr x) z))) ((setq y (simptimes (list '(mexpt) (cadr x) y) 1 z))))) Incidentally: I like freedom--I'm not so sure that simpprod should locally set $ratsimpexpons to true. This seems like a convenience somebody pasted in one afternoon. But maybe I'm just being grumpy? --Barton |