Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.sf.javabdd
Class JavaFactory  view JavaFactory download JavaFactory.java

java.lang.Object
  extended byorg.sf.javabdd.BDDFactory
      extended byorg.sf.javabdd.JavaFactory

public class JavaFactory
extends BDDFactory

This is a 100% Java implementation of the BDD factory. It is based on the C source code for BuDDy. As such, the implementation is very ugly, but it works. Like BuDDy, it uses reference counting scheme for garbage collection.

Version:
$Id: JavaFactory.java,v 1.10 2003/11/01 00:45:42 joewhaley Exp $

Nested Class Summary
(package private)  class JavaFactory.bdd
          Wrapper for the BDD index number used internally in the representation.
(package private) static class JavaFactory.BddCache
           
(package private) static class JavaFactory.BddCacheData
           
(package private) static class JavaFactory.BddCacheDataD
           
(package private) static class JavaFactory.BddCacheDataI
           
(package private) static class JavaFactory.bddCacheStat
           
(package private)  class JavaFactory.bddDomain
           
(package private) static class JavaFactory.bddGbcStat
           
(package private) static class JavaFactory.BddNode
          Actual data structure for each BDD node.
(package private)  class JavaFactory.bddPair
           
(package private) static class JavaFactory.BddTree
           
(package private)  class JavaFactory.bvec
           
(package private) static class JavaFactory.imatrix
           
(package private) static class JavaFactory.JavaBDDException
           
(package private) static class JavaFactory.levelData
           
(package private) static class JavaFactory.LoadHash
           
(package private) static class JavaFactory.sizePair
           
 
Nested classes inherited from class org.sf.javabdd.BDDFactory
BDDFactory.BDDOp, BDDFactory.ReorderMethod
 
Field Summary
(package private)  byte[] allsatProfile
           
(package private)  JavaFactory.BddCache appexcache
           
(package private)  int appexid
           
(package private)  int appexop
           
(package private)  JavaFactory.BddCache applycache
           
(package private)  int applyop
           
(package private) static int BDD_BREAK
           
(package private) static int BDD_DECVNUM
           
(package private) static int BDD_DEREF
           
(package private) static int BDD_ERRNUM
           
(package private) static int BDD_FILE
           
(package private) static int BDD_FORMAT
           
(package private) static int BDD_ILLBDD
           
(package private) static int BDD_MEMORY
           
(package private) static int BDD_NODENUM
           
(package private) static int BDD_NODES
           
(package private) static int BDD_OP
           
(package private) static int BDD_ORDER
           
(package private) static int BDD_RANGE
           
(package private) static int BDD_REORDER_FIXED
           
(package private) static int BDD_REORDER_FREE
           
(package private) static int BDD_REORDER_NONE
           
(package private) static int BDD_REORDER_RANDOM
           
(package private) static int BDD_REORDER_SIFT
           
(package private) static int BDD_REORDER_SIFTITE
           
(package private) static int BDD_REORDER_WIN2
           
(package private) static int BDD_REORDER_WIN2ITE
           
(package private) static int BDD_REORDER_WIN3
           
(package private) static int BDD_REORDER_WIN3ITE
           
(package private) static int BDD_REPLACE
           
(package private) static int BDD_RUNNING
           
(package private) static int BDD_SIZE
           
(package private) static int BDD_VAR
           
(package private) static int BDD_VARBLK
           
(package private) static int BDD_VARNUM
           
(package private) static int BDD_VARSET
           
(package private)  JavaFactory.bddCacheStat bddcachestats
           
(package private)  int bdderrorcond
           
(package private) static int bddfalse
           
(package private)  int bddfreenum
           
(package private)  int bddfreepos
           
(package private)  int[] bddlevel2var
           
(package private)  int bddmaxnodeincrease
           
(package private)  int bddmaxnodesize
           
(package private)  JavaFactory.BddNode[] bddnodes
           
(package private)  int bddnodesize
           
(package private) static int BDDONE
           
(package private) static int bddop_and
           
(package private) static int bddop_biimp
           
(package private) static int bddop_diff
           
(package private) static int bddop_imp
           
(package private) static int bddop_invimp
           
(package private) static int bddop_less
           
(package private) static int bddop_nand
           
(package private) static int bddop_nor
           
(package private) static int bddop_not
           
(package private) static int bddop_or
           
(package private) static int bddop_simplify
           
(package private) static int bddop_xor
           
(package private)  int bddproduced
           
(package private)  int[] bddrefstack
           
(package private)  int bddrefstacktop
           
(package private)  int bddreordermethod
           
(package private)  int bddreordertimes
           
