From 483eb2f56657e8e7f419ab1a4fab8dce9ade8609 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 20:24:20 +0200 Subject: Adding upstream version 14.2.21. Signed-off-by: Daniel Baumann --- .../libs/numeric/interval/examples/rational.cpp | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/boost/libs/numeric/interval/examples/rational.cpp (limited to 'src/boost/libs/numeric/interval/examples/rational.cpp') diff --git a/src/boost/libs/numeric/interval/examples/rational.cpp b/src/boost/libs/numeric/interval/examples/rational.cpp new file mode 100644 index 00000000..937171df --- /dev/null +++ b/src/boost/libs/numeric/interval/examples/rational.cpp @@ -0,0 +1,43 @@ +/* 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; +} -- cgit v1.2.3