From c5abf50dde2ea69100d2d3d90e078651e4620b6c Mon Sep 17 00:00:00 2001 From: Lisa Oakley Date: Wed, 28 Oct 2020 22:14:47 -0400 Subject: [PATCH] Add DTMCSimple constructor which takes transition probability matrix as input. --- prism/src/explicit/DTMCSimple.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/prism/src/explicit/DTMCSimple.java b/prism/src/explicit/DTMCSimple.java index 4791d52da3..5dc685b9bc 100644 --- a/prism/src/explicit/DTMCSimple.java +++ b/prism/src/explicit/DTMCSimple.java @@ -61,6 +61,24 @@ public DTMCSimple(int numStates) initialise(numStates); } + /** + * Constructor: new DMTC from (square) transition matrix. + */ + public DTMCSimple(List> transitionMatrix) throws PrismException + { + this(transitionMatrix.size()); + for (int i = 0; i < numStates; i++) { + // ensure square matrix + int distSize = transitionMatrix.get(i).size(); + if (distSize != numStates) { + throw new PrismException("expected row" + i + "of transition matrix to be size" + numStates + ", got " + distSize); + } + for (int j = 0; j < distSize; j++) { + setProbability(i,j,transitionMatrix.get(i).get(j)); + } + } + } + /** * Copy constructor. */