From: SourceForge.net <no...@so...> - 2010-05-15 23:06:38
|
Bugs item #1955976, was opened at 2008-05-02 10:33 Message generated for change (Comment added) made by crategus You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1955976&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: Share Libraries Group: None >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Andrej Vodopivec (andrejv) Assigned to: Barton Willis (willisbl) Summary: opproperties Initial Comment: This is a bug from share_testsuite: (%i1) load(multiadditive)$ (%i2) declare(myabs, idempotent, myabs, multiplicative)$ (%i3) myabs(xp * myabs(z)); (%o3) myabs(xp)*myabs(myabs(z)) (%o3) should be myabs(xp)*myabs(z) Andrej ---------------------------------------------------------------------- >Comment By: Dieter Kaiser (crategus) Date: 2010-05-16 01:06 Message: The reported problems of this bug report are no longer present: (%i2) load(multiadditive)$ (%i3) declare(myabs,idempotent,myabs,multiplicative)$ (%i4) myabs(xp*myabs(z)); (%o4) myabs(xp)*myabs(z) And: (%i5) declare(f, multiplicative, f, additive)$ (%i6) f(a*b+c); (%o6) f(c)+f(a)*f(b) This has been fixed in asum.lisp revision 1.37. Closing this bug report as fixed. Dieter Kaiser ---------------------------------------------------------------------- Comment By: Barton Willis (willisbl) Date: 2008-07-15 13:06 Message: Logged In: YES user_id=895922 Originator: NO fixed by contrib/multiadditive CVS version 1.8. As noted below, there are other problems with the ordering of *opers-list. ---------------------------------------------------------------------- Comment By: Barton Willis (willisbl) Date: 2008-06-23 16:34 Message: Logged In: YES user_id=895922 Originator: NO There are other problems with the ordering of *opers-list: (%i1) declare(f, multiplicative, f, additive)$ Not OK: (%i2) f(a*b+c); (%o2) f(c)+f(a*b) (%i3) expand(%,0,0); (%o3) f(c)+f(a)*f(b) Change the order of *opers-list --- no more bug: (%i4) :lisp(setq *opers-list (reverse *opers-list)); (%i4) f(a*b+c); (%o4) f(c)+f(a)*f(b) ---------------------------------------------------------------------- Comment By: Barton Willis (willisbl) Date: 2008-06-23 12:50 Message: Logged In: YES user_id=895922 Originator: NO Yes, I did try the wrong example. Changing the order of *opers-list fixes this problem. Specifically, in contrib/multiadditive.lisp, change (setq opers (cons '$idempotent opers) *opers-list (cons '($idempotent . idempotent) *opers-list)) to (setq opers (cons '$idempotent opers) *opers-list `(,@*opers-list ($idempotent . idempotent))) Then (%i10) declare(myabs, multiplicative, myabs,idempotent)$ (%i11) myabs(xp * myabs(z)); (%o11) myabs(xp)*myabs(z) After testing and collecting comments, I'll commit this fix. It's unfortunate that the *opers-list scheme is order dependent. But that's the way it is intended to work, I think. ---------------------------------------------------------------------- Comment By: Robert Dodier (robert_dodier) Date: 2008-05-14 02:15 Message: Logged In: YES user_id=501686 Originator: NO Barton, I think you have tried the wrong example. You have myabs(xp)*myabs(myabs(z)) as the test case, but the original report has myabs(xp * myabs(z)). I see the bug when I try the original test case with GCL (on Windows). How about you? ---------------------------------------------------------------------- Comment By: Barton Willis (willisbl) Date: 2008-05-07 12:12 Message: Logged In: YES user_id=895922 Originator: NO Try this experiment with non-GCL Maxima (%i7) :lisp(trace eq idempotent); Warning: EQ is being redefined. Warning: EQ is being redefined. (EQ IDEMPOTENT) myabs(xp)*myabs(myabs(z)); <junk> 1> (IDEMPOTENT (($MYABS) $XP) NIL) <1 (IDEMPOTENT (($MYABS SIMP) $XP)) 1> (IDEMPOTENT (($MYABS) $Z) NIL) <1 (IDEMPOTENT (($MYABS SIMP) $Z)) 1> (IDEMPOTENT (($MYABS) (($MYABS SIMP) $Z)) NIL) 2> (EQ $MYABS $MYABS) <2 (EQ T) <1 (IDEMPOTENT (($MYABS SIMP) $Z)) ---------------------------------------------------------------------- Comment By: Barton Willis (willisbl) Date: 2008-05-07 12:03 Message: Logged In: YES user_id=895922 Originator: NO ...with GCL it's OK: (%i1) load(multiadditive); (%o1) C:/PROGRA~1/MAXIMA~2.0/share/maxima/5.15.0/share/contrib/multiadditive.lisp (%i2) declare(myabs, idempotent, myabs, multiplicative); (%o2) done (%i3) myabs(xp)*myabs(myabs(z)); (%o3) myabs(xp)*myabs(z) (%i4) build_info(); Maxima version: 5.15.0 Maxima build date: 17:36 4/20/2008 host type: i686-pc-mingw32 lisp-implementation-type: GNU Common Lisp (GCL) lisp-implementation-version: GCL 2.6.8 Is this a noun / verb problem? ---------------------------------------------------------------------- Comment By: Robert Dodier (robert_dodier) Date: 2008-05-04 07:50 Message: Logged In: YES user_id=501686 Originator: NO Looks like the result is not maximally simplified --- reevaluating %o3 => myabs(xp)*myabs(z) as expected. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1955976&group_id=4933 |