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 that 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 bug?
Yes, this is definitely a bug. It was reported to the Boost bug tracker 3 days ago as ticket #12559.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With