From bb6a80f97833080e2980d2aa8e96b5c91ae90a47 Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Fri, 23 Jan 2015 01:47:42 +0000 Subject: [PATCH] SubNondetModel: more efficient allSuccessorsInSet and someSuccessorsInSet [Joachim Klein]. git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9544 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/src/explicit/SubNondetModel.java | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/prism/src/explicit/SubNondetModel.java b/prism/src/explicit/SubNondetModel.java index 570c48c8..282a29f9 100644 --- a/prism/src/explicit/SubNondetModel.java +++ b/prism/src/explicit/SubNondetModel.java @@ -376,21 +376,29 @@ public class SubNondetModel implements NondetModel @Override public boolean allSuccessorsInSet(int s, int i, BitSet set) { - int sOriginal = translateState(s); - int iOriginal = translateAction(s, i); - set = translateSet(set); + Iterator successors = getSuccessorsIterator(s,i); + while (successors.hasNext()) { + Integer successor = successors.next(); + if (!set.get(successor)) { + return false; + } + } - return model.allSuccessorsInSet(sOriginal, iOriginal, set); + return true; } @Override public boolean someSuccessorsInSet(int s, int i, BitSet set) { - int sOriginal = translateState(s); - int iOriginal = translateAction(s, i); - set = translateSet(set); + Iterator successors = getSuccessorsIterator(s,i); + while (successors.hasNext()) { + Integer successor = successors.next(); + if (set.get(successor)) { + return true; + } + } - return model.someSuccessorsInSet(sOriginal, iOriginal, set); + return false; } @Override