From: Dieter K. <cra...@us...> - 2010-05-28 16:57:40
|
Update of /cvsroot/maxima/maxima/src In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv5677/src Modified Files: maxmin.lisp Log Message: Implementing a simplim%function for $min and $max. The simplim%function distributes the limit over the arguments. Related bug report: Bug ID: 3002971 - limit fails where rat+subst works No problems with the testsuite and share_testsuite. Index: maxmin.lisp =================================================================== RCS file: /cvsroot/maxima/maxima/src/maxmin.lisp,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- maxmin.lisp 26 Nov 2008 12:54:46 -0000 1.13 +++ maxmin.lisp 28 May 2010 16:57:30 -0000 1.14 @@ -54,7 +54,14 @@ (defun add-inversep (x y) (eq t (meqp x (neg y)))) - + +;; Define a simplim%function to handle a limit of $max. + +(defprop $max simplim$max simplim%function) + +(defun simplim$max (expr var val) + (cons '($max) (mapcar #'(lambda (e) (limit e var val 'think)) (cdr expr)))) + ;; When get(trylevel,maxmin) is two or greater, max and min try additional ;; O(n^2) and O(n^3) methods. @@ -133,6 +140,13 @@ ((member x '($und $ind $infinity) :test #'eq) x) (t (neg x)))) +;; Define a simplim%function to handle a limit of $min. + +(defprop $min simplim$min simplim%function) + +(defun simplim$min (expr var val) + (cons '($min) (mapcar #'(lambda (e) (limit e var val 'think)) (cdr expr)))) + (defprop $min simp-min operators) (defun simp-min (l tmp z) |