- labels: --> 460522
In general, dotexptsimp:false inside Expand expands
out non-commutative powers to non-commutative
products, e.g.
dotexptsimp:false;
expand((x.y)^^2) => x.y.x.y
But not always:
dotexptsimp:false
expand(x^^2) => x^^2
and
dotexptsimp:false
expand(x.y^^2) => x.y^^2
This makes it impossible (?) to simplify
(x.y)^^2 . y - x.y.x.y^^2
to zero.
There is a simple patch for this, which makes expand
(x^^3) => x.x.x (if dotexptsimp:false). I wonder if that
will cause problems anywhere else?
Here's the patch.
In simpncexpt, just remove the mnctimesp test in the
two tests which read as follows:
((and (or (mplusp factor)
(and (not $dotexptsimp) (mnctimesp factor)))
....
Logged In: YES
user_id=895922
Originator: NO
Suggested fix applied (mdot.lisp CVS r 1.4). Also
appended new regression test for this bug (rtest_dot.mac).
Log in to post a comment.