(package private)  int bddresized
           
(package private)  boolean bddrunning
           
(package private) static int bddtrue
           
(package private)  int[] bddvar2level
           
(package private)  int bddvarnum
           
(package private)  int[] bddvarset
           
(package private) static int BDDZERO
           
(package private)  int blockid
           
(package private) static int BVEC_DIVZERO
           
(package private) static int BVEC_SHIFT
           
(package private) static int BVEC_SIZE
           
(package private) static long c1
           
(package private) static int CACHEID_APPAL
           
(package private) static int CACHEID_APPEX
           
(package private) static int CACHEID_APPUN
           
(package private) static int CACHEID_COMPOSE
           
(package private) static int CACHEID_CONSTRAIN
           
(package private) static int CACHEID_EXIST
           
(package private) static int CACHEID_FORALL
           
(package private) static int CACHEID_PATHCOU
           
(package private) static int CACHEID_REPLACE
           
(package private) static int CACHEID_RESTRICT
           
(package private) static int CACHEID_SATCOU
           
(package private) static int CACHEID_SATCOULN
           
(package private) static int CACHEID_UNIQUE
           
(package private) static int CACHEID_VECCOMPOSE
           
(package private)  int cacheratio
           
(package private)  int cachesize
           
(package private) static boolean CACHESTATS
           
(package private) static int CHECKTIMES
           
(package private)  int composelevel
           
(package private)  JavaFactory.BddCache countcache
           
(package private) static int DEFAULTMAXNODEINC
           
(package private) static java.lang.String[] errorstrings
           
(package private)  int[] extroots
           
(package private)  int extrootsize
           
(package private)  int firstReorder
           
(package private)  long gbcclock
           
(package private)  int gbcollectnum
           
(package private)  JavaFactory.imatrix iactmtx
           
(package private) static int INT_MAX
           
(package private)  JavaFactory.BddCache itecache
           
(package private)  JavaFactory.levelData[] levels
           
(package private)  int lh_freepos
           
(package private)  int lh_nodenum
           
(package private)  JavaFactory.LoadHash[] lh_table
           
(package private)  int[] loadvar2level
           
(package private) static double M_LN2
           
(package private) static int MAXVAR
           
(package private)  int minfreenodes
           
(package private)  JavaFactory.BddCache misccache
           
(package private)  int miscid
           
(package private) static int OPERATOR_NUM
           
(package private) static int[][] oprres
           
(package private)  JavaFactory.bddPair pairs
           
(package private)  int pairsid
           
(package private)  JavaFactory.BddCache quantcache
           
(package private)  int quantid
           
(package private)  int quantlast
           
(package private)  int[] quantvarset
           
(package private)  int quantvarsetID
           
(package private)  int reorderdisabled
           
(package private)  JavaFactory.BddCache replacecache
           
(package private)  int replaceid
           
(package private)  int replacelast
           
(package private)  int[] replacepair
           
(package private)  boolean resizedInMakenode
           
(package private) static java.util.Random rng
           
(package private)  int satPolarity
           
(package private)  int supportID
           
(package private)  int supportMax
           
(package private)  int supportMin
           
(package private)  int[] supportSet
           
(package private) static int supportSize
           
static boolean SWAPCOUNT
           
(package private)  java.util.StringTokenizer tokenizer
           
(package private)  int usednodes_nextreorder
           
(package private)  int usednum_after
           
(package private)  int usednum_before
           
(package private)  JavaFactory.BddTree vartree
           
(package private)  int verbose
           
 
Fields inherited from class org.sf.javabdd.BDDFactory
and, biimp, diff, domain, fdvarnum, firstbddvar, imp, invimp, less, nand, nor, or, REORDER_NONE, REORDER_RANDOM, REORDER_SIFT, REORDER_SIFTITE, REORDER_WIN2, REORDER_WIN2ITE, REORDER_WIN3, REORDER_WIN3ITE, xor
 
Constructor Summary
JavaFactory()
           
 
Method Summary
(package private) static void _assert(boolean b)
           
(package private)  void addDependencies(boolean[] dep)
           
(package private)  void addref_rec(int r, boolean[] dep)
           
 void addVarBlock(BDD var, boolean fixed)
          Adds a new variable block for reordering.
 void addVarBlock(int first, int last, boolean fixed)
          Adds a new variable block for reordering.
(package private)  void allsat_rec(int r, java.util.List result)
           
(package private) static int APPEXHASH(int l, int r, int op)
           
(package private)  int apply_rec(int l, int r)
           
(package private) static int APPLYHASH(int l, int r, int op)
           
