diff --git a/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h b/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h index 49326cd0e..fbc55507f 100644 --- a/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +++ b/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h @@ -198,7 +198,7 @@ class MatrixFunction void permuteSchur(); void swapEntriesInSchur(int index); void computeBlockAtomic(); - Block block(const MatrixType& A, int i, int j); + typename BlockReturnType::Type block(const MatrixType& A, int i, int j); void computeOffDiagonal(); DynMatrixType solveTriangularSylvester(const DynMatrixType& A, const DynMatrixType& B, const DynMatrixType& C); @@ -311,7 +311,7 @@ void MatrixFunction::computeClusterSize() { const int rows = m_T.rows(); VectorType diag = m_T.diagonal(); - const int numClusters = m_clusters.size(); + const int numClusters = static_cast(m_clusters.size()); m_clusterSize.setZero(numClusters); m_eivalToCluster.resize(rows); @@ -400,7 +400,7 @@ void MatrixFunction::computeBlockAtomic() /** \brief Return block of matrix according to blocking given by #m_blockStart */ template -Block MatrixFunction::block(const MatrixType& A, int i, int j) +typename BlockReturnType::Type MatrixFunction::block(const MatrixType& A, int i, int j) { return A.block(m_blockStart(i), m_blockStart(j), m_clusterSize(i), m_clusterSize(j)); }