libsub
rational.h
1 /*
2  Copyright (C) 2014-2015 Carl Hetherington <cth@carlh.net>
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 
18 */
19 
20 namespace sub {
21 
22 class Rational
23 {
24 public:
25  Rational (int numerator_, int denominator_)
26  : numerator (numerator_)
27  , denominator (denominator_)
28  {}
29 
30  int numerator;
31  int denominator;
32 
33  double fraction () const {
34  return double (numerator) / denominator;
35  }
36 
37  bool integer () const;
38  int integer_fraction () const {
39  return numerator / denominator;
40  }
41 };
42 
43 bool operator== (Rational const & a, Rational const & b);
44 Rational max (Rational const & a, Rational const & b);
45 
46 }
Definition: rational.h:23