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]}