#include #include using namespace boost::numeric; using namespace interval_lib; //typedef interval ival; namespace dummy { using namespace boost; using namespace numeric; using namespace interval_lib; typedef save_state > R; typedef checking_strict P; typedef interval > I; }; typedef dummy::I ival; void test_bug() { volatile double third1_vol = 1.0/3.0; double third1 = third1_vol; double third2 = 1.0/3.0; ival v1 = ival(third1) * 3.0; ival v2 = ival(third2) * 3.0; printf("third1 = %.64f\nthird2 = %.64f\nv1 = (%.64f,%.64f)\nv2 = (%.64f,%.64f)\n", third1, third2, lower(v1), upper(v1), lower(v2), upper(v2)); return; } int main() { test_bug(); return 0; }