From: John W. <joe...@us...> - 2005-01-27 03:49:07
|
Update of /cvsroot/javabdd/JavaBDD/net/sf/javabdd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13106/net/sf/javabdd Modified Files: JFactory.java Log Message: Added validate routine. Index: JFactory.java =================================================================== RCS file: /cvsroot/javabdd/JavaBDD/net/sf/javabdd/JFactory.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** JFactory.java 16 Nov 2004 02:00:45 -0000 1.7 --- JFactory.java 27 Jan 2005 03:48:59 -0000 1.8 *************** *** 1188,1191 **** --- 1188,1193 ---- } + //validate(res); + checkresize(); return res; *************** *** 2807,2810 **** --- 2809,2814 ---- gbc_handler(false, gcstats); } + + //validate_all(); } *************** *** 3232,3235 **** --- 3236,3240 ---- BddCache_done(replacecache); replacecache = null; BddCache_done(misccache); misccache = null; + BddCache_done(countcache); countcache = null; if (supportSet != null) { *************** *** 5991,5995 **** --- 5996,6031 ---- out.print(s.toString()); } + + public void validateAll() { + validate_all(); + } + public void validateBDD(BDD b) { + validate(((bdd)b)._index); + } + + void validate_all() { + int n; + for (n = bddnodesize - 1; n >= 2; n--) { + if (HASREF(n)) { + validate(n); + } + } + } + void validate(int k) { + validate(k, -1); + } + void validate(int k, int lastLevel) { + if (k < 2) return; + int lev = LEVEL(k); + //System.out.println("Level("+k+") = "+lev); + if (lev <= lastLevel) + throw new BDDException(lev+" <= "+lastLevel); + //System.out.println("Low:"); + validate(LOW(k), lev); + //System.out.println("High:"); + validate(HIGH(k), lev); + } + /* (non-Javadoc) * @see net.sf.javabdd.BDDFactory#createDomain(int, java.math.BigInteger) |