I'm using Boost 1.75, via Homebrew. I have a test failing in my code, because the precision of the result of mixed-type arithmetic (multiplication at least) between complex numbers and rational numbers is incorrect. Code for test:
#include <boost/test/unit_test.hpp>
#include <boost/multiprecision/mpc.hpp>
BOOST_AUTO_TEST_SUITE(boost_multiprecision)
BOOST_AUTO_TEST_CASE(precision_complex_rational_mul)
{
using mpq_rational = boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, boost::multiprecision::et_on>;
using mpc_complex = boost::multiprecision::number<boost::multiprecision::backends::mpc_complex_backend<0>, boost::multiprecision::et_on>;
mpc_complex::default_precision(30);
mpq_rational a(1,2);
mpc_complex b(0,1);
mpc_complex c = a*b;
BOOST_CHECK_EQUAL(c.precision(),30);
}
BOOST_AUTO_TEST_SUITE_END() // numtraits tests
The precision of c should be 30 -- it's coming to me as 646392383.