X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Finclude%2Frational.hh;h=4c4b0a3891dbfeb74146715c466d94c22161edfd;hb=7e72a1e50e94a7f9738d62599de79fe7745f600c;hp=e095f5871092a82e234b7cf5cc06bf5da90aaf8d;hpb=fc3e875d6bf06f0680e897faffdcab36ad975a03;p=lilypond.git diff --git a/flower/include/rational.hh b/flower/include/rational.hh index e095f58710..4c4b0a3891 100644 --- a/flower/include/rational.hh +++ b/flower/include/rational.hh @@ -3,18 +3,18 @@ source file of the Flower Library - (c) 1997--2000 Han-Wen Nienhuys + (c) 1997--2004 Han-Wen Nienhuys */ #ifndef RATIONAL_HH #define RATIONAL_HH - #include "compare.hh" #include "arithmetic-operator.hh" #include "flower-proto.hh" -class String; +#include "string.hh" + /** Rational numbers. Included is support for + and - infinity. @@ -35,29 +35,31 @@ 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_; } + 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); @@ -65,7 +67,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, / ); @@ -87,9 +89,10 @@ Rational::copy (Rational const&r) den_ = r.den_; } -class ostream; +#if 0 ostream & operator << (ostream &, Rational); +#endif const Rational infinity_rat = INT_MAX;