GREAT/MRAT bug, was: alt_eigen more info



On 12/9/2012 2:00 PM, Robert Dodier wrote:
> OK, here's a simpler example of the GREAT/MRAT bug.
>
> (%i1) r : rat(x);
> (%o1)/R/                               x
> (%i2) :lisp $r
> ((MRAT SIMP ($X) (X15886)) (X15886 1 1) . 1)
> (%i2) :lisp (great $r $r)
> Maxima encountered a Lisp error:
>   
> CAR: 1 is not a list
>
>
> Hope this helps,
>
> Robert Dodier
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
The function GREAT should not be called on MRATs.
If it is called on MRATs then the function calling it is
in error.

It is not a good idea to have GREAT do a totaldisrep on its arguments.
GREAT is called many times, and totaldisrep would be called many times.
Almost all of them effectively no-ops, and when totaldisrep does get
handed an MRAT it would do the totaldisrep of the same thing over and over
again.  Like sorting expressions by replacing x>y  by 
totaldisrep(x)>totaldisrep(y).


Apparently RATMX:true causes some function to call GREAT with bad arguments.
Which function though?