solve bug
- Subject: solve bug
- From: Barton Willis
- Date: Wed, 12 May 2004 12:54:53 -0500
proposed replacement for easy-cases
(DEFUN EASY-CASES (*EXP *VAR)
(COND ((OR (ATOM *EXP) (ATOM (CAR *EXP))) NIL)
((EQ (CAAR *EXP) 'MTIMES)
(DO ((TERMS (CDR *EXP) (CDR TERMS)))
((NULL TERMS))
(SOLVE (CAR TERMS) *VAR 1))
'MTIMES)))
;; This code is commented out because it exposes a bug in the way
;; solve (or its friends) handles multiplicities. A previous
;; version (1.2) had a typo (caar *exp) 'mexp ...) that prevented this
;; bug from manifesting. Barton Willis, 12 May 2004
;; ((EQ (CAAR *EXP) 'MEXPT)
;; (COND ((AND (INTEGERP (CADDR *EXP))
;; (PLUSP (CADDR *EXP)))
;; (SOLVE (CADR *EXP) *VAR (CADDR *EXP))
;; 'MEXPRAT)))))
Barton