From 6ac7f9bb5a9e8c2e98960cd56ca083741a709f3f Mon Sep 17 00:00:00 2001 From: Aren Babikian Date: Sun, 17 Jan 2021 03:13:47 -0500 Subject: add some actor-related queries, solve minor Z3 issue --- .../viatra2logic/NumericZ3ProblemSolver.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src') diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericZ3ProblemSolver.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericZ3ProblemSolver.java index db33804e..0b093859 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericZ3ProblemSolver.java +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericZ3ProblemSolver.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.eclipse.xtext.common.types.JvmIdentifiableElement; import org.eclipse.xtext.xbase.XBinaryOperation; @@ -98,7 +100,21 @@ public class NumericZ3ProblemSolver extends NumericProblemSolver{ sol.put(o, oSol); } else { RealExpr val = (RealExpr) m.evaluate(varMap.get(o), false); - Double oSol = Double.parseDouble(val.toString()); + Double oSol = 0.0; + if (val.toString().contains("/")) { + String re = "([0-9]+)/([0-9]+)"; + Pattern p = Pattern.compile(re); + Matcher ma = p.matcher(val.toString()); + if (ma.matches()) { + int numerator = Integer.parseInt(ma.group(1)); + int denominator = Integer.parseInt(ma.group(2)); + oSol = (double) numerator / denominator; + } else { + System.err.println("Problem converting string: " + val.toString()); + } + } else { + oSol = Double.parseDouble(val.toString()); + } sol.put(o, oSol); } //System.out.println("Solution:" + o + "->" + oSol); -- cgit v1.2.3-54-g00ecf