Fix use of FMA in triangular solver for boost multiprecision.
diff --git a/Eigen/src/SparseCore/TriangularSolver.h b/Eigen/src/SparseCore/TriangularSolver.h
index 10e27d7..fb8c157 100644
--- a/Eigen/src/SparseCore/TriangularSolver.h
+++ b/Eigen/src/SparseCore/TriangularSolver.h
@@ -75,7 +75,7 @@
} else if (it && it.index() == i)
++it;
for (; it; ++it) {
- tmp = numext::fma(-it.value(), other.coeff(it.index(), col), tmp);
+ tmp = numext::fma<Scalar>(-it.value(), other.coeff(it.index(), col), tmp);
}
if (Mode & UnitDiag)
@@ -108,7 +108,7 @@
}
if (it && it.index() == i) ++it;
for (; it; ++it) {
- other.coeffRef(it.index(), col) = numext::fma(-tmp, it.value(), other.coeffRef(it.index(), col));
+ other.coeffRef(it.index(), col) = numext::fma<Scalar>(-tmp, it.value(), other.coeffRef(it.index(), col));
}
}
}
@@ -138,7 +138,7 @@
}
LhsIterator it(lhsEval, i);
for (; it && it.index() < i; ++it) {
- other.coeffRef(it.index(), col) = numext::fma(-tmp, it.value(), other.coeffRef(it.index(), col));
+ other.coeffRef(it.index(), col) = numext::fma<Scalar>(-tmp, it.value(), other.coeffRef(it.index(), col));
}
}
}