#include #include #include #include #include #include "io_precision.hpp" using namespace boost::numeric; int main() { std::cout << std::setprecision(std::numeric_limits::digits10) << 1.0/3.0 << '\n' << '\n' << "3 significant digits, last varies with 1\n\n" << interval(1.231,1.232) << '\n' << interval(-1.232,-1.231) << '\n' << interval(9.871,9.872) << '\n' << interval(-9.872,-9.871) << '\n' << interval(1.231e100,1.232e100) << '\n' << interval(-1.232e100,-1.231e100) << '\n' << '\n' << "3 significant digits, last varies with 3\n\n" << interval(1.231,1.234) << '\n' << interval(-1.234,-1.231) << '\n' << interval(9.871,9.874) << '\n' << interval(-9.874,-9.871) << '\n' << interval(1.231e100,1.234e100) << '\n' << interval(-1.234e100,-1.231e100) << '\n' << '\n' << "3 significant digits, last varies with 5\n\n" << interval(1.231,1.236) << '\n' << interval(-1.236,-1.231) << '\n' << interval(9.871,9.876) << '\n' << interval(-9.876,-9.871) << '\n' << interval(1.231e100,1.236e100) << '\n' << interval(-1.236e100,-1.231e100) << '\n' << '\n' << "10 significant digits, last varies with 1\n\n" << interval(1.2345678911,1.2345678912) << '\n' << interval(-1.2345678912,-1.2345678911) << '\n' << interval(9.876543211,9.876543212) << '\n' << interval(-9.876543212,-9.876543211) << '\n' << interval(1.2345678911e100,1.2345678912e100) << '\n' << interval(-1.2345678912e100,-1.2345678911e100) << '\n' << '\n' << "10 significant digits, last varies with 3\n\n" << interval(1.2345678911,1.2345678914) << '\n' << interval(-1.2345678914,-1.2345678911) << '\n' << interval(9.876543211,9.876543214) << '\n' << interval(-9.876543214,-9.876543211) << '\n' << interval(1.2345678911e100,1.2345678914e100) << '\n' << interval(-1.2345678914e100,-1.2345678911e100) << '\n' << '\n' << "10 significant digits, last varies with 5\n\n" << interval(1.2345678911,1.2345678916) << '\n' << interval(-1.2345678916,-1.2345678911) << '\n' << interval(9.8765432111,9.8765432116) << '\n' << interval(-9.8765432116,-9.8765432111) << '\n' << interval(1.2345678911e100,1.2345678916e100) << '\n' << interval(-1.2345678916e100,-1.2345678911e100) << '\n'; }