From: Dieter K. <cra...@us...> - 2010-06-19 12:05:11
|
Update of /cvsroot/maxima/maxima/src In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv24382/src Modified Files: psolve.lisp Log Message: In solvequartic do not call simpnrt, but power to calculate d and e. Furthermore, use the functions add, sub and div to do the calculations. It is possible to simplify the algorithm further and to cut out all direct calls of simplifying functions and some unnecessary calls of the simplifier. The change of this revision solves the problem that simpnrt hangs, when called directly with an expression which contains parameters declared to be constant. Related bug report: 2036462 - Very long calculation time, normal ? No problems with the testsuite. In the file rtest_to_poly_solver the ordering of the results of one example has changed. Index: psolve.lisp =================================================================== RCS file: /cvsroot/maxima/maxima/src/psolve.lisp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- psolve.lisp 11 Dec 2007 00:07:23 -0000 1.7 +++ psolve.lisp 19 Jun 2010 12:05:02 -0000 1.8 @@ -191,15 +191,10 @@ (simplify (rdis (ratdif (rattimes sqb3 '(3 . 4) t) (rattimes b2 '(2 . 1) t))))) (and (complicated tr1) (setq tr1 (adispline tr1))) - lb1 (setq d (simpnrt (simplify (list '(mplus) tr1 tr2)) 2)) - (setq e - (simpnrt (simplify (list '(mplus) - tr1 - (list '(mtimes) -1 tr2))) - 2)) - (setq d (div* d 2)) + lb1 + (setq d (div (power (add tr1 tr2) '((rat simp) 1 2)) 2)) + (setq e (div (power (sub tr1 tr2) '((rat simp) 1 2)) 2)) (and (complicated d) (setq d (adispline d))) - (setq e (div* e 2)) (and (complicated e) (setq e (adispline e))) (setq a2 (rdis (rattimes b3 '(-1 . 4) t))) (setq a1 (div* r 2)) |