In CLN, a complex number of type cl_N with vanishing imaginary part is not
necessarily a real number of type cl_R.
This bug has been reported by T. Huber.
std::vector<int> qlsts;
for (std::size_t j = r; j >= 1; --j) {
qlstx.push_back(cln::cl_N(1) - x[j-1]);
std::vector<int> qlsts;
for (std::size_t j = r; j >= 1; --j) {
qlstx.push_back(cln::cl_N(1) - x[j-1]);
- if (instanceof(x[j-1], cln::cl_R_ring) && realpart(x[j-1]) > 1) {
+ if (imagpart(x[j-1])==0 && realpart(x[j-1]) >= 1) {
qlsts.push_back(1);
} else {
qlsts.push_back(-s[j-1]);
qlsts.push_back(1);
} else {
qlsts.push_back(-s[j-1]);