From cd338eb8e3d09af48a47f17a8a1c031fa3719547 Mon Sep 17 00:00:00 2001 From: sjunges Date: Tue, 13 Sep 2016 23:57:47 +0200 Subject: [PATCH] hasMultipleLevel for orderedassignments Former-commit-id: d1a94d693158f5f2cbb358243e63a9408ce1ef6b [formerly e19b59fdacd16b856b341281c9ee993d936891df] Former-commit-id: 9c79f94cdf7ec0f0969fdeb04fd3a96b739e8394 --- src/storage/jani/OrderedAssignments.cpp | 13 +++++++++++++ src/storage/jani/OrderedAssignments.h | 9 ++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/storage/jani/OrderedAssignments.cpp b/src/storage/jani/OrderedAssignments.cpp index 2b7ee613f..9d71174f4 100644 --- a/src/storage/jani/OrderedAssignments.cpp +++ b/src/storage/jani/OrderedAssignments.cpp @@ -65,6 +65,19 @@ namespace storm { return true; } + bool OrderedAssignments::hasMultipleLevels() const { + if(allAssignments.empty()) { + return false; + } + uint64_t firstLevel = allAssignments.front()->getLevel(); + for(auto const& assignment : allAssignments) { + if(assignment->getLevel() != firstLevel) { + return true; + } + } + return false; + } + bool OrderedAssignments::contains(Assignment const& assignment) const { auto it = lowerBound(assignment, allAssignments); if (it != allAssignments.end() && assignment == **it) { diff --git a/src/storage/jani/OrderedAssignments.h b/src/storage/jani/OrderedAssignments.h index c9e07a34d..496912b0e 100644 --- a/src/storage/jani/OrderedAssignments.h +++ b/src/storage/jani/OrderedAssignments.h @@ -32,7 +32,14 @@ namespace storm { * @return True if the assignment was found and removed. */ bool remove(Assignment const& assignment); - + + /*! + * Checks whether the assignments have several levels. + * + * @return True if more than one level occurs in the assignment set. + */ + bool hasMultipleLevels() const; + /*! * Retrieves whether the given assignment is contained in this set of assignments. */