diff options
author | Robert Lukierski <robert@lukierski.eu> | 2016-10-13 15:00:22 +0100 |
---|---|---|
committer | Robert Lukierski <robert@lukierski.eu> | 2016-10-13 15:00:22 +0100 |
commit | a94791b69a53504aba88f06caad596afa1ac6a34 (patch) | |
tree | aad3c9de62cdc9f4bdad4ca1d006c2be3bf8fd61 /Eigen/src/Core/TriangularMatrix.h | |
parent | 471075f7ad8e78d4d3e400bc1124e39102515aec (diff) |
Fixes for min and abs after Benoit's comments, switched to numext.
Diffstat (limited to 'Eigen/src/Core/TriangularMatrix.h')
-rw-r--r-- | Eigen/src/Core/TriangularMatrix.h | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/Eigen/src/Core/TriangularMatrix.h b/Eigen/src/Core/TriangularMatrix.h index 17fcfeeb9..71f5d4f29 100644 --- a/Eigen/src/Core/TriangularMatrix.h +++ b/Eigen/src/Core/TriangularMatrix.h @@ -641,22 +641,20 @@ MatrixBase<Derived>::triangularView() const template<typename Derived> bool MatrixBase<Derived>::isUpperTriangular(const RealScalar& prec) const { - EIGEN_USING_STD_MATH(abs) RealScalar maxAbsOnUpperPart = static_cast<RealScalar>(-1); - EIGEN_USING_STD_MATH(min) for(Index j = 0; j < cols(); ++j) { - Index maxi = (min)(j, rows()-1); + Index maxi = numext::mini(j, rows()-1); for(Index i = 0; i <= maxi; ++i) { - RealScalar absValue = abs(coeff(i,j)); + RealScalar absValue = numext::abs(coeff(i,j)); if(absValue > maxAbsOnUpperPart) maxAbsOnUpperPart = absValue; } } RealScalar threshold = maxAbsOnUpperPart * prec; for(Index j = 0; j < cols(); ++j) for(Index i = j+1; i < rows(); ++i) - if(abs(coeff(i, j)) > threshold) return false; + if(numext::abs(coeff(i, j)) > threshold) return false; return true; } @@ -668,21 +666,19 @@ bool MatrixBase<Derived>::isUpperTriangular(const RealScalar& prec) const template<typename Derived> bool MatrixBase<Derived>::isLowerTriangular(const RealScalar& prec) const { - EIGEN_USING_STD_MATH(abs) - EIGEN_USING_STD_MATH(min) RealScalar maxAbsOnLowerPart = static_cast<RealScalar>(-1); for(Index j = 0; j < cols(); ++j) for(Index i = j; i < rows(); ++i) { - RealScalar absValue = abs(coeff(i,j)); + RealScalar absValue = numext::abs(coeff(i,j)); if(absValue > maxAbsOnLowerPart) maxAbsOnLowerPart = absValue; } RealScalar threshold = maxAbsOnLowerPart * prec; for(Index j = 1; j < cols(); ++j) { - Index maxi = (min)(j, rows()-1); + Index maxi = numext::mini(j, rows()-1); for(Index i = 0; i < maxi; ++i) - if(abs(coeff(i, j)) > threshold) return false; + if(numext::abs(coeff(i, j)) > threshold) return false; } return true; } @@ -893,10 +889,9 @@ struct triangular_assignment_loop<Kernel, Mode, Dynamic, SetOpposite> EIGEN_DEVICE_FUNC static inline void run(Kernel &kernel) { - EIGEN_USING_STD_MATH(min) for(Index j = 0; j < kernel.cols(); ++j) { - Index maxi = (min)(j, kernel.rows()); + Index maxi = numext::mini(j, kernel.rows()); Index i = 0; if (((Mode&Lower) && SetOpposite) || (Mode&Upper)) { |