Boost :: multiprecision :: sqrt (1) seems to return 0
#include <boost/multiprecision/cpp_int.hpp> #include <boost/multiprecision/number.hpp> #include <iostream> using std::cout; using std::endl; int main() { namespace mp = boost::multiprecision; mp::cpp_int i(1); cout << "i == " << i << endl; cout << "mp::sqrt(i) == " << mp::sqrt(i) << endl; }
Output:
i == 1
mp :: sqrt (i) == 0
I expect sqrt (1) == 1.
I get the same results on coliru and on my local installation with gcc and Boost 1.62. Does this happen to others? Am I missing something or is this a mistake?
source share