#175 dotexptsimp and x^^2/FIX

closed
nobody
5
2012-12-04
2002-10-28
No

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)))
....

Discussion

  • Robert Dodier

    Robert Dodier - 2006-07-01
    • labels: --> 460522
     
  • Robert Dodier

    Robert Dodier - 2006-08-27
    • labels: 460522 --> Lisp Core - Simplification
     
  • Robert Dodier

    Robert Dodier - 2006-09-09
    • milestone: --> Includes_proposed_fix
     
  • Barton Willis

    Barton Willis - 2007-01-31
    • status: open --> closed
     
  • Barton Willis

    Barton Willis - 2007-01-31

    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.