eigenvalues, part: fell off the end



On 2013-07-29, Raymond Toy <toy.raymond at gmail.com> wrote:

> Error in function GREAT:  GREAT: internal error: unexpected MRAT argument

> (GREAT ((MRAT SIMP NIL NIL) 1 . 1) ((MRAT SIMP NIL NIL) 0 . 1))
> Source: 
> ; File: /usr/local/google/home/rtoy/src/sourceforge/maxima/src/simp.lisp
> (ERROR "GREAT: internal error: unexpected MRAT argument")
> 0] back
>
> 0: (GREAT ((MRAT SIMP NIL NIL) 1 . 1) ((MRAT SIMP NIL NIL) 0 . 1))
> 1: (B-SEARCH-EXPR
>     (($MATRIX SIMP) ((MLIST SIMP) ((MRAT SIMP NIL NIL) 0 . 1))
>      ((MLIST SIMP) ((MRAT SIMP NIL NIL) 1 . 1)))
>     ((($MATRIX SIMP) ((MLIST SIMP) ((MRAT SIMP NIL NIL) 1 . 1))
>       ((MLIST SIMP) ((MRAT SIMP NIL NIL) 0 . 1))))
>     0
>     1)

OK -- the problem is that B-SEARCH-EXPR calls GREAT directly without
protecting GREAT from CRE expressions. There were some commits not
too long ago about that -- see 4a3b2eaaee, a87a00bcf0, 90bf14f58fa,
and 716082de0. I seem to recall that I put only an error message in
GREAT since converting from CRE is expensive, but that means that
callers have to cooperate.

best

Robert Dodier