From 378fc1423314c1172a4125b1a3e6ec07849789ab Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Tue, 8 Sep 2020 07:28:16 +0100 Subject: [PATCH] Add implementation of forEachTransition to MDPSparse. This accesses the MDP storage directly, rather than via getTransitionsIterator. Not really used at the moment since methods that need to be fast, like matrix-vector multiplication, are directly implemented already. --- prism/src/explicit/MDPSparse.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/prism/src/explicit/MDPSparse.java b/prism/src/explicit/MDPSparse.java index 3f0b513e..a7ddd821 100644 --- a/prism/src/explicit/MDPSparse.java +++ b/prism/src/explicit/MDPSparse.java @@ -586,6 +586,14 @@ public class MDPSparse extends MDPExplicit return choiceStarts[rowStarts[s] + i + 1] - choiceStarts[rowStarts[s] + i]; } + @Override + public void forEachTransition(int s, int i, TransitionConsumer c) + { + for (int col = choiceStarts[rowStarts[s] + i], stop = choiceStarts[rowStarts[s] + i + 1]; col < stop; col++) { + c.accept(s, cols[col], nonZeros[col]); + } + } + @Override public Iterator> getTransitionsIterator(final int s, final int i) {