You can subscribe to this list here.
2001 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}
(20) 
_{Dec}
(17) 

2002 
_{Jan}
(39) 
_{Feb}
(21) 
_{Mar}
(33) 
_{Apr}
(135) 
_{May}
(53) 
_{Jun}
(88) 
_{Jul}
(47) 
_{Aug}
(59) 
_{Sep}
(207) 
_{Oct}
(40) 
_{Nov}
(7) 
_{Dec}
(26) 
2003 
_{Jan}
(49) 
_{Feb}
(39) 
_{Mar}
(117) 
_{Apr}
(50) 
_{May}
(62) 
_{Jun}
(6) 
_{Jul}
(19) 
_{Aug}
(24) 
_{Sep}
(11) 
_{Oct}
(11) 
_{Nov}
(49) 
_{Dec}
(9) 
2004 
_{Jan}
(29) 
_{Feb}
(123) 
_{Mar}
(32) 
_{Apr}
(53) 
_{May}
(52) 
_{Jun}
(19) 
_{Jul}
(33) 
_{Aug}
(10) 
_{Sep}
(76) 
_{Oct}
(86) 
_{Nov}
(171) 
_{Dec}
(163) 
2005 
_{Jan}
(147) 
_{Feb}
(121) 
_{Mar}
(120) 
_{Apr}
(126) 
_{May}
(120) 
_{Jun}
(213) 
_{Jul}
(76) 
_{Aug}
(79) 
_{Sep}
(140) 
_{Oct}
(83) 
_{Nov}
(156) 
_{Dec}
(202) 
2006 
_{Jan}
(181) 
_{Feb}
(171) 
_{Mar}
(157) 
_{Apr}
(98) 
_{May}
(96) 
_{Jun}
(97) 
_{Jul}
(193) 
_{Aug}
(76) 
_{Sep}
(130) 
_{Oct}
(63) 
_{Nov}
(196) 
_{Dec}
(253) 
2007 
_{Jan}
(256) 
_{Feb}
(293) 
_{Mar}
(276) 
_{Apr}
(258) 
_{May}
(181) 
_{Jun}
(91) 
_{Jul}
(108) 
_{Aug}
(69) 
_{Sep}
(107) 
_{Oct}
(179) 
_{Nov}
(137) 
_{Dec}
(121) 
2008 
_{Jan}
(124) 
_{Feb}
(129) 
_{Mar}
(192) 
_{Apr}
(201) 
_{May}
(90) 
_{Jun}
(86) 
_{Jul}
(115) 
_{Aug}
(142) 
_{Sep}
(49) 
_{Oct}
(91) 
_{Nov}
(95) 
_{Dec}
(218) 
2009 
_{Jan}
(230) 
_{Feb}
(149) 
_{Mar}
(118) 
_{Apr}
(72) 
_{May}
(77) 
_{Jun}
(68) 
_{Jul}
(102) 
_{Aug}
(72) 
_{Sep}
(89) 
_{Oct}
(76) 
_{Nov}
(125) 
_{Dec}
(86) 
2010 
_{Jan}
(75) 
_{Feb}
(90) 
_{Mar}
(89) 
_{Apr}
(121) 
_{May}
(111) 
_{Jun}
(66) 
_{Jul}
(75) 
_{Aug}
(66) 
_{Sep}
(66) 
_{Oct}
(166) 
_{Nov}
(121) 
_{Dec}
(73) 
2011 
_{Jan}
(74) 
_{Feb}

_{Mar}

_{Apr}
(14) 
_{May}
(22) 
_{Jun}
(31) 
_{Jul}
(53) 
_{Aug}
(37) 
_{Sep}
(23) 
_{Oct}
(25) 
_{Nov}
(31) 
_{Dec}
(28) 
2012 
_{Jan}
(18) 
_{Feb}
(11) 
_{Mar}
(32) 
_{Apr}
(17) 
_{May}
(48) 
_{Jun}
(37) 
_{Jul}
(23) 
_{Aug}
(54) 
_{Sep}
(15) 
_{Oct}
(11) 
_{Nov}
(19) 
_{Dec}
(22) 
2013 
_{Jan}
(11) 
_{Feb}
(32) 
_{Mar}
(24) 
_{Apr}
(37) 
_{May}
(31) 
_{Jun}
(14) 
_{Jul}
(26) 
_{Aug}
(33) 
_{Sep}
(40) 
_{Oct}
(21) 
_{Nov}
(36) 
_{Dec}
(84) 
2014 
_{Jan}
(23) 
_{Feb}
(20) 
_{Mar}
(27) 
_{Apr}
(24) 
_{May}
(31) 
_{Jun}
(27) 
_{Jul}
(34) 
_{Aug}
(26) 
_{Sep}
(21) 
_{Oct}
(45) 
_{Nov}
(23) 
_{Dec}
(73) 
2015 
_{Jan}
(33) 
_{Feb}
(8) 
_{Mar}
(24) 
_{Apr}
(45) 
_{May}
(27) 
_{Jun}
(19) 
_{Jul}
(21) 
_{Aug}
(51) 
_{Sep}
(43) 
_{Oct}
(29) 
_{Nov}
(61) 
_{Dec}
(86) 
2016 
_{Jan}
(99) 
_{Feb}
(52) 
_{Mar}
(80) 
_{Apr}
(61) 
_{May}
(24) 
_{Jun}
(23) 
_{Jul}
(36) 
_{Aug}
(30) 
_{Sep}
(41) 
_{Oct}
(43) 
_{Nov}
(27) 
_{Dec}
(46) 
2017 
_{Jan}
(57) 
_{Feb}
(34) 
_{Mar}
(40) 
_{Apr}
(17) 
_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

