diff --git a/Eigen/src/Array/BooleanRedux.h b/Eigen/src/Array/BooleanRedux.h index 4e8218327..cd59eb004 100644 --- a/Eigen/src/Array/BooleanRedux.h +++ b/Eigen/src/Array/BooleanRedux.h @@ -139,7 +139,7 @@ inline bool MatrixBase::any() const template inline int MatrixBase::count() const { - return this->cast().cast().sum(); + return this->cast().template cast().sum(); } #endif // EIGEN_ALLANDANY_H diff --git a/Eigen/src/Core/CoreInstantiations.cpp b/Eigen/src/Core/CoreInstantiations.cpp index 56a944891..e72b70580 100644 --- a/Eigen/src/Core/CoreInstantiations.cpp +++ b/Eigen/src/Core/CoreInstantiations.cpp @@ -32,7 +32,7 @@ namespace Eigen { #define EIGEN_INSTANTIATE_PRODUCT(TYPE) \ -template static void ei_cache_friendly_product( \ +template void ei_cache_friendly_product( \ int _rows, int _cols, int depth, \ bool _lhsRowMajor, const TYPE* _lhs, int _lhsStride, \ bool _rhsRowMajor, const TYPE* _rhs, int _rhsStride, \ diff --git a/Eigen/src/Core/MathFunctions.h b/Eigen/src/Core/MathFunctions.h index f2f2a1b62..6aa60fd07 100644 --- a/Eigen/src/Core/MathFunctions.h +++ b/Eigen/src/Core/MathFunctions.h @@ -35,16 +35,6 @@ template inline T ei_random_amplitude() else return static_cast(10); } -template inline T ei_hypot(T x, T y) -{ - T _x = ei_abs(x); - T _y = ei_abs(y); - T p = std::max(_x, _y); - T q = std::min(_x, _y); - T qp = q/p; - return p * ei_sqrt(T(1) + qp*qp); -} - /************** *** int *** **************/ @@ -292,4 +282,14 @@ inline bool ei_isApproxOrLessThan(long double a, long double b, long double prec return a <= b || ei_isApprox(a, b, prec); } +template inline T ei_hypot(T x, T y) +{ + T _x = ei_abs(x); + T _y = ei_abs(y); + T p = std::max(_x, _y); + T q = std::min(_x, _y); + T qp = q/p; + return p * ei_sqrt(T(1) + qp*qp); +} + #endif // EIGEN_MATHFUNCTIONS_H diff --git a/Eigen/src/Core/SolveTriangular.h b/Eigen/src/Core/SolveTriangular.h index 12fb0e1d1..6adffe784 100644 --- a/Eigen/src/Core/SolveTriangular.h +++ b/Eigen/src/Core/SolveTriangular.h @@ -35,7 +35,7 @@ template::value ? -1 // this is to solve ambiguous specializations - : int(Lhs::Flags) & (RowMajorBit|SparseBit) + : int(Lhs::Flags) & int(RowMajorBit|SparseBit) > struct ei_solve_triangular_selector;