diff --git a/Eigen/src/Core/Solve.h b/Eigen/src/Core/Solve.h index cb06028b1..2d163fe2a 100644 --- a/Eigen/src/Core/Solve.h +++ b/Eigen/src/Core/Solve.h @@ -52,7 +52,7 @@ struct traits > typedef traits BaseTraits; enum { Flags = BaseTraits::Flags & RowMajorBit, - CoeffReadCost = Dynamic + CoeffReadCost = HugeCost }; }; diff --git a/Eigen/src/Core/TriangularMatrix.h b/Eigen/src/Core/TriangularMatrix.h index 438dd4dc9..099a02ec3 100644 --- a/Eigen/src/Core/TriangularMatrix.h +++ b/Eigen/src/Core/TriangularMatrix.h @@ -804,7 +804,7 @@ EIGEN_DEVICE_FUNC void call_triangular_assignment_loop(const DstXprType& dst, co enum { unroll = DstXprType::SizeAtCompileTime != Dynamic - && SrcEvaluatorType::CoeffReadCost != Dynamic + && SrcEvaluatorType::CoeffReadCost < HugeCost && DstXprType::SizeAtCompileTime * SrcEvaluatorType::CoeffReadCost / 2 <= EIGEN_UNROLLING_LIMIT };