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]
Plus /: MakeBoxes[Plus[arg__], fmt_:TraditionalForm] :=
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]}