From: Dieter K. <cra...@us...> - 2010-10-04 21:35:15
|
Update of /cvsroot/maxima/maxima/src In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv31929/src Modified Files: residu.lisp Log Message: In resm1 bind the flag silent-taylor-flag to T. This avoids messages and error breaks in taylor. But we have to catch an error from taylor. For this case we give an merror at this place. In the future we might improve the code further to handle the case that taylor fails. This is part 2 of a fix for the related bug report: ID: 1892341 - taylor message about something assumed to be 0 in integral No problems with the testsuite and share_testsuite. Index: residu.lisp =================================================================== RCS file: /cvsroot/maxima/maxima/src/residu.lisp,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- residu.lisp 25 Mar 2010 02:18:47 -0000 1.13 +++ residu.lisp 4 Oct 2010 21:35:06 -0000 1.14 @@ -280,8 +280,11 @@ ;; necessary or desired, but it fixes bug 1504505. It would be ;; better to fix $taylor, but that seems much harder. (let ((pole ($ratsimp ($rectform pole)))) - (setq e (ratdisrep ($taylor e var pole - 0 ;; things like residue(s/(s^2-a^2),s,a) fails if use -1 - ;;-1 - ))) - (coeff e (m^ (m+ (m* -1 pole) var) -1) 1))) + ;; Call taylor with silent-taylor-flag t and catch an error. + (if (setq e (catch 'taylor-catch + (let ((silent-taylor-flag t)) + (declare (special silent-taylor-flag)) + ;; Things like residue(s/(s^2-a^2),s,a) fails if use -1. + ($taylor e var pole 0)))) + (coeff (ratdisrep e) (m^ (m+ (m* -1 pole) var) -1) 1) + (merror (intl:gettext "residue: taylor failed."))))) |