From: <no...@so...> - 2002-10-28 08:24:30
|
Bugs item #629714, was opened at 2002-10-28 03:24 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=629714&group_id=4933 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stavros Macrakis (macrakis) Assigned to: Nobody/Anonymous (nobody) Summary: x^^-1 . x . y . x . y Initial Comment: x^^-1 . x . y . x . y simplifies to x^^-1 . (x . y)^^2 instead of y . x . y But the following work correctly: x^^-1 . x . y . x . y . y => y . x . y^^2 (x^^-1 . x . y) . x . y => y . x . y y . x . y . x . x^^-1 ------------------------------------------------ A consequence of the above (this was the original problem I ran into): x^^-1 . (x . y)^^2 expand(%) returns it unchanged. OK expand(%), dotexptsimp:false returns x^^-1 . x . y . x . y and now expand(%) gives x^^-1 . (x . y)^^2 instead of y . x . y Hmm. So how do I simplify this to y.x.y? --------------------------------------------- Compare this to x^^-1 . (x . y)^^2 . y^^-1 and (x . y . x^^-1)^^2 and y . (x . y)^^-1 and (x . y)^^-1 . x for all of which the sequence expand/dotexptsimp:false then expand performs the expected cancellation. ---------------------------------------- The problem is that simpnct simplifies from right to left, so that by the time it sees x^^-1 . x . y...., that has already become x^^-1 . (x . y)^^2, which it doesn't currently simplify. The quick fix is to special-case this in simpnct, but it's a bit messy.... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=629714&group_id=4933 |
From: SourceForge.net <no...@so...> - 2003-08-04 15:26:55
|
Bugs item #629714, was opened at 2002-10-28 03:24 Message generated for change (Comment added) made by macrakis You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=629714&group_id=4933 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stavros Macrakis (macrakis) Assigned to: Nobody/Anonymous (nobody) Summary: x^^-1 . x . y . x . y Initial Comment: x^^-1 . x . y . x . y simplifies to x^^-1 . (x . y)^^2 instead of y . x . y But the following work correctly: x^^-1 . x . y . x . y . y => y . x . y^^2 (x^^-1 . x . y) . x . y => y . x . y y . x . y . x . x^^-1 ------------------------------------------------ A consequence of the above (this was the original problem I ran into): x^^-1 . (x . y)^^2 expand(%) returns it unchanged. OK expand(%), dotexptsimp:false returns x^^-1 . x . y . x . y and now expand(%) gives x^^-1 . (x . y)^^2 instead of y . x . y Hmm. So how do I simplify this to y.x.y? --------------------------------------------- Compare this to x^^-1 . (x . y)^^2 . y^^-1 and (x . y . x^^-1)^^2 and y . (x . y)^^-1 and (x . y)^^-1 . x for all of which the sequence expand/dotexptsimp:false then expand performs the expected cancellation. ---------------------------------------- The problem is that simpnct simplifies from right to left, so that by the time it sees x^^-1 . x . y...., that has already become x^^-1 . (x . y)^^2, which it doesn't currently simplify. The quick fix is to special-case this in simpnct, but it's a bit messy.... ---------------------------------------------------------------------- >Comment By: Stavros Macrakis (macrakis) Date: 2003-08-04 11:26 Message: Logged In: YES user_id=588346 For commutative terms, there is a simple canonical form in Maxima. But there is no canonical form for non-commutative terms. I wonder if by default the simplifer should canonicalize them. Currently, for example, (a.b.a^^-1)^^2 and a.b^^2 .a^^-1 (which are equivalent): both currently simplify to themselves. But if we canonicalize to the second one (following the rule that all possible cancellations have been carried out), we lose the structure shown in the first case. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=629714&group_id=4933 |
From: SourceForge.net <no...@so...> - 2006-07-01 02:56:46
|
Bugs item #629714, was opened at 2002-10-28 01:24 Message generated for change (Settings changed) made by robert_dodier You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=629714&group_id=4933 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. >Category: Lisp Core Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stavros Macrakis (macrakis) Assigned to: Nobody/Anonymous (nobody) Summary: x^^-1 . x . y . x . y Initial Comment: x^^-1 . x . y . x . y simplifies to x^^-1 . (x . y)^^2 instead of y . x . y But the following work correctly: x^^-1 . x . y . x . y . y => y . x . y^^2 (x^^-1 . x . y) . x . y => y . x . y y . x . y . x . x^^-1 ------------------------------------------------ A consequence of the above (this was the original problem I ran into): x^^-1 . (x . y)^^2 expand(%) returns it unchanged. OK expand(%), dotexptsimp:false returns x^^-1 . x . y . x . y and now expand(%) gives x^^-1 . (x . y)^^2 instead of y . x . y Hmm. So how do I simplify this to y.x.y? --------------------------------------------- Compare this to x^^-1 . (x . y)^^2 . y^^-1 and (x . y . x^^-1)^^2 and y . (x . y)^^-1 and (x . y)^^-1 . x for all of which the sequence expand/dotexptsimp:false then expand performs the expected cancellation. ---------------------------------------- The problem is that simpnct simplifies from right to left, so that by the time it sees x^^-1 . x . y...., that has already become x^^-1 . (x . y)^^2, which it doesn't currently simplify. The quick fix is to special-case this in simpnct, but it's a bit messy.... ---------------------------------------------------------------------- Comment By: Stavros Macrakis (macrakis) Date: 2003-08-04 09:26 Message: Logged In: YES user_id=588346 For commutative terms, there is a simple canonical form in Maxima. But there is no canonical form for non-commutative terms. I wonder if by default the simplifer should canonicalize them. Currently, for example, (a.b.a^^-1)^^2 and a.b^^2 .a^^-1 (which are equivalent): both currently simplify to themselves. But if we canonicalize to the second one (following the rule that all possible cancellations have been carried out), we lose the structure shown in the first case. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=629714&group_id=4933 |
From: SourceForge.net <no...@so...> - 2006-09-09 14:51:52
|
Bugs item #629714, was opened at 2002-10-28 01:24 Message generated for change (Settings changed) made by robert_dodier You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=629714&group_id=4933 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. >Category: Lisp Core - Simplification Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stavros Macrakis (macrakis) Assigned to: Nobody/Anonymous (nobody) Summary: x^^-1 . x . y . x . y Initial Comment: x^^-1 . x . y . x . y simplifies to x^^-1 . (x . y)^^2 instead of y . x . y But the following work correctly: x^^-1 . x . y . x . y . y => y . x . y^^2 (x^^-1 . x . y) . x . y => y . x . y y . x . y . x . x^^-1 ------------------------------------------------ A consequence of the above (this was the original problem I ran into): x^^-1 . (x . y)^^2 expand(%) returns it unchanged. OK expand(%), dotexptsimp:false returns x^^-1 . x . y . x . y and now expand(%) gives x^^-1 . (x . y)^^2 instead of y . x . y Hmm. So how do I simplify this to y.x.y? --------------------------------------------- Compare this to x^^-1 . (x . y)^^2 . y^^-1 and (x . y . x^^-1)^^2 and y . (x . y)^^-1 and (x . y)^^-1 . x for all of which the sequence expand/dotexptsimp:false then expand performs the expected cancellation. ---------------------------------------- The problem is that simpnct simplifies from right to left, so that by the time it sees x^^-1 . x . y...., that has already become x^^-1 . (x . y)^^2, which it doesn't currently simplify. The quick fix is to special-case this in simpnct, but it's a bit messy.... ---------------------------------------------------------------------- Comment By: Stavros Macrakis (macrakis) Date: 2003-08-04 09:26 Message: Logged In: YES user_id=588346 For commutative terms, there is a simple canonical form in Maxima. But there is no canonical form for non-commutative terms. I wonder if by default the simplifer should canonicalize them. Currently, for example, (a.b.a^^-1)^^2 and a.b^^2 .a^^-1 (which are equivalent): both currently simplify to themselves. But if we canonicalize to the second one (following the rule that all possible cancellations have been carried out), we lose the structure shown in the first case. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=629714&group_id=4933 |