Enforce scalar types in calls to max/min (helps with expression template scalar types)

This commit is contained in:
Gael Guennebaud
2016-07-25 12:35:10 +02:00
parent b118bc76eb
commit 1b2049fbda
6 changed files with 7 additions and 8 deletions

View File

@@ -130,10 +130,9 @@ public:
inline Index rank() const
{
using std::abs;
using std::max;
eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
if(m_singularValues.size()==0) return 0;
RealScalar premultiplied_threshold = (max)(m_singularValues.coeff(0) * threshold(), (std::numeric_limits<RealScalar>::min)());
RealScalar premultiplied_threshold = numext::maxi<RealScalar>(m_singularValues.coeff(0) * threshold(), (std::numeric_limits<RealScalar>::min)());
Index i = m_nonzeroSingularValues-1;
while(i>=0 && m_singularValues.coeff(i) < premultiplied_threshold) --i;
return i+1;