lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Shortcut Rational addition if either operand is zero (issue 55169004


From: hanwenn
Subject: Re: Shortcut Rational addition if either operand is zero (issue 551690046 by address@hidden)
Date: Sun, 12 Apr 2020 11:01:31 -0700

 


https://codereview.appspot.com/551690046/diff/573690043/flower/rational.cc
File flower/rational.cc (right):

https://codereview.appspot.com/551690046/diff/573690043/flower/rational.cc#newcode257
flower/rational.cc:257: if (is_infinity ())
On 2020/04/12 16:55:05, Dan Eble wrote:
> The hazard of reviewing this class is that there's always something to
wonder
> about.  This time, I wonder about adding +infinity and -infinity
together (in
> either order).

yes. I recommend against doing that :-)

https://codereview.appspot.com/551690046/diff/573690043/flower/rational.cc#newcode261
flower/rational.cc:261: else if (r.sign_ == 0)
On 2020/04/12 16:55:05, Dan Eble wrote:
> Is this the only micro-optimization you measured?  Other ideas you
might wish to
> try:
> 
> * move the conditions that read this->sign_ together
> 
> * are infinities handled first because they are significantly more
common than
> zeros?  try moving the branches that test for zero before the branches
that test
> for infinities
> 
> * inline a subset of the shortcuts in rational.hh
> 
> In any case, noting your findings in a concise comment would help
future
> maintainers avoid erasing your gains.

It's the only one I investigated.  The rational addition shows up
because we add Moments together in many places. Since those generally
have grace == 0, it's doing a lot of unwarranted
multiplication/division.

I'll move the zero check first, because it's more likely than the
infinity check.

https://codereview.appspot.com/551690046/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]