From be2fd000db012b3738211ebee8db36001235c918 Mon Sep 17 00:00:00 2001 From: Aren Babikian Date: Thu, 14 Jan 2021 13:11:21 -0500 Subject: complete change of real representation BigDecimal->Double --- .../inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend | 2 +- .../inf/dslreasoner/viatrasolver/reasoner/dse/NumericSolver.xtend | 7 ++++--- .../reasoner/dse/PartialModelAsLogicInterpretation.xtend | 8 +++++--- 3 files changed, 10 insertions(+), 7 deletions(-) (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf') diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend index 144e5e6f..d386241d 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend @@ -110,7 +110,7 @@ class ViatraReasoner extends LogicReasoner { new SolutionStore(numberOfRequiredSolutions) } solutionStore.registerSolutionFoundHandler(new LoggerSolutionFoundHandler(viatraConfig)) - val numericSolver = new NumericSolver(method, viatraConfig, false) + val numericSolver = new NumericSolver(method, viatraConfig, true)//was formerly hard-coded to false for caching val solutionSaver = method.solutionSaver solutionSaver.numericSolver = numericSolver val solutionCopier = solutionSaver.solutionCopier diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/NumericSolver.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/NumericSolver.xtend index 4b0ea544..ab3e6601 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/NumericSolver.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/NumericSolver.xtend @@ -98,11 +98,12 @@ class NumericSolver { finalResult=true } else { val propagatedConstraints = new HashMap + println("------ Any matches?") for(entry : matches.entrySet) { val constraint = entry.key - //println(constraint) + println("------ " + constraint) val allMatches = entry.value.allMatches.map[it.toArray] - //println(allMatches.toList) + println("------ " + allMatches.toList) propagatedConstraints.put(constraint,allMatches) } if(propagatedConstraints.values.forall[empty]) { @@ -198,6 +199,6 @@ class NumericSolver { def protected dispatch fillWithValue(BooleanElement e, Object value) {e.valueSet=true e.value=value as Boolean} def protected dispatch fillWithValue(IntegerElement e, Object value) {e.valueSet=true e.value=value as Integer} - def protected dispatch fillWithValue(RealElement e, Object value) {e.valueSet=true e.value=BigDecimal.valueOf(value as Double) } + def protected dispatch fillWithValue(RealElement e, Object value) {e.valueSet=true e.value=value as Double } def protected dispatch fillWithValue(StringElement e, Object value) {e.valueSet=true e.value=value as String} } \ No newline at end of file diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/PartialModelAsLogicInterpretation.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/PartialModelAsLogicInterpretation.xtend index b48d0831..4484052d 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/PartialModelAsLogicInterpretation.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/PartialModelAsLogicInterpretation.xtend @@ -36,7 +36,7 @@ class PartialModelAsLogicInterpretation implements LogicModelInterpretation{ val Map elementBackwardTrace val Map booleanForwardTrace val Map integerForwardTrace - val Map realForwardTrace + val Map realForwardTrace val Map stringForwardTrace new(PartialInterpretation partialInterpretation, Map forwardMap) { @@ -51,7 +51,9 @@ class PartialModelAsLogicInterpretation implements LogicModelInterpretation{ integerForwardTrace = initialisePrimitiveElementTrace( 0,[it+1],[it],partialInterpretation.newElements.filter(IntegerElement),[it.value]) realForwardTrace = initialisePrimitiveElementTrace( - BigDecimal::ZERO,[it.add(BigDecimal.ONE)],[it],partialInterpretation.newElements.filter(RealElement),[it.value]) + 0.0,[it+1.0],[it],partialInterpretation.newElements.filter(RealElement),[it.value]) +// realForwardTrace = initialisePrimitiveElementTrace( +// BigDecimal::ZERO,[it.add(BigDecimal.ONE)],[it],partialInterpretation.newElements.filter(RealElement),[it.value]) stringForwardTrace = initialisePrimitiveElementTrace( 0,[it+1],['''StringĀ«itĀ»'''],partialInterpretation.newElements.filter(StringElement),[it.value]) } @@ -116,7 +118,7 @@ class PartialModelAsLogicInterpretation implements LogicModelInterpretation{ def dispatch elementLookupForward(Integer e) { this.integerForwardTrace.get(e) } - def dispatch elementLookupForward(BigDecimal e) { + def dispatch elementLookupForward(Double e) { this.realForwardTrace.get(e) } def dispatch elementLookupForward(String e) { -- cgit v1.2.3-54-g00ecf