lapack



On 1/21/10, Dieter Kaiser <drdieterkaiser at web.de> wrote:

> Maxima now longer knows the operator properties of the dot operator.
> These properties are killed. I have traced the function kill-operator
> and I have found one call from the file rtest16.mac:
>
>      0: (KILL-OPERATOR MNCTIMES)
>
> But it is very strange. It is not enough to execute the file rtest16.mac
> a second time. There is another testfile which has to be executed too.

I think the other test script is rtest3, which has reset() in it.
Also it appears to be crucial that rtest_dot has
declare(".", commutative) and remove(".", commutative) in it.
Looks like reset() followed by kill(all) are both needed to mess
up the operator properties of "."; from what I can tell, neither one is
enough by itself. I;ve appended a transcript which seems to show
that.

I speculate that declare(".", commutative) puts "." on a list
of user-defined operators so that it is assumed to be killable ...
Just a guess.

best

Robert Dodier

PS.
(%i1) ev(is(op(?mnctimes(1, x)) = "."), dotconstrules : false,
dot1simp : false);
(%o1)                                true
(%i2) declare(".", commutative);
(%o2)                                done
(%i3) remove(".", commutative);
(%o3)                                done
(%i4) ev(is(op(?mnctimes(1, x)) = "."), dotconstrules : false,
dot1simp : false);
(%o4)                                true
(%i5) kill(all);
(%o0)                                done
(%i1) ev(is(op(?mnctimes(1, x)) = "."), dotconstrules : false,
dot1simp : false);
(%o1)                                true
(%i2) reset();
(%o1) [_, __, piece, context, lispdisp, tr-unique, current, linenum, %,
                                            labels, *nobjects*, features, mopl]
(%i2) ev(is(op(?mnctimes(1, x)) = "."), dotconstrules : false,
dot1simp : false);
(%o2)                                true
(%i3) kill(all);
(%o0)                                done
(%i1) ev(is(op(?mnctimes(1, x)) = "."), dotconstrules : false,
dot1simp : false);
(%o1)                                false