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;
}
Yes, this is definitely a bug. It was reported to the Boost bug tracker 3 days ago as ticket #12559.