S  M  T  W  T  F  S 



1

2
(3) 
3
(1) 
4
(5) 
5
(1) 
6
(4) 
7
(9) 
8
(12) 
9
(1) 
10
(4) 
11
(6) 
12
(1) 
13
(19) 
14

15
(1) 
16

17
(1) 
18
(1) 
19
(5) 
20
(14) 
21
(1) 
22
(4) 
23
(6) 
24

25
(1) 
26
(7) 
27
(4) 
28
(3) 
29
(4) 
30
(4) 
31
(2) 


From: Robert Dodier <robert_dodier@us...>  20080106 22:57:32

Update of /cvsroot/maxima/maxima/src In directory sc8prcvs16.sourceforge.net:/tmp/cvsserv15915 Modified Files: solve.lisp Log Message: In $SOLVE, apply patch by Rupert Swarbrick to paste in some comments. No functional change. Index: solve.lisp =================================================================== RCS file: /cvsroot/maxima/maxima/src/solve.lisp,v retrieving revision 1.18 retrieving revision 1.19 diff u d r1.18 r1.19  solve.lisp 6 Jan 2008 22:43:18 0000 1.18 +++ solve.lisp 6 Jan 2008 22:57:29 0000 1.19 @@ 95,60 +95,103 @@ (defmfun $solve (*eql &optional (varl nil varlp)) (setq $multiplicities (makemlist))  (prog (eql ;Expressions and variables being solved  $keepfloat $ratfac ;In case the user has set these  *roots *failures ;*roots gets solutions, *failures "roots of"  brokennotfreeof) ;Has something to do with spliting up roots  + (prog (eql ; Equations to solve + $keepfloat $ratfac ; In case user has set these + *roots ; *roots gets solutions, + *failures ; *failures "roots of" + brokennotfreeof) ;Has something to do with splitting up roots + + ;; Create the equation list (this is a lisp list, not 'MLIST) (setq eql  (cond ((atom *eql) (ncons *eql))  ((eq (grepoperator *eql) 'mlist)  (mapcar 'meqhk (mapcar 'meval (cdr *eql))))  ((member (grepoperator *eql)  '(mnotequal mgreaterp mlessp mgeqp mleqp) :test #'eq)  (merror "Cannot solve inequalities. `solve'"))  (t (ncons (meqhk *eql))))) + (cond + ;; If an atom, cons it. + ((atom *eql) (ncons *eql)) + ;; If we have a list of equations, move everything over + ;; to one side, so x=5 > x5=0. + ((eq (grepoperator *eql) 'mlist) + (mapcar 'meqhk (mapcar 'meval (cdr *eql)))) + ;; We can't solve inequalities + ((member (grepoperator *eql) + '(mnotequal mgreaterp mlessp mgeqp mleqp) :test #'eq) + (merror "Cannot solve inequalities. `solve'")) + ;; Finally, assume we have just one equation, and put it + ;; on one side again. + (t (ncons (meqhk *eql)))))  (cond ((null varlp) ;If the variable list wasn't supplied  (setq varl ;we have to supply it ourselves.  (let (($listconstvars nil))  (cdr ($listofvars *eql))))  (if varl (setq varl (remc varl)))) ;Remove all constants  (t (setq varl  (cond (($listp varl) (removeduplicates (mapcar #'meval (cdr varl))))  (t (list varl)))))) + (cond + ;; If the variable list wasn't supplied we have to supply it + ;; ourselves. Also remove constants like $%pi from the list. + ((null varlp) + (setq varl + (let (($listconstvars nil)) + (cdr ($listofvars *eql)))) + (if varl (setq varl (remc varl)))) ; Remove all constants  (if (and (null varl) $solvenullwarn)  (mtell "~&Got a null variable list, continuing  `solve'~%"))  (if (and (null eql) $solvenullwarn)  (mtell "~&Got a null equation list, continuing  `solve'~%"))  (if (some #'mnump varl)  (merror "A number was found where a variable was expected `solve'")) + ;; If we have got a variable list then if it's a list apply + ;; meval to each entry and then weed out duplicates. Else, just + ;; cons it. + (t + (setq varl + (cond (($listp varl) (removeduplicates + (mapcar #'meval (cdr varl)))) + (t (list varl))))))  (cond ((equal eql '(0)) (return '$all))  ((or (null varl) (null eql)) (return (makemlistsimp)))  ((and (null (cdr varl)) (null (cdr eql)))  (return (ssolve (car eql) (car varl))))  ((or varlp (= (length varl) (length eql)))  (setq eql (solvex eql varl (not $programmode) t))  (return (cond ((and (cdr eql) (not ($listp (cadr eql))))  (makemlist eql))  (t eql))))) + ;; Some sanity checks and warning messages. + (when (and (null varl) $solvenullwarn) + (mtell "~&Got a null variable list, continuing  `solve'~%")) + + (when (and (null eql) $solvenullwarn) + (mtell "~&Got a null equation list, continuing  `solve'~%")) + + (when (some #'mnump varl) + (merror + "A number was found where a variable was expected `solve'")) + + ;; Deal with special cases. + (cond + ;; Trivially true equations for any set of variables. + ((equal eql '(0)) + (return '$all)) + + ;; Trivially false equations: return [] + ((or (null varl) (null eql)) + (return (makemlistsimp))) + + ;; One equation in one variable: SSOLVE + ((and (null (cdr varl)) (null (cdr eql))) + (return (ssolve (car eql) (car varl)))) + + ;; We were given a variable list, or there are same # of eqns + ;; as unknowns: SOLVEX. + ((or varlp + (= (length varl) (length eql))) + (setq eql (solvex eql varl (not $programmode) t)) + (return + (cond ((and (cdr eql) + (not ($listp (cadr eql)))) + (makemlist eql)) + (t eql))))) + + ;; We don't know what to do, so complain. The let sets u to varl + ;; but as an MLIST list and e to the original eqns coerced to a + ;; list. (let ((u (makemlistl varl))  (e (cond (($listp *eql) *eql)  (t (makemlist *eql))))) + (e (cond (($listp *eql) *eql) + (t (makemlist *eql))))) ;; MFORMAT doesn't have ~:[~] yet, so I just change this to ;; make one of two possible calls to MERROR. Smaller codesize ;; then what was here before anyway. (if (> (length varl) (length eql))  (merror "More unknowns than equations  `solve'~ + (merror + "More unknowns than equations  `solve'~ ~%Unknowns given : ~%~M~ ~%Equations given: ~%~M"  u e)  (merror "More equations than unknowns  `solve'~ + u e) + (merror + "More equations than unknowns  `solve'~ ~%Unknowns given : ~%~M~ ~%Equations given: ~%~M"  u e))))) + u e))))) ;; Removes anything from its list arg which solve considers not to be a 
From: Robert Dodier <robert_dodier@us...>  20080106 22:43:21

Update of /cvsroot/maxima/maxima/src In directory sc8prcvs16.sourceforge.net:/tmp/cvsserv11278/src Modified Files: solve.lisp Log Message: In $SOLVE, remove duplicates from list of variables as suggested by Rupert Swarbrick. Resolves SF bug report [ 607079 ] solve with repeated variable. Put a new test case for that in rtest8. Index: solve.lisp =================================================================== RCS file: /cvsroot/maxima/maxima/src/solve.lisp,v retrieving revision 1.17 retrieving revision 1.18 diff u d r1.17 r1.18  solve.lisp 26 Dec 2007 10:07:34 0000 1.17 +++ solve.lisp 6 Jan 2008 22:43:18 0000 1.18 @@ 115,7 +115,7 @@ (cdr ($listofvars *eql)))) (if varl (setq varl (remc varl)))) ;Remove all constants (t (setq varl  (cond (($listp varl) (mapcar #'meval (cdr varl))) + (cond (($listp varl) (removeduplicates (mapcar #'meval (cdr varl)))) (t (list varl)))))) (if (and (null varl) $solvenullwarn) 
From: Robert Dodier <robert_dodier@us...>  20080106 22:43:21

Update of /cvsroot/maxima/maxima/tests In directory sc8prcvs16.sourceforge.net:/tmp/cvsserv11278/tests Modified Files: rtest8.mac Log Message: In $SOLVE, remove duplicates from list of variables as suggested by Rupert Swarbrick. Resolves SF bug report [ 607079 ] solve with repeated variable. Put a new test case for that in rtest8. Index: rtest8.mac =================================================================== RCS file: /cvsroot/maxima/maxima/tests/rtest8.mac,v retrieving revision 1.11 retrieving revision 1.12 diff u d r1.11 r1.12  rtest8.mac 3 Aug 2007 15:54:25 0000 1.11 +++ rtest8.mac 6 Jan 2008 22:43:18 0000 1.12 @@ 219,3 +219,11 @@ block ([float_approx_equal_tolerance : 1e12], float_approx_equal (find_root (expr, x, 0, 4), 3.127271310605426))); true; + +/* SF bug report [ 607079 ] solve with repeated variable + */ +solve ('[x = 1], '[x, x]); +[x = 1]; + +solve ('[u = v], '[u, u, u, u]); +[u = v]; 
From: Robert Dodier <robert_dodier@us...>  20080106 20:58:28

Update of /cvsroot/maxima/maxima/share/contrib In directory sc8prcvs16.sourceforge.net:/tmp/cvsserv28923/share/contrib Modified Files: impdiff.mac Log Message: In implicit_derivative: (1) Attempt to clarify comments a little. (2) Load makeOrders if it is not already defined. (3) New function display_array to display indices and value of an array. (4) Change mlocal to local and cut out call to munlocal. (5) Return value is the argument f. After these changes, example at end of file seems to work as intended. Index: impdiff.mac =================================================================== RCS file: /cvsroot/maxima/maxima/share/contrib/impdiff.mac,v retrieving revision 1.1 retrieving revision 1.2 diff u d r1.1 r1.2  impdiff.mac 14 Aug 2002 18:28:34 0000 1.1 +++ impdiff.mac 6 Jan 2008 20:58:23 0000 1.2 @@ 1,5 +1,5 @@ /* This subroutine implicit derivatives of multivariable functions +This subroutine implicit derivatives of multivariable expressions Copyright (C) 1999 Dan Stanger This library is free software; you can redistribute it and/or modify it @@ 21,16 +21,47 @@ look on my web page (currently http://www.diac.com/~dxs) this code was tested using Macsyma 2.4 from Macsyma, Inc. */ /* f array function, the indexes are the derivative degree +/* f is an array, the indexes are the derivative degree in the indvarlist order. indvarlist independent variable list depvar the dependent variable orderlist the order desired */ + +/* If makeOrders is not already defined, then load it. + * Following test looks for a Maxima function named makeOrders. + * Probably should also look for a Lisp function, + * in case makeOrders is reimplemented as a Lisp function. + */ +if ?mget ('makeOrders, '?mexpr) = false then load (makeOrders); + +/* Display an array, either a hashed array or a declared array, + * as a list of equations a[<subscripts>] = <value>. + * Seems generally useful  might want to move this into core at some point. + */ +display_array ('a) := block ([stuff, ainfo], + stuff : errcatch (apply (arrayinfo, [a])), + if stuff # [] + then + (ainfo : first (stuff), + if first (ainfo) = declared + then display_array_declared (a, ainfo[3]) + else display_array_hashed (a, rest (rest (ainfo))))); + +display_array_declared (a, dimensions) := + (map (lambda ([n], apply (set, makelist (i, i, 1, n))), dimensions), + apply (cartesian_product, %%), + makelist (arraymake (a, i), i, args (%%)), + apply (display, %%)); + +display_array_hashed (a, indices) := + (makelist (arraymake (a, i), i, indices), + apply (display, %%)); + implicit_derivative(f,indvarlist,orderlist,depvar):= block([ l:makeOrders(indvarlist,orderlist),  orders,orderslength,diffargs],mlocal(orders,diffargs), + orders,orderslength,diffargs],local(orders,diffargs), orderslength:length(l)1, array([orders,diffargs],orderslength), fillarray(orders,l), @@ 45,10 +76,14 @@ apply('diff,cons(depvar,diffargs[j])), d)), s:solve(d,apply('diff,cons(depvar,diffargs[i]))), arraysetapply(f,orders[i],rhs(first(s)))),  munlocal()  )$ + f)$ + /* the following example will fill the array f with derivatives array(f,2,3,function) f[0,0]:x^2+y^3z^4=0 implicit_derivative(f,[x,y],[2,3],z) */ + + load (impdiff); + f [0, 0] : x^2 + y^3  z^4 = 0; + implicit_derivative (f, [x, y], [2, 3], z); + display_array (f); + + */ 