Re: LeafCount Question

• To: mathgroup at smc.vnet.net
• Subject: [mg25808] Re: LeafCount Question
• From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
• Date: Sat, 28 Oct 2000 01:41:02 -0400 (EDT)
• Organization: Universitaet Leipzig
• References: <8t63s9\$eg2@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Hi,

Unprotect[Plus]

Module[{sarg = {arg}, pos, neg},
neg = Select[sarg, MatchQ[#, a_*_ /; a < 0] &];
pos = Complement[sarg, neg];
pos = {MakeBoxes[#, fmt], "+"} & /@ pos;
neg = {"-", MakeBoxes[#, fmt]} & /@  (-# & /@ neg);
pos = Flatten[#, 1] & /@ {pos, neg};
RowBox[
Join @@ pos //. {a1___, "+", "-", a2___} :> {a1, "-",
a2} /.
{a1__, "+"} :> {a1}]
]

Protect[Plus]

may produce the formating you want.

Regards
Jens

Dana wrote:
>
> Hello.  Using Mathematica 4.0  When one solves equations, I get a little frustrated
> when the answers come out as
> -A +B, when the answer looks much better as...
> B - A
>
> I was hoping that the "LeafCount" would be smaller with my "preferred" way,
> but for some reason, it does not look like there is a difference.
>
> In[19]:=
> {LeafCount[-B + D], LeafCount[D - B]}
>
> Out[19]=
> {5, 5}
>
> Here is a simple Solve, and it is a little embarrassing to say the answer is
> (-B + D)..Etc when  everyone else will have to change this  manually to (D -
> B)...ect.
>
> Is there a way around this?  Again, I was hoping LeafCount would do the
> trick, but it apparently does not.
> Thank you in advance.  Dana.
>
> FullSimplify[Solve[{Y == A*X + B, Y == C*X + D}, {X, Y}],
>   ComplexityFunction -> LeafCount]
>
> {{X -> (-B + D)/(A - C), Y -> (-(B*C) + A*D)/(A - C)}}
>
> Since I am new to Mathematica, I noticed the following...
> Internally, it looks like no difference.  It is just frustrating.
>
> In[25]:=
> {FullForm[(-B + D)], FullForm[(D - B)]}
>
> Out[25]=
> {Plus[Times[-1, B], D], Plus[Times[-1, B], D]}

```

• Prev by Date: RE: A simple problem
• Next by Date: Re: LeafCount Question
• Previous by thread: Re: LeafCount Question
• Next by thread: Re: LeafCount Question