]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.1.32
authorfred <fred>
Tue, 26 Mar 2002 21:47:19 +0000 (21:47 +0000)
committerfred <fred>
Tue, 26 Mar 2002 21:47:19 +0000 (21:47 +0000)
flower/include/rational.hh
flower/rational.cc
ly/auto-beam-settings.ly

index c8af749cda277dbf05ffa8eaa803202f47d57969..3a2b8fff31476bc1f4dc9800adf07e7e6c98de8e 100644 (file)
@@ -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);
 
index bab115c9e37e33f797a146a1d341df52662bba57..ea9fb1ca46e2ba35553eaa53d0c8385098eec966 100644 (file)
@@ -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)
 {
index d52802108a82156167933403b434e2a848fff6fa..09113b139d86a30c518759ff6b3ec6008c837954 100644 (file)
@@ -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";