// Example program of how to use interval<> of rational<> numbers. // // Sylvain Pion, Guillaume Melquiond, 2002. // 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; }