Browse Source

Merge branch 'master' into refactor_pla

tempestpy_adaptions
TimQu 8 years ago
parent
commit
3a09a378fc
  1. 27
      src/storm/utility/ModelInstantiator.cpp

27
src/storm/utility/ModelInstantiator.cpp

@ -33,16 +33,24 @@ namespace storm {
storm::storage::SparseMatrixBuilder<ConstantType> matrixBuilder(parametricMatrix.getRowCount(), storm::storage::SparseMatrixBuilder<ConstantType> matrixBuilder(parametricMatrix.getRowCount(),
parametricMatrix.getColumnCount(), parametricMatrix.getColumnCount(),
parametricMatrix.getEntryCount(), parametricMatrix.getEntryCount(),
true, // no force dimensions
true, //Custom row grouping
parametricMatrix.getRowGroupCount());
for(std::size_t rowGroup = 0; rowGroup < parametricMatrix.getRowGroupCount(); ++rowGroup){
matrixBuilder.newRowGroup(parametricMatrix.getRowGroupIndices()[rowGroup]);
for(std::size_t row = parametricMatrix.getRowGroupIndices()[rowGroup]; row < parametricMatrix.getRowGroupIndices()[rowGroup+1]; ++row){
ConstantType dummyValue = storm::utility::one<ConstantType>();
for(auto const& paramEntry : parametricMatrix.getRow(row)){
true,
!parametricMatrix.hasTrivialRowGrouping(),
parametricMatrix.hasTrivialRowGrouping() ? 0 : parametricMatrix.getRowGroupCount());
ConstantType dummyValue = storm::utility::one<ConstantType>();
if (parametricMatrix.hasTrivialRowGrouping()) {
for (uint_fast64_t row = 0; row < parametricMatrix.getRowCount(); ++row) {
for (auto const& paramEntry : parametricMatrix.getRow(row)) {
matrixBuilder.addNextValue(row, paramEntry.getColumn(), dummyValue); matrixBuilder.addNextValue(row, paramEntry.getColumn(), dummyValue);
dummyValue = storm::utility::zero<ConstantType>();
}
}
}
else {
for(uint_fast64_t rowGroup = 0; rowGroup < parametricMatrix.getRowGroupCount(); ++rowGroup){
matrixBuilder.newRowGroup(parametricMatrix.getRowGroupIndices()[rowGroup]);
for (uint_fast64_t row = parametricMatrix.getRowGroupIndices()[rowGroup]; row < parametricMatrix.getRowGroupIndices()[rowGroup+1]; ++row) {
for(auto const& paramEntry : parametricMatrix.getRow(row)){
matrixBuilder.addNextValue(row, paramEntry.getColumn(), dummyValue);
}
} }
} }
} }
@ -96,7 +104,6 @@ namespace storm {
++parametricEntryIt; ++parametricEntryIt;
} }
STORM_LOG_ASSERT(constantEntryIt == constantMatrix.end(), "Parametric matrix seems to have more or less entries then the constant matrix"); STORM_LOG_ASSERT(constantEntryIt == constantMatrix.end(), "Parametric matrix seems to have more or less entries then the constant matrix");
//TODO: is this necessary?
constantMatrix.updateNonzeroEntryCount(); constantMatrix.updateNonzeroEntryCount();
} }

Loading…
Cancel
Save