]> git.donarmstrong.com Git - lilypond.git/blobdiff - python/rational.py
Issue 5167/6: Changes: show \markup xxx = ... \etc assignments
[lilypond.git] / python / rational.py
index e3c93d9c17c55745d352f132325ce63cea793de8..f2d8360fb8004e4eb1b67ba8bec768dad08e2cd8 100644 (file)
@@ -2,7 +2,6 @@
 
 from __future__ import division
 
-import decimal as _decimal
 import math as _math
 
 def _gcf(a, b):
@@ -39,18 +38,23 @@ class Rational(object):
            raise TypeError('denominator must have integer type')
        if not denominator:
            raise ZeroDivisionError('rational construction')
-       # Store the fraction in reduced form as _n/_d
-       factor = _gcf(numerator, denominator)
-       self._n = numerator // factor
-       self._d = denominator // factor
+       self._d = denominator
+       self._n = numerator
+       self.normalize_self()
+    # Cancel the fraction to reduced form
+    def normalize_self(self):
+       factor = _gcf(self._n, self._d)
+       self._n = self._n // factor
+       self._d = self._d // factor
        if self._d < 0:
            self._n = -self._n
            self._d = -self._d
+
     def numerator(self):
-       return self._n
+        return self._n
 
     def denominator(self):
-       return self._d
+        return self._d
 
     def __repr__(self):
         if self._d == 1: