STORM_LOG_THROW(model.getModelType()==storm::storage::SymbolicModelDescription::ModelType::DTMC||model.getModelType()==storm::storage::SymbolicModelDescription::ModelType::MDP,storm::exceptions::NotSupportedException,"Can only treat DTMCs/MDPs using the abstraction refinement engine.");
STORM_LOG_THROW(model.getModelType()==storm::storage::SymbolicModelDescription::ModelType::DTMC||model.getModelType()==storm::storage::SymbolicModelDescription::ModelType::MDP,storm::exceptions::NotSupportedException,"Can only treat DTMCs/MDPs using the abstraction refinement engine.");
STORM_LOG_INFO("Obtained quantitative bounds ["<<quantitativeResult.min.getInitialStatesRange().first<<", "<<quantitativeResult.max.getInitialStatesRange().second<<"] on the actual value for the initial states in "<<quantitativeWatch.getTimeInMilliseconds()<<"ms.");
STORM_LOG_INFO("Obtained quantitative bounds ["<<minVal<<", "<<maxVal<<"] on the actual value for the initial states in "<<quantitativeWatch.getTimeInMilliseconds()<<"ms.");
}else{
STORM_LOG_INFO("Obtained quantitative bounds ["<<minVal<<", "<<maxVal<<"] (approx. ["<<storm::utility::convertNumber<double>(minVal)<<", "<<storm::utility::convertNumber<double>(maxVal)<<"]) on the actual value for the initial states in "<<quantitativeWatch.getTimeInMilliseconds()<<"ms.");
}
// (9) Check whether the lower and upper bounds are close enough to terminate with an answer.
// (9) Check whether the lower and upper bounds are close enough to terminate with an answer.
STORM_LOG_INFO("Obtained quantitative bounds ["<<quantitativeResult.getMin().getRange(initialStates).first<<", "<<quantitativeResult.getMax().getRange(initialStates).second<<"] on the actual value for the initial states in "<<quantitativeWatch.getTimeInMilliseconds()<<"ms.");
STORM_LOG_INFO("Obtained quantitative bounds ["<<minVal<<", "<<maxVal<<"] on the actual value for the initial states in "<<quantitativeWatch.getTimeInMilliseconds()<<"ms.");
}else{
STORM_LOG_INFO("Obtained quantitative bounds ["<<minVal<<", "<<maxVal<<"] (approx. ["<<storm::utility::convertNumber<double>(minVal)<<", "<<storm::utility::convertNumber<double>(maxVal)<<"]) on the actual value for the initial states in "<<quantitativeWatch.getTimeInMilliseconds()<<"ms.");
}
// (9) Check whether the lower and upper bounds are close enough to terminate with an answer.
// (9) Check whether the lower and upper bounds are close enough to terminate with an answer.