X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fduration.cc;h=814bf6e159db3ee1b8d37444dc69e3fdb5f31232;hb=2ab74abbadbb2aed67c3ae6d42272db92988f8b9;hp=755679fd71cf2d84469e69062efd4b7dabd71be9;hpb=a6a4b3fc2009f17a1a48cca0c11bfd3f38645937;p=lilypond.git diff --git a/lily/duration.cc b/lily/duration.cc index 755679fd71..814bf6e159 100644 --- a/lily/duration.cc +++ b/lily/duration.cc @@ -1,10 +1,21 @@ /* - duration.cc -- implement Duration + This file is part of LilyPond, the GNU music typesetter. - source file of the LilyPond music typesetter - - (c) 1997--2008 Jan Nieuwenhuizen + Copyright (C) 1997--2010 Jan Nieuwenhuizen Han-Wen Nienhuys + + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "duration.hh" @@ -53,16 +64,16 @@ Duration::Duration (Rational r, bool scale) int p = r.num (); int q = r.den (); int k = intlog2 (q) - intlog2 (p); - if ((p << k) < q) + if (shift_left(p, k) < q) k++; - assert ((p << k) >= q && (p << (k-1)) < q); + assert (shift_left(p, k) >= q && shift_left(p, (k-1)) < q); /* If we were to write out log (p/q) in base 2, then the position of the first non-zero bit (ie. k in our notation) would be the durlog and the number of consecutive 1s after that bit would be the number of dots */ - p = (p << k) - q; + p = shift_left(p, k) - q; dots_ = 0; while ((p *= 2) >= q) {