You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
2.2 KiB
29 lines
2.2 KiB
#include "model_instantiator.h"
|
|
#include "storm/models/sparse/Model.h"
|
|
|
|
template<typename ValueType> using Model = storm::models::sparse::Model<ValueType>;
|
|
template<typename ValueType> using Dtmc = storm::models::sparse::Dtmc<ValueType>;
|
|
template<typename ValueType> using Mdp = storm::models::sparse::Mdp<ValueType>;
|
|
template<typename ValueType> using Ctmc = storm::models::sparse::Ctmc<ValueType>;
|
|
template<typename ValueType> using MarkovAutomaton = storm::models::sparse::MarkovAutomaton<ValueType>;
|
|
|
|
// Model instantiator
|
|
void define_model_instantiator(py::module& m) {
|
|
py::class_<storm::utility::ModelInstantiator<Dtmc<storm::RationalFunction>, Dtmc<double>>>(m, "PDtmcInstantiator", "Instantiate PDTMCs to DTMCs")
|
|
.def(py::init<Dtmc<storm::RationalFunction>>(), "parametric model"_a)
|
|
.def("instantiate", &storm::utility::ModelInstantiator<Dtmc<storm::RationalFunction>, Dtmc<double>>::instantiate, "Instantiate model with given parameter values")
|
|
;
|
|
|
|
py::class_<storm::utility::ModelInstantiator<Mdp<storm::RationalFunction>,Mdp<double>>>(m, "PMdpInstantiator", "Instantiate PMDPs to MDPs")
|
|
.def(py::init<Mdp<storm::RationalFunction>>(), "parametric model"_a)
|
|
.def("instantiate", &storm::utility::ModelInstantiator<Mdp<storm::RationalFunction>, Mdp<double>>::instantiate, "Instantiate model with given parameter values")
|
|
;
|
|
|
|
py::class_<storm::utility::ModelInstantiator<Ctmc<storm::RationalFunction>,Ctmc<double>>>(m, "PCtmcInstantiator", "Instantiate PCTMCs to CTMCs")
|
|
.def(py::init<Ctmc<storm::RationalFunction>>(), "parametric model"_a)
|
|
.def("instantiate", &storm::utility::ModelInstantiator<Ctmc<storm::RationalFunction>, Ctmc<double>>::instantiate, "Instantiate model with given parameter values");
|
|
|
|
py::class_<storm::utility::ModelInstantiator<MarkovAutomaton<storm::RationalFunction>,MarkovAutomaton<double>>>(m, "PMaInstantiator", "Instantiate PMAs to MAs")
|
|
.def(py::init<MarkovAutomaton<storm::RationalFunction>>(), "parametric model"_a)
|
|
.def("instantiate", &storm::utility::ModelInstantiator<MarkovAutomaton<storm::RationalFunction>, MarkovAutomaton<double>>::instantiate, "Instantiate model with given parameter values");
|
|
}
|