|
2 | 2 | #include "storm/adapters/RationalFunctionAdapter.h" |
3 | 3 | #include "storm/models/symbolic/StandardRewardModel.h" |
4 | 4 |
|
5 | | - |
6 | | -template <storm::dd::DdType DdType, typename ValueType> |
7 | | -std::shared_ptr<storm::models::Model<ValueType>> performBisimulationMinimization(std::shared_ptr<storm::models::symbolic::Model<DdType, ValueType>> const& model, std::vector<std::shared_ptr<storm::logic::Formula const>> const& formulas, storm::storage::BisimulationType const& bisimulationType, storm::dd::bisimulation::QuotientFormat const& quotientFormat) { |
8 | | - return storm::api::performBisimulationMinimization<DdType, ValueType, ValueType>(model, formulas, bisimulationType, storm::dd::bisimulation::SignatureMode::Eager, quotientFormat); |
| 5 | +template<storm::dd::DdType DdType, typename ValueType> |
| 6 | +std::shared_ptr<storm::models::Model<ValueType>> performBisimulationMinimization( |
| 7 | + std::shared_ptr<storm::models::symbolic::Model<DdType, ValueType>> const& model, std::vector<std::shared_ptr<storm::logic::Formula const>> const& formulas, |
| 8 | + storm::storage::BisimulationType const& bisimulationType, storm::dd::bisimulation::QuotientFormat const& quotientFormat) { |
| 9 | + return storm::api::performBisimulationMinimization<DdType, ValueType, ValueType>(model, formulas, bisimulationType, |
| 10 | + storm::dd::bisimulation::SignatureMode::Eager, quotientFormat); |
9 | 11 | } |
10 | 12 |
|
11 | 13 | // Define python bindings |
12 | 14 | void define_bisimulation(py::module& m) { |
13 | | - |
14 | 15 | // Bisimulation |
15 | | - m.def("_perform_bisimulation", &storm::api::performBisimulationMinimization<double>, "Perform bisimulation", py::arg("model"), py::arg("formulas"), py::arg("bisimulation_type"), py::arg("graph_preserving")); |
16 | | - m.def("_perform_parametric_bisimulation", &storm::api::performBisimulationMinimization<storm::RationalFunction>, "Perform bisimulation on parametric model", py::arg("model"), py::arg("formulas"), py::arg("bisimulation_type"), py::arg("graph_preserving")); |
17 | | - m.def("_perform_symbolic_bisimulation", &performBisimulationMinimization<storm::dd::DdType::Sylvan, double>, "Perform bisimulation", py::arg("model"), py::arg("formulas"), py::arg("bisimulation_type"), py::arg("quotient_format")); |
18 | | - m.def("_perform_symbolic_parametric_bisimulation", &performBisimulationMinimization<storm::dd::DdType::Sylvan, storm::RationalFunction>, "Perform bisimulation on parametric model", py::arg("model"), py::arg("formulas"), py::arg("bisimulation_type"), py::arg("quotient_format")); |
| 16 | + m.def("_perform_bisimulation", &storm::api::performBisimulationMinimization<double>, "Perform bisimulation", py::arg("model"), py::arg("formulas"), |
| 17 | + py::arg("bisimulation_type"), py::arg("graph_preserving")); |
| 18 | + m.def("_perform_parametric_bisimulation", &storm::api::performBisimulationMinimization<storm::RationalFunction>, "Perform bisimulation on parametric model", |
| 19 | + py::arg("model"), py::arg("formulas"), py::arg("bisimulation_type"), py::arg("graph_preserving")); |
| 20 | + m.def("_perform_symbolic_bisimulation", &performBisimulationMinimization<storm::dd::DdType::Sylvan, double>, "Perform bisimulation", py::arg("model"), |
| 21 | + py::arg("formulas"), py::arg("bisimulation_type"), py::arg("quotient_format")); |
| 22 | + m.def("_perform_symbolic_parametric_bisimulation", &performBisimulationMinimization<storm::dd::DdType::Sylvan, storm::RationalFunction>, |
| 23 | + "Perform bisimulation on parametric model", py::arg("model"), py::arg("formulas"), py::arg("bisimulation_type"), py::arg("quotient_format")); |
19 | 24 |
|
20 | 25 | // BisimulationType |
21 | 26 | py::enum_<storm::storage::BisimulationType>(m, "BisimulationType", "Types of bisimulation") |
22 | 27 | .value("STRONG", storm::storage::BisimulationType::Strong) |
23 | | - .value("WEAK", storm::storage::BisimulationType::Weak) |
24 | | - ; |
| 28 | + .value("WEAK", storm::storage::BisimulationType::Weak); |
25 | 29 |
|
26 | 30 | // QuotientFormat |
27 | 31 | py::enum_<storm::dd::bisimulation::QuotientFormat>(m, "QuotientFormat", "Return format of bisimulation quotient") |
28 | 32 | .value("SPARSE", storm::dd::bisimulation::QuotientFormat::Sparse) |
29 | | - .value("DD", storm::dd::bisimulation::QuotientFormat::Dd) |
30 | | - ; |
31 | | - |
| 33 | + .value("DD", storm::dd::bisimulation::QuotientFormat::Dd); |
32 | 34 | } |
0 commit comments