X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Finclude%2Frational.hh;h=8ac80fb1246a0b507f6d842a1d3d230e2f8b24fc;hb=c496b95fc4c1d0bda1098945f53c513e56060881;hp=7ea4e0aaf21ff78cf105c284552c3a3906f8154e;hpb=0d11cc81d96ba3cbe5d3c221aba3ee16e916c4c9;p=lilypond.git diff --git a/flower/include/rational.hh b/flower/include/rational.hh index 7ea4e0aaf2..8ac80fb124 100644 --- a/flower/include/rational.hh +++ b/flower/include/rational.hh @@ -3,22 +3,14 @@ source file of the Flower Library - (c) 1997--1999 Han-Wen Nienhuys + (c) 1997--2005 Han-Wen Nienhuys */ #ifndef RATIONAL_HH #define RATIONAL_HH -#if PARANOIA -#ifndef Rational -#define Rational MyRational -#endif -#endif - -#include "compare.hh" -#include "arithmetic-operator.hh" -#include "fproto.hh" +#include "string.hh" /** Rational numbers. Included is support for + and - infinity. @@ -39,29 +31,33 @@ class Rational { public: void set_infinite (int sign); - bool infty_b () const; + bool is_infinity () const; void invert (); - int num () const { return sign_ * num_; } - int den () const { return den_; } - int num_i () const { return sign_ * num_; } - int den_i () const { return den_; } + int numerator () const { return sign_ * num_; } + int denominator () const { return den_; } + int num () const { return numerator(); } + int den () const { return denominator(); } + Rational trunc_rat () const; Rational div_rat (Rational) const; Rational mod_rat (Rational) const; void negate (); - operator bool () const; - operator int () const; + // operator bool () const; + int to_int () const; operator double () const; Rational operator - () const; /** Initialize to 0. */ Rational (); - Rational (int, int =1); + Rational (int); + Rational (int, int); Rational (double); Rational (Rational const&r) { copy (r);} + Rational &operator = (Rational const &r) { + copy (r); return *this; + } - Rational &operator = (Rational const &); Rational &operator *= (Rational); Rational &operator /= (Rational); Rational &operator += (Rational); @@ -69,7 +65,7 @@ public: Rational &operator %= (Rational); static int compare (Rational const&, Rational const&); int sign () const; - String str () const; + String to_string () const; }; IMPLEMENT_ARITHMETIC_OPERATOR (Rational, / ); @@ -91,8 +87,11 @@ Rational::copy (Rational const&r) den_ = r.den_; } -class ostream; +#if 0 ostream & operator << (ostream &, Rational); +#endif + +const Rational infinity_rat = INT_MAX; #endif // RATIONAL_HH