Problem running symmgrp2009.max with recent versions of Maxima
Subject: Problem running symmgrp2009.max with recent versions of Maxima
From: Dieter Kaiser
Date: Thu, 17 Nov 2011 00:03:30 +0100
Am Mittwoch, den 16.11.2011, 22:43 +0000 schrieb Wiltshire R J (AT):
> > Dieter Kaiser
>
> Your output (for the Harry Dym equation) is definitely correct and so
> certainly exactly what is required and I am very pleased about this!
> However for me I still cannot get the new depends function to work
> (using a Maxima console, v5.25 on my mac). When I type
> depends(f,[x[1],x[2]]) etc I get the same old error message (depends -
> expects a symbol). Is the new depends available to me or is the case
> the new implementation is so far only available to you as a program
> developer?? Please advise.
>
> Thank you - Ron Wiltshire
The change of the code will be part of the next release of Maxima that
is Maxima 5.26. I think, this version will come in December 2011. I am
working with Maxima 5.25post, which includes all changes since the last
version 5.25.1.
As an alternative you can copy the following Lisp function into a file
and load the file with the Maxima command `load'. E. g. if you save the
function in a file "depends.lisp", you can load the new function with
load("depends.lisp"). You might get a warning about redefining the
function, but that does not matter.
This is the function you have to copy into a file:
(defun i-$dependencies (l &aux res)
(dolist (z l)
(cond
((atom z)
(merror
(intl:gettext
"depends: argument must be a non-atomic expression; found
~M") z))
(t
(do ((zz z (cdr zz))
(y nil))
((null zz)
(mputprop (caar z) (setq y (reverse y)) 'depends)
(setq res (push (cons (ncons (caar z)) y) res))
(unless (cdr $dependencies)
(setq $dependencies (copy-list '((mlist simp)))))
(add2lnc (cons (cons (caar z) nil) y) $dependencies))
(cond ((and ($subvarp (cadr zz))
(not (member (caar (cadr zz)) y)))
(setq y (push (cadr zz) y)))
((not (symbolp (cadr zz)))
(merror
(intl:gettext "depends: argument must be a symbol;
found ~M")
(cadr zz)))
((and (cadr zz)
(not (member (cadr zz) y)))
(setq y (push (cadr zz) y))))))))
(cons '(mlist simp) (reverse res)))
Dieter Kaiser