id summary reporter owner description type status milestone component version severity resolution keywords cc 8292 [multiprecision] et_on with uBLAS become bad result Akira Takahashi John Maddock "`cpp_dec_float` with `et_on` with uBLAS become bad result. following example is basic vector processing with `et_on`: {{{ #include #include #include #include namespace mp = boost::multiprecision; namespace ublas = boost::numeric::ublas; using float_type = mp::number>; using vec = ublas::vector; vec make_vector3(float_type x, float_type y, float_type z) { vec v(3); v[0] = x; v[1] = y; v[2] = z; return v; } vec normalize(vec v) { return v / ublas::norm_2(v); } int main() { vec p = make_vector3(0.0f, 0.0f, 0.0f); // now position vec q = make_vector3(3.0f, 0.0f, 6.0f); // target position vec v = normalize(q - p); std::cout << ""vector : "" << v << std::endl; float_type speed = 0.1f; float_type accel = 0.1f; for (int i = 0; i < 20; ++i) { p += v * speed; speed += accel; } std::cout << ""result pos : "" << p << std::endl; } }}} result: {{{ vector : [3](1,0,1) result pos : [3](1,0,1) }}} this result is bad. should be: {{{ vector : [3](0.447214,0,0.894427) result pos : [3](9.39149,0,18.783) }}} following code is using `et_off`: {{{ #include #include #include #include namespace mp = boost::multiprecision; namespace ublas = boost::numeric::ublas; using float_type = mp::number, mp::et_off>; using vec = ublas::vector; vec make_vector3(float_type x, float_type y, float_type z) { vec v(3); v[0] = x; v[1] = y; v[2] = z; return v; } vec normalize(vec v) { return v / ublas::norm_2(v); } int main() { vec p = make_vector3(0.0f, 0.0f, 0.0f); // now position vec q = make_vector3(3.0f, 0.0f, 6.0f); // target position vec v = normalize(q - p); std::cout << ""vector : "" << v << std::endl; float_type speed = 0.1f; float_type accel = 0.1f; for (int i = 0; i < 20; ++i) { p += v * speed; speed += accel; } std::cout << ""result pos : "" << p << std::endl; } }}} result: {{{ vector : [3](0.447214,0,0.894427) result pos : [3](9.39149,0,18.783) }}} this result is correct. And, associated issue is here: http://stackoverflow.com/questions/14948102/boost-matrix-product-for-multiprecision-numbers this is `et_on`'s issue too." Bugs closed To Be Determined multiprecision Boost 1.53.0 Problem fixed