lilypond-devel
[Top][All Lists]
Advanced

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

Re: Sets TabVoice Stem height to ##f (issue 6303065)


From: mtsolo
Subject: Re: Sets TabVoice Stem height to ##f (issue 6303065)
Date: Tue, 12 Jun 2012 12:54:40 +0000

On 2012/06/12 12:49:45, dak wrote:
http://codereview.appspot.com/6303065/diff/10003/lily/grob.cc
File lily/grob.cc (right):


http://codereview.appspot.com/6303065/diff/10003/lily/grob.cc#newcode472
lily/grob.cc:472: real_ext[d] += offset;
On 2012/06/12 12:32:37, dak wrote:
> I don't understand this.  The only way to get a nan from adding an
offset to
> infinity is by adding another nan or an infinite offset with
different sign.
>
> What case is this supposed to catch?

So what you actually meant to say was
   if (!real_ext.is_empty ())
     real_ext.translate (offset);

If that's what you mean, why don't you write it instead of some
puzzle?

This is not what I mean.  An empty interval is, in LilyPond, an interval
whose left is greater than it's right.  So (3 . 2) is empty, but (3 . 2)
can be translated by an infinite value in either direction and not
result in nan.  So just checking for emptiness isn't enough.

An infinite value in an interval should not be translated by another
infinite value.  It either does nothing (if they both have the same
sign) or results in a nan.

And frankly, shouldn't we rather put this into
flower/include/interval.hh
instead of trying to catch this in arbitrary places in our code?

I had toyed with this idea - this is a bit out of my league, as I don't
know if LilyPond will take a performance hit if we add extra operations
to something as elemental as translate or is_empty.  If this is
appropriate, then the check can go there.

http://codereview.appspot.com/6303065/



reply via email to

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