From 59c6cf31a57a2055fdd123aba1a2527c8eadc615 Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Fri, 19 Dec 2008 15:19:58 +0000 Subject: [PATCH] SCC computation method configurable from command-line. git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@904 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/src/prism/PrismCL.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/prism/src/prism/PrismCL.java b/prism/src/prism/PrismCL.java index c8ba8b6e..38acf7ce 100644 --- a/prism/src/prism/PrismCL.java +++ b/prism/src/prism/PrismCL.java @@ -757,7 +757,7 @@ public class PrismCL { int i, j; double d; - String sw; + String sw, s; PrismLog log; constSwitch = ""; @@ -913,6 +913,19 @@ public class PrismCL errorAndExit("No file specified for -"+sw+" switch"); } } + // set scc computation algorithm + else if (sw.equals("sccmethod") || sw.equals("bsccmethod")) { + if (i < args.length-1) { + s = args[++i]; + if (s.equals("xiebeerel")) prism.getSettings().set(PrismSettings.PRISM_SCC_METHOD, "Xie-Beerel"); + else if (s.equals("lockstep")) prism.getSettings().set(PrismSettings.PRISM_SCC_METHOD, "Lockstep"); + else if (s.equals("sccfind")) prism.getSettings().set(PrismSettings.PRISM_SCC_METHOD, "SCC-Find"); + else errorAndExit("Unrecognised option for -"+sw+" switch (options are: xiebeerel, lockstep, sccfind)"); + } + else { + errorAndExit("No parameter specified for -"+sw+" switch"); + } + } // export results else if (sw.equals("exportresults")) { if (i < args.length-1) { @@ -1576,6 +1589,7 @@ public class PrismCL mainLog.println("-nocompact ..................... Switch off \"compact\" sparse storage schemes"); mainLog.println("-noprobchecks .................. Disable checks on model probabilities/rates"); mainLog.println("-nossdetect .................... Disable steady-state detection for CTMC transient computations"); + mainLog.println("-sccmethod .............. Specify SCC computation method (xiebeerel, lockstep, sccfind)"); mainLog.println(); mainLog.println("-sbmax ..................... Set memory limit (KB) (for hybrid engine) [default 1024]"); mainLog.println("-sbl ....................... Set number of levels (for hybrid engine) [default -1]");