X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Frational.cc;h=7fe157c5429cf28b61799688cee71977d82e0197;hb=refs%2Fheads%2Fdon%2Fdep5_copyright;hp=6046374630bf7e964de4a1c0070e6a44e49c54af;hpb=852977de8121f26b97abe7e63bd9b1a233274730;p=lilypond.git diff --git a/flower/rational.cc b/flower/rational.cc index 6046374630..7fe157c542 100644 --- a/flower/rational.cc +++ b/flower/rational.cc @@ -1,9 +1,20 @@ /* - rational.cc -- implement Rational + This file is part of LilyPond, the GNU music typesetter. - source file of the Flower Library + Copyright (C) 1997--2011 Han-Wen Nienhuys - (c) 1997--2007 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "rational.hh" @@ -20,7 +31,7 @@ double Rational::to_double () const { if (sign_ == -1 || sign_ == 1 || sign_ == 0) - return ((double)sign_) * num_ / den_; + return (double)sign_ * (double)num_ / (double)den_; if (sign_ == -2) return -HUGE_VAL; else if (sign_ == 2) @@ -76,6 +87,13 @@ Rational::Rational (I64 n) den_ = 1; } +Rational::Rational (U64 n) +{ + sign_ = 1; + num_ = n; + den_ = 1; +} + Rational::Rational (int n) { sign_ = ::sign (n); @@ -347,7 +365,7 @@ Rational::to_string () const int Rational::to_int () const { - return (int) num () / den (); + return (int)(num () / den ()); } int