/* Boost example/rational.cpp * example program of how to use interval< rational<> > * * Copyright 2002-2003 Guillaume Melquiond, Sylvain Pion * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or * copy at http://www.boost.org/LICENSE_1_0.txt) */ // 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; }