"trigrat" caught in infinite loop - depending on how you call it



As a follow-up to my preceding message:

f: 1/(y+sqrt(y));
[trigrat(f),?varlist:false,trigrat(f)];

Same values now.



Le 07/11/2012 18:50, Robert Dodier a ?crit :
> On 2012-11-07, David Scherfgen <d.scherfgen at googlemail.com> wrote:
>
>> I found out that if you call "reset()" inbetween, it gives the short
>> answer both times:
>>
>> f: 1/(y+sqrt(y));
>> [trigrat(f), reset(), trigrat(f)];
> That's a very interesting observation. Having to call reset indicates
> that there is a bug (namely there is some state data that needs to be
> cleaned up). reset returns the list of variables which it resets. I get
> the following output:
>
>    f: 1/(y+sqrt(y));
>    [a : trigrat(f), foo : reset(), b : trigrat(f)];
>    is (a = b);
>      => true
>    grind (foo);
>      => [?odds,lispdisp,?tr\-unique,?varlist,?genvar,linenum,%,labels,__,
>          _,piece,features]
>
> Probably the first things to look at are the Lisp variables (marked with
> leading question mark).
>
> best
>
> Robert Dodier
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>