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. */