]> git.donarmstrong.com Git - lilypond.git/blobdiff - python/rational.py
lilypond-manuals.css: edit color scheme and some spacing
[lilypond.git] / python / rational.py
index 705829e120835269894d3991ad28013208d1d598..f2d8360fb8004e4eb1b67ba8bec768dad08e2cd8 100644 (file)
@@ -38,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: