Mercurial > hg > Applications > JavaLite
changeset 46:bdb6f31782d4
*** empty log message ***
author | kono |
---|---|
date | Sun, 06 Jan 2008 08:58:07 +0900 |
parents | 0258fcdf488c |
children | cbe1b120cb53 |
files | src/lite/BDDSolver.java src/lite/ChopSolver.java src/lite/EmptySolver.java src/lite/ExistsSolver.java src/lite/FalseSolver.java src/lite/ITLSolver.java src/lite/NextSolver.java src/lite/ProjectionSolver.java src/lite/TrueSolver.java src/lite/VariableSolver.java |
diffstat | 10 files changed, 77 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lite/BDDSolver.java Sat Jan 05 21:25:50 2008 +0900 +++ b/src/lite/BDDSolver.java Sun Jan 06 08:58:07 2008 +0900 @@ -12,8 +12,6 @@ public ITLSolver var; public BDDSolver high; // true public BDDSolver low; // flase - public int hash; - public BDDID id; @@ -48,7 +46,17 @@ this.id = id; } + public BDDSolver(ITLSolver v, BDDID id, int hash) { + this(v,null,null); + this.id = id; + this.hash = hash; + } + public String toString() { + if (var==null) { + if (id!=null) return id.toString(); + else return "null"; + } return var.toString(); } @@ -166,8 +174,25 @@ return this; } + + static final int PAIR(int a, int b) { + return ((a + b) * (a + b + 1) / 2 + a); + } + static final int TRIPLE(int a, int b, int c) { + return (PAIR(c, PAIR(a, b))); + } + + static final int NODEHASH(int lvl, int l, int h) { + return Math.abs(TRIPLE(lvl, l, h)); + } + public int hashCode() { - return this.hash; + if (hash!=-1) return hash; + switch(id) { + case BDD: return hash = NODEHASH(var.hashCode(),low.hashCode(),high.hashCode()); + default: + return hash = var.hashCode(); + } } public BDDSolver high() {
--- a/src/lite/ChopSolver.java Sat Jan 05 21:25:50 2008 +0900 +++ b/src/lite/ChopSolver.java Sun Jan 06 08:58:07 2008 +0900 @@ -1,5 +1,6 @@ package lite; +import logicNode.parser.TokenID; import sbdd.SBDDFactoryInterface; import verifier.Backtrack; @@ -143,4 +144,9 @@ public boolean isModal() { return true; } + + public int hashCode() { + if (hash!=-1) return hash; + return hash = BDDSolver.NODEHASH(TokenID.Chop.hash,former.hashCode(),later.hashCode()); + } }
--- a/src/lite/EmptySolver.java Sat Jan 05 21:25:50 2008 +0900 +++ b/src/lite/EmptySolver.java Sun Jan 06 08:58:07 2008 +0900 @@ -1,5 +1,6 @@ package lite; +import logicNode.parser.TokenID; import sbdd.SBDDFactoryInterface; import verifier.Backtrack; @@ -21,4 +22,8 @@ public boolean isModal() { return true; } + + public int hashCode() { + return TokenID.Empty.hash; + } }
--- a/src/lite/ExistsSolver.java Sat Jan 05 21:25:50 2008 +0900 +++ b/src/lite/ExistsSolver.java Sun Jan 06 08:58:07 2008 +0900 @@ -2,6 +2,8 @@ import java.util.LinkedList; +import logicNode.parser.TokenID; + import sbdd.SBDDFactoryInterface; import verifier.Backtrack; @@ -92,4 +94,10 @@ public boolean isModal() { return true; } + + + public int hashCode() { + if (hash!=-1) return hash; + return hash = BDDSolver.NODEHASH(TokenID.Exists.hash,var.hashCode(),node.hashCode()); + } }
--- a/src/lite/FalseSolver.java Sat Jan 05 21:25:50 2008 +0900 +++ b/src/lite/FalseSolver.java Sun Jan 06 08:58:07 2008 +0900 @@ -1,5 +1,6 @@ package lite; +import logicNode.parser.TokenID; import sbdd.SBDDFactoryInterface; import verifier.Backtrack; @@ -22,4 +23,8 @@ public boolean isModal() { return true; } + + public int hashCode() { + return TokenID.False.hash; + } }
--- a/src/lite/ITLSolver.java Sat Jan 05 21:25:50 2008 +0900 +++ b/src/lite/ITLSolver.java Sun Jan 06 08:58:07 2008 +0900 @@ -12,7 +12,7 @@ public class ITLSolver extends LogicNode implements MacroNodeInterface<ITLSolver>,Next,BDDInterface { - public int hash; + public int hash=-1; public ITLSolver sat(ITLSatisfier sat, Continuation next) throws Backtrack { return null;
--- a/src/lite/NextSolver.java Sat Jan 05 21:25:50 2008 +0900 +++ b/src/lite/NextSolver.java Sun Jan 06 08:58:07 2008 +0900 @@ -1,5 +1,6 @@ package lite; +import logicNode.parser.TokenID; import sbdd.SBDDFactoryInterface; import verifier.Backtrack; @@ -34,4 +35,10 @@ public boolean isModal() { return true; } + + + public int hashCode() { + if (hash!=-1) return hash; + return hash = BDDSolver.NODEHASH(TokenID.Next.hash,node.hashCode(),0); + } }
--- a/src/lite/ProjectionSolver.java Sat Jan 05 21:25:50 2008 +0900 +++ b/src/lite/ProjectionSolver.java Sun Jan 06 08:58:07 2008 +0900 @@ -1,5 +1,6 @@ package lite; +import logicNode.parser.TokenID; import sbdd.SBDDFactoryInterface; import verifier.Backtrack; @@ -93,4 +94,9 @@ public boolean isModal() { return true; } + + public int hashCode() { + if (hash!=-1) return hash; + return hash = BDDSolver.NODEHASH(TokenID.Projection.hash,clock.hashCode(),interval.hashCode()); + } }
--- a/src/lite/TrueSolver.java Sat Jan 05 21:25:50 2008 +0900 +++ b/src/lite/TrueSolver.java Sun Jan 06 08:58:07 2008 +0900 @@ -1,5 +1,6 @@ package lite; +import logicNode.parser.TokenID; import sbdd.SBDDFactoryInterface; import verifier.Backtrack; @@ -23,4 +24,9 @@ public boolean isModal() { return true; } + + + public int hashCode() { + return TokenID.True.hash; + } }