#include "storm/models/sparse/Dtmc.h" #include "storm/models/sparse/StandardRewardModel.h" #include "storm/adapters/CarlAdapter.h" #include "storm/exceptions/NotImplementedException.h" #include "storm/exceptions/InvalidArgumentException.h" #include "storm/utility/constants.h" namespace storm { namespace models { namespace sparse { template Dtmc::Dtmc(storm::storage::SparseMatrix const& probabilityMatrix, storm::models::sparse::StateLabeling const& stateLabeling, std::unordered_map const& rewardModels, boost::optional const& optionalChoiceLabeling) : DeterministicModel(storm::models::ModelType::Dtmc, probabilityMatrix, stateLabeling, rewardModels, optionalChoiceLabeling) { STORM_LOG_THROW(probabilityMatrix.isProbabilistic(), storm::exceptions::InvalidArgumentException, "The probability matrix is invalid."); } template Dtmc::Dtmc(storm::storage::SparseMatrix&& probabilityMatrix, storm::models::sparse::StateLabeling&& stateLabeling, std::unordered_map&& rewardModels, boost::optional&& optionalChoiceLabeling) : DeterministicModel(storm::models::ModelType::Dtmc, std::move(probabilityMatrix), std::move(stateLabeling), std::move(rewardModels), std::move(optionalChoiceLabeling)) { STORM_LOG_THROW(probabilityMatrix.isProbabilistic(), storm::exceptions::InvalidArgumentException, "The probability matrix is invalid."); } template class Dtmc; template class Dtmc; #ifdef STORM_HAVE_CARL template class Dtmc; template class Dtmc>; template class Dtmc; #endif } // namespace sparse } // namespace models } // namespace storm