(package private)  int appquant_rec(int l, int r)
           
 void autoReorder(BDDFactory.ReorderMethod method)
          Enables automatic reordering.
 void autoReorder(BDDFactory.ReorderMethod method, int max)
          Enables automatic reordering with the given (maximum) number of reorderings.
(package private)  int bdd_addref(int root)
           
(package private)  int bdd_addvarblock(int[] v, boolean fixed)
           
(package private)  void bdd_allsat(int r, java.util.List result)
           
(package private)  int bdd_anodecount(int[] r)
           
(package private)  int bdd_appall(int l, int r, int opr, int var)
           
(package private)  int bdd_appex(int l, int r, int opr, int var)
           
(package private)  int bdd_apply(int l, int r, int op)
           
(package private)  int bdd_appuni(int l, int r, int opr, int var)
           
(package private)  int bdd_autoreorder_times(int method, int num)
           
(package private)  int bdd_autoreorder(int method)
           
(package private)  void bdd_checkreorder()
           
(package private)  void bdd_clrvarblocks()
           
(package private)  int bdd_compose(int f, int g, int var)
           
(package private)  int bdd_constrain(int f, int c)
           
(package private)  int bdd_correctify(int level, int l, int r)
           
(package private)  void bdd_default_gbchandler(boolean pre, JavaFactory.bddGbcStat s)
           
(package private)  void bdd_default_reohandler(int prestate)
           
(package private)  int bdd_delref(int root)
           
(package private)  void bdd_disable_reorder()
           
(package private)  void bdd_done()
           
(package private)  void bdd_enable_reorder()
           
(package private) static int bdd_error(int v)
           
(package private)  int bdd_exist(int r, int var)
           
(package private)  int bdd_forall(int r, int var)
           
(package private)  void bdd_fprintall(java.io.PrintStream out)
           
(package private)  void bdd_fprintorder(java.io.PrintStream ofile)
           
(package private)  void bdd_fprintstat(java.io.PrintStream out)
           
(package private)  void bdd_fprinttable(java.io.PrintStream out, int r)
           
(package private)  int bdd_fullsatone(int r)
           
(package private)  void bdd_gbc_rehash()
           
(package private)  void bdd_gbc()
           
(package private)  int bdd_getallocnum()
           
(package private)  int bdd_getnodenum()
           
(package private)  int bdd_high(int root)
           
(package private)  int bdd_intaddvarblock(int first, int last, boolean fixed)
           
(package private)  int bdd_ite(int f, int g, int h)
           
(package private)  int bdd_ithvar(int var)
           
(package private)  int bdd_load(java.io.DataInput ifile)
           
(package private)  int bdd_loaddata(java.io.DataInput ifile)
           
(package private)  int bdd_low(int root)
           
(package private)  int bdd_makenode(int level, int low, int high)
           
(package private)  void bdd_mark_upto(int i, int level)
           
(package private)  void bdd_mark(int i)
           
(package private)  void bdd_markcount(int i, int[] cou)
           
(package private)  int bdd_nithvar(int var)
           
(package private)  int bdd_nodecount(int r)
           
(package private)  int bdd_noderesize(boolean doRehash)
           
(package private)  int bdd_not(int r)
           
(package private)  void bdd_operator_done()
           
(package private)  void bdd_operator_init(int cachesize)
           
(package private)  void bdd_operator_noderesize()
           
(package private)  void bdd_operator_reset()
           
(package private)  void bdd_operator_varresize()
           
(package private)  void bdd_pairs_done()
           
(package private)  void bdd_pairs_init()
           
(package private)  int bdd_pairs_resize(int oldsize, int newsize)
           
(package private)  void bdd_pairs_vardown(int level)
           
(package private)  double bdd_pathcount_rec(int r)
           
(package private)  double bdd_pathcount(int r)
           
(package private)  int bdd_prime_gte(int src)
          External interface
(package private)  int bdd_prime_lte(int src)
           
(package private)  void bdd_register_pair(JavaFactory.bddPair p)
           
(package private)  int bdd_relprod(int a, int b, int var)
           
(package private)  void bdd_reorder_auto()
           
(package private)  void bdd_reorder_done()
           
(package private)  int bdd_reorder_gain()
           
(package private)  void bdd_reorder_init()
           
(package private)  boolean bdd_reorder_ready()
           
(package private)  int bdd_reorder_verbose(int v)
           
(package private)  void bdd_reorder(int method)
           
(package private)  int bdd_replace(int r, JavaFactory.bddPair pair)
           
(package private)  void bdd_resetpair(JavaFactory.bddPair p)
           
(package private)  int bdd_restrict(int r, int var)
           
