C++ library adds mathematical fractions.
Example: 1/3, 4/7, 49/357...
1) Create fractions from or 2 "long long", or double, or "long long".
3) Methematic operators +, -, *, /, +=, -=, *=, /=.
4) Logic operators <, >, ==, !=, <=, >=.
5) Operator %.
6) Pow and fast pow.
7) Module: |-a| = a, |b| = b.
8) Input / output stream.
9) Convert in double and string.
boost::rational have almost all functionality listed, except: - no conversion FROM floating point (and there is good reason for this decision, see boost documentation for details) - no % operator (it makes no sense for rational numbers) - no power function (may be implemented in a few lines of code) On the other hand, boost::rational is implemented as class template and can be used with any integer type for numerator and denominator, including BigNum-like. So, boost::rational can be used to implement arbitrary-precision arithmetic. And the lack of arbitrary-precision support in this library makes it almost useless, because rational numerator and denominator tend to grow very fast even in very simple cases. As an example, try to compute rational approximation to e = 2.71... using Taylor series.