diff --git a/Eigen/src/Core/MapBase.h b/Eigen/src/Core/MapBase.h index 0151cc67f..51e041db6 100644 --- a/Eigen/src/Core/MapBase.h +++ b/Eigen/src/Core/MapBase.h @@ -66,11 +66,11 @@ template class MapBase inline const Scalar* data() const { return m_data; } template struct force_aligned_impl { - AlignedDerivedType static run(MapBase& a) { return a.derived(); } + static AlignedDerivedType run(MapBase& a) { return a.derived(); } }; template struct force_aligned_impl { - AlignedDerivedType static run(MapBase& a) { return a.derived()._convertToForceAligned(); } + static AlignedDerivedType run(MapBase& a) { return a.derived()._convertToForceAligned(); } }; /** \returns an expression equivalent to \c *this but having the \c PacketAccess constant diff --git a/Eigen/src/Core/StableNorm.h b/Eigen/src/Core/StableNorm.h index 22809633d..6056cafab 100644 --- a/Eigen/src/Core/StableNorm.h +++ b/Eigen/src/Core/StableNorm.h @@ -115,20 +115,20 @@ MatrixBase::blueNorm() const ei_assert(false && "the algorithm cannot be guaranteed on this computer"); } iexp = -((1-iemin)/2); - b1 = std::pow(double(ibeta),iexp); // lower boundary of midrange + b1 = Scalar(std::pow(double(ibeta),iexp)); // lower boundary of midrange iexp = (iemax + 1 - it)/2; - b2 = std::pow(double(ibeta),iexp); // upper boundary of midrange + b2 = Scalar(std::pow(double(ibeta),iexp)); // upper boundary of midrange iexp = (2-iemin)/2; - s1m = std::pow(double(ibeta),iexp); // scaling factor for lower range + s1m = Scalar(std::pow(double(ibeta),iexp)); // scaling factor for lower range iexp = - ((iemax+it)/2); - s2m = std::pow(double(ibeta),iexp); // scaling factor for upper range + s2m = Scalar(std::pow(double(ibeta),iexp)); // scaling factor for upper range overfl = rbig*s2m; // overfow boundary for abig - eps = std::pow(double(ibeta), 1-it); + eps = Scalar(std::pow(double(ibeta), 1-it)); relerr = ei_sqrt(eps); // tolerance for neglecting asml abig = 1.0/eps - 1.0; - if (RealScalar(nbig)>abig) nmax = abig; // largest safe n + if (RealScalar(nbig)>abig) nmax = int(abig); // largest safe n else nmax = nbig; } int n = size(); diff --git a/Eigen/src/Core/TriangularMatrix.h b/Eigen/src/Core/TriangularMatrix.h index c262ea7a7..b0362f20c 100644 --- a/Eigen/src/Core/TriangularMatrix.h +++ b/Eigen/src/Core/TriangularMatrix.h @@ -234,14 +234,14 @@ template class TriangularView inline TriangularView,TransposeMode> adjoint() { return m_matrix.adjoint().nestByValue(); } /** \sa MatrixBase::adjoint() const */ - const inline TriangularView,TransposeMode> adjoint() const + inline const TriangularView,TransposeMode> adjoint() const { return m_matrix.adjoint().nestByValue(); } /** \sa MatrixBase::transpose() */ inline TriangularView >,TransposeMode> transpose() { return m_matrix.transpose().nestByValue(); } /** \sa MatrixBase::transpose() const */ - const inline TriangularView >,TransposeMode> transpose() const + inline const TriangularView >,TransposeMode> transpose() const { return m_matrix.transpose().nestByValue(); } PlainMatrixType toDense() const diff --git a/test/product_trsm.cpp b/test/product_trsm.cpp index 4f0fd15be..9f372df91 100644 --- a/test/product_trsm.cpp +++ b/test/product_trsm.cpp @@ -25,9 +25,9 @@ #include "main.h" #define VERIFY_TRSM(TRI,XB) { \ - XB.setRandom(); ref = XB; \ - TRI.template solveInPlace(XB); \ - VERIFY_IS_APPROX(TRI.toDense() * XB, ref); \ + (XB).setRandom(); ref = (XB); \ + (TRI).solveInPlace(XB); \ + VERIFY_IS_APPROX((TRI).toDense() * (XB), ref); \ } template void trsm(int size,int cols)