diff --git a/Sofa/Component/LinearSystem/src/sofa/component/linearsystem/ConstantSparsityPatternSystem.h b/Sofa/Component/LinearSystem/src/sofa/component/linearsystem/ConstantSparsityPatternSystem.h index a2a8b0885e5..1fc1605e4ea 100644 --- a/Sofa/Component/LinearSystem/src/sofa/component/linearsystem/ConstantSparsityPatternSystem.h +++ b/Sofa/Component/LinearSystem/src/sofa/component/linearsystem/ConstantSparsityPatternSystem.h @@ -69,7 +69,7 @@ class SOFA_COMPONENT_LINEARSYSTEM_API ConstantSparsityPatternSystem : public Mat void resizeSystem(sofa::Size n) override; void clearSystem() override; - using ConstantCRSMapping = std::unordered_map; + using ConstantCRSMapping = std::unordered_map; bool isConstantSparsityPatternUsedYet() const; diff --git a/Sofa/Component/LinearSystem/src/sofa/component/linearsystem/ConstantSparsityPatternSystem.inl b/Sofa/Component/LinearSystem/src/sofa/component/linearsystem/ConstantSparsityPatternSystem.inl index b66aeda105d..c70a36c737b 100644 --- a/Sofa/Component/LinearSystem/src/sofa/component/linearsystem/ConstantSparsityPatternSystem.inl +++ b/Sofa/Component/LinearSystem/src/sofa/component/linearsystem/ConstantSparsityPatternSystem.inl @@ -132,7 +132,7 @@ void ConstantSparsityPatternSystem::replaceLocalMatrixMapped(c mat->compressedInsertionOrderList.reserve(insertionOrderList.size()); for (const auto& [row, col] : insertionOrderList) { - mat->compressedInsertionOrderList.push_back(mapping.at(row + col * sharedMatrix->rows())); + mat->compressedInsertionOrderList.push_back(mapping.at(static_cast(row) + static_cast(col) * sharedMatrix->rows())); } } else @@ -209,7 +209,7 @@ void ConstantSparsityPatternSystem::replaceLocalMatrixNonMappe // row and col are in global coordinates but the local coordinates will be checked pairInsertionOrderList.push_back({row - posInGlobalMatrix[0], col - posInGlobalMatrix[1]}); - const auto flatIndex = row + col * this->getSystemMatrix()->rows(); + const auto flatIndex = static_cast(row) + static_cast(col) * this->getSystemMatrix()->rows(); const auto it = m_constantCRSMapping->find(flatIndex); if (it != m_constantCRSMapping->end()) { @@ -327,7 +327,7 @@ void ConstantSparsityPatternSystem::buildHashTable(linearalgeb for(auto xj = rowRange.begin() ; xj < rowRange.end() ; ++xj ) // for each non-null block { const auto col = M.colsIndex[xj]; - mapping.emplace(row + col * M.rows(), xj); + mapping.emplace(static_cast(row) + static_cast(col) * M.rows(), xj); } } }