Matthias Volk
8 years ago
4 changed files with 59 additions and 43 deletions
@ -0,0 +1,14 @@ |
|||
#include "result.h"
|
|||
|
|||
// Define python bindings
|
|||
void define_result(py::module& m) { |
|||
|
|||
// PmcResult
|
|||
py::class_<PmcResult, std::shared_ptr<PmcResult>>(m, "PmcResult", "Holds the results after parametric model checking") |
|||
.def("__str__", &PmcResult::toString) |
|||
.def_property_readonly("result_function", &PmcResult::getResultFunction, "Result as rational function") |
|||
.def_property_readonly("constraints_well_formed", &PmcResult::getConstraintsWellFormed, "Constraints ensuring well-formed probabilities") |
|||
.def_property_readonly("constraints_graph_preserving", &PmcResult::getConstraintsGraphPreserving, "Constraints ensuring graph preservation") |
|||
; |
|||
|
|||
} |
@ -0,0 +1,42 @@ |
|||
#ifndef PYTHON_CORE_RESULT_H_ |
|||
#define PYTHON_CORE_RESULT_H_ |
|||
|
|||
#include "common.h" |
|||
|
|||
// Class holding the parametric model checking result |
|||
class PmcResult { |
|||
public: |
|||
storm::RationalFunction resultFunction; |
|||
std::unordered_set<storm::ArithConstraint<storm::RationalFunction>> constraintsWellFormed; |
|||
std::unordered_set<storm::ArithConstraint<storm::RationalFunction>> constraintsGraphPreserving; |
|||
|
|||
storm::RationalFunction getResultFunction() const { |
|||
return resultFunction; |
|||
} |
|||
|
|||
std::unordered_set<storm::ArithConstraint<storm::RationalFunction>> getConstraintsWellFormed() const { |
|||
return constraintsWellFormed; |
|||
} |
|||
|
|||
std::unordered_set<storm::ArithConstraint<storm::RationalFunction>> getConstraintsGraphPreserving() const { |
|||
return constraintsGraphPreserving; |
|||
} |
|||
|
|||
std::string toString() { |
|||
std::stringstream stream; |
|||
stream << resultFunction << std::endl; |
|||
stream << "Well formed constraints:" << std::endl; |
|||
for (auto constraint : constraintsWellFormed) { |
|||
stream << constraint << std::endl; |
|||
} |
|||
stream << "Graph preserving constraints:" << std::endl; |
|||
for (auto constraint : constraintsGraphPreserving) { |
|||
stream << constraint << std::endl; |
|||
} |
|||
return stream.str(); |
|||
} |
|||
}; |
|||
|
|||
void define_result(py::module& m); |
|||
|
|||
#endif /* PYTHON_CORE_RESULT_H_ */ |
Write
Preview
Loading…
Cancel
Save
Reference in new issue