Excuse me being annoying... I think I am now able to pose my question more
precisely: The following involves only the rat package - no taylor, no
simpsum ...
My question is: Is the following expected behaviour:
(look for **** to find the important bits)
GCL (GNU Common Lisp) Version(2.5.0) Sun Nov 17 15:58:09 CET 2002
Licensed under GNU Library General Public License
Contains Enhancements by W. Schelter
Maxima 5.9.0rc3 http://maxima.sourceforge.net
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
This is a development version of Maxima. The function bug_report()
provides bug reporting information.
(C1)
trace(?cdisrep,?pdisrep,?pdisrep2,?newsym,?ratdisrepd,ratdisrep,?ratrep\*,rat,?ratsetup1,?ratsetup2);
(D1) [CDISREP, PDISREP, PDISREP2, NEWSYM, RATDISREPD, RATDISREP, RATREP*,
RAT,
RATSETUP1,
RATSETUP2]
(C2) (trace_options(?newsym,lisp_print),
(C2) trace_options(?cdisrep,lisp_print),
(C2) trace_options(?pdisrep,lisp_print),
(C2) trace_options(?pdisrep2,lisp_print),
(C2) trace_options(?ratdisrepd,lisp_print),
(C2) trace_options(ratdisrep,lisp_print),
(C2) trace_options(rat,lisp_print),
(C2) trace_options(?ratrep\*,lisp_print),
(C2) trace_options(?ratsetup1,lisp_print),
(C2) trace_options(?ratsetup2,lisp_print));
(D2) [LISP_PRINT]
(C3)
Error: Console interrupt.
Fast links are on: do (si::use-fast-links nil) for debugging
Error signalled by MACSYMA-TOP-LEVEL.
Broken at SYSTEM:TERMINAL-INTERRUPT. Type :H for Help.
****
this prints varlist and the genvars together with their DISREP property
****
MAXIMA>>(defun bl () (list varlist (mapcar #'(lambda (v) (list v (get v
'DISREP))) genvar)))
BL
MAXIMA>>:q
****
put something onto varlist and genvar to play with
****
(C3) rat(X);
(1 ENTER $RAT ($X))
(1 ENTER RATREP* ($X))
(1 ENTER RATSETUP1 (($X) (#:X21783)))
(1 EXIT RATSETUP1 NIL)
(1 ENTER RATSETUP2 (($X) (#:X21783)))
(1 EXIT RATSETUP2 NIL)
(1 EXIT RATREP* ((MRAT SIMP ($X) (#:X21783)) (#:X21783 1 1) . 1))
(1 EXIT $RAT ((MRAT SIMP ($X) (#:X21783)) (#:X21783 1 1) . 1))
(1 ENTER RATDISREPD (((MRAT SIMP ($X) (#:X21783)) (#:X21783 1 1) . 1)))
(1 ENTER CDISREP (((#:X21783 1 1) . 1)))
(1 ENTER PDISREP ((#:X21783 1 1)))
(1 ENTER PDISREP2 ((1 1) $X))
(2 ENTER PDISREP (1))
(2 EXIT PDISREP 1)
(1 EXIT PDISREP2 ($X))
(1 EXIT PDISREP $X)
(1 EXIT CDISREP $X)
(1 EXIT RATDISREPD $X)
(D3)/R/ X
(C4)
Error: Console interrupt.
Fast links are on: do (si::use-fast-links nil) for debugging
Error signalled by MACSYMA-TOP-LEVEL.
Broken at SYSTEM:TERMINAL-INTERRUPT. Type :H for Help.
MAXIMA>>(bl)
(($X) ((#:X21783 $X)))
****
this might be the offending statement. $l is just anything which is not on
the varlist
****
MAXIMA>>($ratdisrep ($rat '$l '$l))
(1 ENTER $RAT ($L $L))
(1 ENTER RATREP* ($L))
(1 ENTER RATSETUP1 (($L) (#:L21783)))
(1 EXIT RATSETUP1 NIL)
(1 ENTER RATSETUP2 (($L) (#:L21783)))
(1 EXIT RATSETUP2 NIL)
(1 EXIT RATREP* ((MRAT SIMP ($L) (#:L21783)) (#:L21783 1 1) . 1))
(1 ENTER $RATDISREP
(((MRAT SIMP ($L) (#:L21783)) (#:L21783 1 1) . 1)))
(1 ENTER RATDISREPD
(((MRAT SIMP ($L) (#:L21783)) (#:L21783 1 1) . 1)))
(1 ENTER CDISREP (((#:L21783 1 1) . 1)))
(1 ENTER PDISREP ((#:L21783 1 1)))
(1 ENTER PDISREP2 ((1 1) $L))
(2 ENTER PDISREP (1))
(2 EXIT PDISREP 1)
(1 EXIT PDISREP2 ($L))
(1 EXIT PDISREP $L)
(1 EXIT CDISREP $L)
(1 EXIT RATDISREPD $L)
(1 EXIT $RATDISREP $L)
(1 ENTER RATREP* ($L))
(1 ENTER RATSETUP1 (($L) (#:X21783)))
(1 EXIT RATSETUP1 NIL)
(1 ENTER RATSETUP2 (($L) (#:X21783)))
(1 EXIT RATSETUP2 NIL)
(1 EXIT RATREP* ((MRAT SIMP ($L) (#:X21783)) (#:X21783 1 1) . 1))
(1 EXIT $RAT ((MRAT SIMP ($L) (#:X21783)) (#:X21783 1 1) . 1))
(1 ENTER $RATDISREP (((MRAT SIMP ($L) (#:X21783)) (#:X21783 1 1) . 1)))
(1 ENTER RATDISREPD
(((MRAT SIMP ($L) (#:X21783)) (#:X21783 1 1) . 1)))
(1 ENTER CDISREP (((#:X21783 1 1) . 1)))
(1 ENTER PDISREP ((#:X21783 1 1)))
(1 ENTER PDISREP2 ((1 1) $L))
(2 ENTER PDISREP (1))
(2 EXIT PDISREP 1)
(1 EXIT PDISREP2 ($L))
(1 EXIT PDISREP $L)
(1 EXIT CDISREP $L)
(1 EXIT RATDISREPD $L)
(1 EXIT $RATDISREP $L)
$L
MAXIMA>>(bl)
(($X) ((#:X21783 $L)))
****
now the DISREP property doesn't correspond to the varlist variable
anymore. Anything that uses the genvars internally and doesn't know about
some subprocedure doing ($ratdisrep ($rat exp var)) will fail now.
****
MAXIMA>>(cdisrep (cons (list (car genvar) 1 1) 1))
(1 ENTER CDISREP (((#:X21783 1 1) . 1)))
(1 ENTER PDISREP ((#:X21783 1 1)))
(1 ENTER PDISREP2 ((1 1) $L))
(2 ENTER PDISREP (1))
(2 EXIT PDISREP 1)
(1 EXIT PDISREP2 ($L))
(1 EXIT PDISREP $L)
(1 EXIT CDISREP $L)
$L
Hope I'm not being too annoying...
Martin