/* Boost example/rational.cpp * example program of how to use interval< rational<> > * * Copyright Sylvain Pion, Guillaume Melquiond 2002-2003 * Permission to use, copy, modify, sell, and distribute this software * is hereby granted without fee provided that the above copyright notice * appears in all copies and that both that copyright notice and this * permission notice appear in supporting documentation. * * None of the above authors make any representation about the * suitability of this software for any purpose. It is provided "as * is" without express or implied warranty. * * $Id$ */ // it would have been enough to only include: // // but it's a bit overkill to include processor intrinsics // and transcendental functions, so we do it by ourselves #include // base class #include // default arithmetic rounding policy #include // default checking policy #include // += *= -= etc #include // default policy #include #include typedef boost::rational Rat; typedef boost::numeric::interval Interval; std::ostream& operator<<(std::ostream& os, const Interval& r) { os << "[" << r.lower() << "," << r.upper() << "]"; return os; } int main() { Rat p(2, 3), q(3, 4); Interval z(4, 5); Interval a(p, q); a += z; z *= q; a -= p; a /= q; std::cout << z << std::endl; std::cout << a << std::endl; }