[Nice-commit] Nice/src/mlsub/typing/lowlevel Domain.java,1.4,1.5 DomainVector.java,1.3,1.4 K0.java,1
Brought to you by:
bonniot
|
From: Daniel B. <bo...@us...> - 2005-03-29 15:33:23
|
Update of /cvsroot/nice/Nice/src/mlsub/typing/lowlevel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18383/src/mlsub/typing/lowlevel Modified Files: Domain.java DomainVector.java K0.java LowlevelUnsatisfiable.java Satisfier.java Log Message: Optim: use shared exception instances instead of dynamically created ones for stateless exceptions, since fillInStackTrace is expensive Index: DomainVector.java =================================================================== RCS file: /cvsroot/nice/Nice/src/mlsub/typing/lowlevel/DomainVector.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** DomainVector.java 23 May 2003 13:05:30 -0000 1.3 --- DomainVector.java 29 Mar 2005 15:33:02 -0000 1.4 *************** *** 121,125 **** // XXX: already tested ?? if (dx.isEmpty()) { ! throw new LowlevelUnsatisfiable(); } if (dx.needPropagation(direction)) { --- 121,125 ---- // XXX: already tested ?? if (dx.isEmpty()) { ! throw LowlevelUnsatisfiable.instance; } if (dx.needPropagation(direction)) { Index: K0.java =================================================================== RCS file: /cvsroot/nice/Nice/src/mlsub/typing/lowlevel/K0.java,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** K0.java 16 Feb 2005 22:34:49 -0000 1.24 --- K0.java 29 Mar 2005 15:33:02 -0000 1.25 *************** *** 826,830 **** if (x == -1) { if (!unit) { ! throw new LowlevelUnsatisfiable(); } } else if (x < m) { --- 826,830 ---- if (x == -1) { if (!unit) { ! throw LowlevelUnsatisfiable.instance; } } else if (x < m) { *************** *** 832,836 **** // is condensed on the rigid variables) if (!set.get(x)) { ! throw new LowlevelUnsatisfiable(); } } else { --- 832,836 ---- // is condensed on the rigid variables) if (!set.get(x)) { ! throw LowlevelUnsatisfiable.instance; } } else { *************** *** 1106,1110 **** if (T.includedIn(m, R) != null) { // T is NOT included in R on [0, m[ x [0, m[ ! throw new LowlevelUnsatisfiable();// will be refined if necessary } } --- 1106,1110 ---- if (T.includedIn(m, R) != null) { // T is NOT included in R on [0, m[ x [0, m[ ! throw LowlevelUnsatisfiable.instance; // will be refined if necessary } } Index: LowlevelUnsatisfiable.java =================================================================== RCS file: /cvsroot/nice/Nice/src/mlsub/typing/lowlevel/LowlevelUnsatisfiable.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** LowlevelUnsatisfiable.java 14 Jun 2000 13:32:53 -0000 1.1 --- LowlevelUnsatisfiable.java 29 Mar 2005 15:33:03 -0000 1.2 *************** *** 17,20 **** --- 17,22 ---- } + static LowlevelUnsatisfiable instance = new LowlevelUnsatisfiable(); + static boolean refinedReports = true; public static void setRefinedReports(boolean flag) { Index: Satisfier.java =================================================================== RCS file: /cvsroot/nice/Nice/src/mlsub/typing/lowlevel/Satisfier.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Satisfier.java 14 Jun 2000 13:32:55 -0000 1.1 --- Satisfier.java 29 Mar 2005 15:33:03 -0000 1.2 *************** *** 18,22 **** --- 18,24 ---- private static boolean satisfiable = false; + private static class Satisfiable extends Exception {} + private static Satisfiable sat = new Satisfiable(); private static void enumerate(int[] strategy, DomainVector domains, *************** *** 40,44 **** // backtrack ! throw new Satisfiable(); } } --- 42,46 ---- // backtrack ! throw sat; } } *************** *** 66,70 **** } } ! throw new LowlevelUnsatisfiable(); } --- 68,72 ---- } } ! throw LowlevelUnsatisfiable.instance; } *************** *** 82,89 **** satisfiable = true; if (handler == null) { ! throw new Satisfiable(); } handler.handle(domains); ! throw new LowlevelUnsatisfiable(); } Domain dx = (Domain)domains.getDomain(x).clone(); --- 84,91 ---- satisfiable = true; if (handler == null) { ! throw sat; } handler.handle(domains); ! throw LowlevelUnsatisfiable.instance; } Domain dx = (Domain)domains.getDomain(x).clone(); *************** *** 98,102 **** // XXX: reachable ? ! throw new Satisfiable(); } catch (LowlevelUnsatisfiable _) { --- 100,104 ---- // XXX: reachable ? ! throw sat; } catch (LowlevelUnsatisfiable _) { *************** *** 104,108 **** } } ! throw new LowlevelUnsatisfiable(); } --- 106,110 ---- } } ! throw LowlevelUnsatisfiable.instance; } Index: Domain.java =================================================================== RCS file: /cvsroot/nice/Nice/src/mlsub/typing/lowlevel/Domain.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Domain.java 6 Sep 2003 11:31:10 -0000 1.4 --- Domain.java 29 Mar 2005 15:33:02 -0000 1.5 *************** *** 81,85 **** this.containsUnit &= unit; if (this.isEmpty()) { ! throw new LowlevelUnsatisfiable(); } } --- 81,85 ---- this.containsUnit &= unit; if (this.isEmpty()) { ! throw LowlevelUnsatisfiable.instance; } } *************** *** 92,96 **** this.andNot(set); if (this.isEmpty()) { ! throw new LowlevelUnsatisfiable(); } } --- 92,96 ---- this.andNot(set); if (this.isEmpty()) { ! throw LowlevelUnsatisfiable.instance; } } *************** *** 103,107 **** this.containsUnit = false; if (this.isEmpty()) { ! throw new LowlevelUnsatisfiable(); } } --- 103,107 ---- this.containsUnit = false; if (this.isEmpty()) { ! throw LowlevelUnsatisfiable.instance; } } *************** *** 118,122 **** } if (this.isEmpty()) { ! throw new LowlevelUnsatisfiable(); } } --- 118,122 ---- } if (this.isEmpty()) { ! throw LowlevelUnsatisfiable.instance; } } *************** *** 147,151 **** return -1; } else { ! throw new LowlevelUnsatisfiable(); } } --- 147,151 ---- return -1; } else { ! throw LowlevelUnsatisfiable.instance; } } *************** *** 170,174 **** public void instantiate(int value) throws LowlevelUnsatisfiable { if (!containsValue(value)) { ! throw new LowlevelUnsatisfiable(); } clearAll(); --- 170,174 ---- public void instantiate(int value) throws LowlevelUnsatisfiable { if (!containsValue(value)) { ! throw LowlevelUnsatisfiable.instance; } clearAll(); |