(package private)  double bdd_satcount(int r)
           
(package private)  double bdd_satcountset(int r, int varset)
           
(package private)  int bdd_satone(int r)
           
(package private)  int bdd_satoneset(int r, int var, int pol)
           
(package private)  void bdd_save_rec(java.io.DataOutput out, int root)
           
(package private)  void bdd_save(java.io.DataOutput out, int r)
           
(package private)  void bdd_setbddpair(JavaFactory.bddPair pair, int oldvar, int newvar)
           
(package private)  int bdd_setcacheratio(int r)
           
(package private)  int bdd_setmaxincrease(int size)
           
(package private)  int bdd_setmaxnodenum(int size)
           
(package private)  int bdd_setminfreenodes(int mf)
           
(package private)  void bdd_setpair(JavaFactory.bddPair pair, int oldvar, int newvar)
           
(package private)  int bdd_setvarnum(int num)
           
(package private)  void bdd_setvarorder(int[] neworder)
           
(package private)  int bdd_simplify(int f, int d)
           
(package private)  int bdd_support(int r)
           
(package private)  int bdd_swapvar(int v1, int v2)
           
(package private)  int bdd_unique(int r, int var)
           
(package private)  void bdd_unmark_upto(int i, int level)
           
(package private)  void bdd_unmark(int i)
           
(package private)  int bdd_var(int root)
           
(package private)  void bdd_varblockall()
           
(package private)  int bdd_varnum()
           
(package private)  int[] bdd_varprofile(int r)
           
(package private)  int bdd_veccompose(int f, JavaFactory.bddPair pair)
           
(package private)  void BddCache_done(JavaFactory.BddCache cache)
           
(package private)  JavaFactory.BddCacheDataD BddCache_lookupD(JavaFactory.BddCache cache, int hash)
           
(package private)  JavaFactory.BddCacheDataI BddCache_lookupI(JavaFactory.BddCache cache, int hash)
           
(package private)  void BddCache_reset(JavaFactory.BddCache cache)
           
(package private)  int BddCache_resize(JavaFactory.BddCache cache, int newsize)
           
(package private)  JavaFactory.BddCache BddCacheD_init(int size)
           
(package private)  JavaFactory.BddCache BddCacheI_init(int size)
           
(package private)  JavaFactory.BddTree bddtree_addrange_rec(JavaFactory.BddTree t, JavaFactory.BddTree prev, int first, int last, boolean fixed, int id)
           
(package private)  JavaFactory.BddTree bddtree_addrange(JavaFactory.BddTree t, int first, int last, boolean fixed, int id)
           
(package private)  void bddtree_del(JavaFactory.BddTree t)
           
(package private)  JavaFactory.BddTree bddtree_new(int id)
           
(package private) static boolean BitIsSet(int src, int b)
           
(package private)  void blockdown(JavaFactory.BddTree left)
           
(package private)  void CHECK(int r)
           
(package private)  void CHECKa(int r, int x)
           
(package private)  void checkresize()
           
 void clearVarBlocks()
          Clears all the variable blocks that have been defined by calls to addVarBlock.
(package private)  long clock()
           
(package private)  int compose_rec(int f, int g)
           
(package private) static int COMPOSEHASH(int f, int g)
           
(package private)  int constrain_rec(int f, int c)
           
(package private) static int CONSTRAINHASH(int f, int c)
           
protected  BDDBitVector createBitVector(int a)
           
protected  BDDDomain createDomain(int a, long b)
          Implementors must implement this factory method to create BDDDomain objects of the correct type.
(package private)  void DECREF(int n)
           
 void disableReorder()
          Disable automatic reordering until enableReorder is called.
 void done()
          Resets the BDD package.
 void enableReorder()
          Enable automatic reordering after a call to disableReorder.
(package private) static void free(java.lang.Object o)
           
(package private)  int fullsatone_rec(int r)
           
(package private)  void gbc_handler(boolean pre, JavaFactory.bddGbcStat s)
           
 int getAllocNum()
          Get the number of allocated nodes.
 int getNodeNum()
          Get the number of active nodes in use.
 BDDFactory.ReorderMethod getReorderMethod()
          Returns the current reorder method as defined by autoReorder.
 int getReorderTimes()
          Returns the number of allowed reorderings left.
(package private) static boolean hasEasyFactors(int src)
          Basic prime searching stuff
(package private) static boolean hasFactor(int src, int n)
           
(package private)  boolean HASREF(int n)
           
(package private)  int HIGH(int r)
           
(package private)  void imatrixDelete(JavaFactory.imatrix mtx)