From: fred Date: Tue, 26 Mar 2002 21:47:19 +0000 (+0000) Subject: lilypond-1.1.32 X-Git-Tag: release/1.5.59~2577 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=029622ab4eb4d9bcb1f47ef54475d8f5f53e1e3f;p=lilypond.git lilypond-1.1.32 --- diff --git a/flower/include/rational.hh b/flower/include/rational.hh index c8af749cda..3a2b8fff31 100644 --- a/flower/include/rational.hh +++ b/flower/include/rational.hh @@ -45,7 +45,9 @@ public: int den () const { return den_; } int num_i () const { return sign_ * num_; } int den_i () const { return den_; } - Rational truncated () const; + Rational trunc_rat () const; + Rational div_rat (Rational) const; + Rational mod_rat (Rational) const; void negate (); operator bool () const; operator int () const; @@ -64,6 +66,7 @@ public: Rational &operator /= (Rational); Rational &operator += (Rational); Rational &operator -= (Rational); + Rational &operator %= (Rational); static int compare (Rational const&, Rational const&); int sign () const; String str () const; @@ -73,6 +76,7 @@ IMPLEMENT_ARITHMETIC_OPERATOR (Rational, / ); IMPLEMENT_ARITHMETIC_OPERATOR (Rational, + ); IMPLEMENT_ARITHMETIC_OPERATOR (Rational, * ); IMPLEMENT_ARITHMETIC_OPERATOR (Rational, - ); +IMPLEMENT_ARITHMETIC_OPERATOR (Rational, % ); INSTANTIATE_COMPARE (Rational const&, Rational::compare); diff --git a/flower/rational.cc b/flower/rational.cc index bab115c9e3..ea9fb1ca46 100644 --- a/flower/rational.cc +++ b/flower/rational.cc @@ -34,7 +34,7 @@ operator << (ostream &o, Rational r) } Rational -Rational::truncated () const +Rational::trunc_rat () const { return Rational(num_ - (num_ % den_), den_); } @@ -90,6 +90,22 @@ Rational::operator - () const return r; } +Rational +Rational::div_rat (Rational div) const +{ + Rational r (*this); + r /= div; + return r.trunc_rat (); +} + +Rational +Rational::mod_rat (Rational div) const +{ + Rational r (*this); + r = (r / div - r.div_rat (div)) * div; + return r; +} + void Rational::normalise () { @@ -141,6 +157,13 @@ compare (Rational const &r, Rational const &s) return Rational::compare (r, s ); } +Rational & +Rational::operator %= (Rational r) +{ + *this = r.mod_rat (r); + return *this; +} + Rational & Rational::operator += (Rational r) { diff --git a/ly/auto-beam-settings.ly b/ly/auto-beam-settings.ly index d52802108a..09113b139d 100644 --- a/ly/auto-beam-settings.ly +++ b/ly/auto-beam-settings.ly @@ -7,6 +7,7 @@ time3_2beamAutoEnd16 = "1/4"; time3_2beamAutoEnd32 = "1/8"; time3_4beamAutoBegin = "1/4"; time3_4beamAutoEnd8 = "3/4"; +time3_4beamAutoBegin32 = "1/8"; time3_4beamAutoEnd32 = "1/8"; time3_8beamAutoBegin = "1/8"; time3_8beamAutoEnd = "3/8";