diff --git a/Eigen/src/LU/Determinant.h b/Eigen/src/LU/Determinant.h index c94c39494..cb5a6b9fc 100644 --- a/Eigen/src/LU/Determinant.h +++ b/Eigen/src/LU/Determinant.h @@ -82,8 +82,8 @@ template struct determinant_impl Scalar d3_1 = det3(m, 0,d2_23, 2,d2_03, 3,d2_02); Scalar d3_2 = det3(m, 0,d2_13, 1,d2_03, 3,d2_01); Scalar d3_3 = det3(m, 0,d2_12, 1,d2_02, 2,d2_01); - return internal::pmadd(-m(0,3),d3_0, m(1,3)*d3_1) + - internal::pmadd(-m(2,3),d3_2, m(3,3)*d3_3); + return internal::pmadd(static_cast(-m(0,3)),d3_0, static_cast(m(1,3)*d3_1)) + + internal::pmadd(static_cast(-m(2,3)),d3_2, static_cast(m(3,3)*d3_3)); } protected: static EIGEN_DEVICE_FUNC @@ -95,7 +95,7 @@ protected: static EIGEN_DEVICE_FUNC Scalar det3(const Derived& m, Index i0, const Scalar& d0, Index i1, const Scalar& d1, Index i2, const Scalar& d2) { - return internal::pmadd(m(i0,2), d0, internal::pmadd(-m(i1,2), d1, m(i2,2)*d2)); + return internal::pmadd(m(i0,2), d0, internal::pmadd(static_cast(-m(i1,2)), d1, static_cast(m(i2,2)*d2))); } };