当前位置: 首页>>代码示例>>Java>>正文


Java BDDFactory类代码示例

本文整理汇总了Java中net.sf.javabdd.BDDFactory的典型用法代码示例。如果您正苦于以下问题:Java BDDFactory类的具体用法?Java BDDFactory怎么用?Java BDDFactory使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


BDDFactory类属于net.sf.javabdd包,在下文中一共展示了BDDFactory类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: Netlist

import net.sf.javabdd.BDDFactory; //导入依赖的package包/类
public Netlist(BDDFactory fac, StateGraph sg, Reset reset) {
    this.fac = fac;
    this.reset = reset;
    this.nameVarMap = new HashMap<>();
    this.idVarMap = new HashMap<>();
    this.terms = new TreeMap<>(new BDDComparator());
    this.unmappedTerms = new HashSet<>();
    this.mappedTerms = new HashMap<>();
    this.quasiSignals = new HashMap<>();
    this.tmpid = 0;

    this.sigVarMap = HashBiMap.create();
    for(Signal sig : sg.getAllSignals()) {
        sigVarMap.put(sig, getNetlistVariableByName(sig.getName()));
    }

    initReset();
}
 
开发者ID:hpiasg,项目名称:asglogic,代码行数:19,代码来源:Netlist.java

示例2: readTechnology

import net.sf.javabdd.BDDFactory; //导入依赖的package包/类
private static TechLibrary readTechnology(File optTech, String cfgTech, BDDFactory storage) {
    if(optTech != null) {
        if(optTech.exists()) {
            logger.debug("Using options technology file: " + optTech.getAbsolutePath());
            return TechLibrary.importFromFile(optTech, storage);
        } else {
            logger.warn("Options technology file " + optTech.getAbsolutePath() + " not found. Trying default from config");
        }
    }

    if(cfgTech != null) {
        File cfgTechFile = BasedirHelper.replaceBasedirAsFile(cfgTech);
        if(cfgTechFile.exists()) {
            logger.debug("Using config technology file: " + cfgTechFile.getAbsolutePath());
            return TechLibrary.importFromFile(cfgTechFile, storage);
        } else {
            logger.warn("Config technology file " + cfgTechFile.getAbsolutePath() + " not found.");
        }
    } else {
        logger.warn("No default technology in config file defined");
    }

    return null;
}
 
开发者ID:hpiasg,项目名称:asglogic,代码行数:25,代码来源:LogicMain.java

示例3: addStats

import net.sf.javabdd.BDDFactory; //导入依赖的package包/类
public void addStats(BDDFactory bddFactory, BDD bdd, String[] varOrder) {
		if (pathCount == -1 ) {
			pathCount = bdd.pathCount();
		}
		int bddNodeCount = bdd.nodeCount();		

		if ( bddNodeCount < bvoCountNodes ) {
			bvoCountNodes = bddNodeCount;
			bvoIndex = index;
		}
		if ( bddNodeCount > wvoCountNodes ) {
			wvoCountNodes = bddNodeCount; 
			wvoIndex = index;
		}
		stats.add(index, new BDDGenerationStatisticsRecord(bddFactory, bdd, varOrder, bddNodeCount));
		index++;
				
//		System.out.print("\n" + index +"-Count: "); 
//		for ( int i = 0 ; i < varOrder.length ; i++ ) {
//			System.out.print(varOrder[i] + ",");			
//		}
//		System.out.print("\nBest: " + bvoIndex +"(" + bvoCountNodes + ")" + "Worst: " + wvoIndex + "(" + wvoCountNodes + ")");
	}
 
开发者ID:axel-halin,项目名称:Thesis-JHipster,代码行数:24,代码来源:BDDGenerationStatistics.java

示例4: BDDSolver

import net.sf.javabdd.BDDFactory; //导入依赖的package包/类
/**
   * Constructs a new BDD solver.  Also initializes the BDD library.
   */
  public BDDSolver() {
      super();
      if (BDDCACHE == 0) BDDCACHE = BDDNODES / 4;
if (VERBOSE >= 2)
      	out.println("Initializing BDD library (" + BDDNODES + " nodes, cache size " + BDDCACHE + ", min free " + BDDMINFREE + "%)");
      bdd = BDDFactory.init(1000, BDDCACHE);
      if (VERBOSE >= 2) out.println("Using BDD library "+bdd.getVersion());
      fielddomainsToBDDdomains = new GenericMultiMap(ListFactory.linkedListFactory);
      bdd.setMinFreeNodes(BDDMINFREE);
      try {
          fbo = new FindBestDomainOrder(this);
      } catch (NoClassDefFoundError x) {
          if (VERBOSE >= 2) out.println("No machine learning library found, learning disabled.");
      }
  }
 
开发者ID:petablox-project,项目名称:petablox,代码行数:19,代码来源:BDDSolver.java

示例5: answer

import net.sf.javabdd.BDDFactory; //导入依赖的package包/类
public PerformanceResult answer(Reasoner r) {
	if(r==null){
		throw new FAMAParameterException("Reasoner :Not specified");
	}
	JavaBDDResult res = new JavaBDDResult();
	JavaBDDReasoner bddr = (JavaBDDReasoner)r;
	long before=System.currentTimeMillis();
	BDD sol=bddr.getBDD().satOne();
	long time=System.currentTimeMillis() - before;
	
	if (!sol.isZero())
		valid = true;
	
	// Save results
	res.setTime(time);
	
	// Consultar este fallo
	res.fillFields((BDDFactory) bddr.getBDDFactory());
	
	return res;
}
 
开发者ID:isa-group,项目名称:FaMA,代码行数:22,代码来源:JavaBDDValidQuestion.java

示例6: answer

import net.sf.javabdd.BDDFactory; //导入依赖的package包/类
public PerformanceResult answer(Reasoner r)  {
	if(r==null){
		throw new FAMAParameterException("Reasoner :Not specified");
	}
	JavaBDDResult res = new JavaBDDResult();
	JavaBDDReasoner bddr = (JavaBDDReasoner)r;
	
	long before=System.currentTimeMillis();	
	Iterator it=bddr.getBDD().allsat().iterator();
	while (it.hasNext()) {
		// Save product
		saveProduct((byte[])it.next(),r);
	}
	long time=System.currentTimeMillis() - before;

	// Save results
	res.setTime(time);
	res.fillFields((BDDFactory) bddr.getBDDFactory());
       
       return res;
}
 
开发者ID:isa-group,项目名称:FaMA,代码行数:22,代码来源:JavaBDDProductsQuestion.java

示例7: answer

import net.sf.javabdd.BDDFactory; //导入依赖的package包/类
public PerformanceResult answer(Reasoner r)  {
	if(r==null){
		throw new FAMAParameterException("Reasoner :Not specified");
	}
	JavaBDDResult res = new JavaBDDResult();
	JavaBDDReasoner bddr = (JavaBDDReasoner)r;
	
	long before=System.currentTimeMillis();
	numberOfProducts=bddr.getBDD().satCount();
	long time=System.currentTimeMillis() - before;

	// Save results
	res.setTime(time);
	res.fillFields((BDDFactory) bddr.getBDDFactory());
	
       return res;
}
 
开发者ID:isa-group,项目名称:FaMA,代码行数:18,代码来源:JavaBDDNumberOfProductsQuestion.java

示例8: update

import net.sf.javabdd.BDDFactory; //导入依赖的package包/类
@Override
public void update(int fieldIndex, StoneColor color) {
	Field field = FieldGenerator.create(
			color.getPrimitive(),
			PositionHexagon.get(fieldIndex / board.getRows(), fieldIndex
					% board.getColumns()), fieldIndex);
	board.setField(field);
	BDDFactory fac = win.getFactory();
	Logging logUpdate;
	String capPrefix = this.color + "'s situation updated for ";
	String capSuffix = "'s move";
	if (StoneColor.WHITE.equals(color)) {
		logUpdate = Logging.create(capPrefix + color + capSuffix);
		win = logUpdate.restrictLog(win, fac.ithVar(field.getIndex()));
	} else {
		logUpdate = Logging.create(capPrefix + color + capSuffix);
		win = logUpdate.restrictLog(win, fac.nithVar(field.getIndex()));
	}
	logUpdate.log();

}
 
开发者ID:rduerig,项目名称:StrategyBDD,代码行数:22,代码来源:SituationHavannah.java

示例9: testModelCountChanging

import net.sf.javabdd.BDDFactory; //导入依赖的package包/类
@Test
public void testModelCountChanging() {

	// there are 260 possible paths from bottom left to top right on a 4x4
	// board
	int expectedModelCount = 260;

	Position p = PositionSquare.get(3, 0);
	Position q = PositionSquare.get(0, 3);

	BoardAnalizerPrototype analizer = new BoardAnalizerPrototype(
			PRIMITIVE_BOARD_PATHS_ALL);
	BDD path = analizer.getPath(p, q);
	int actual = path.allsat().size();
	assertEquals(expectedModelCount, actual);

	expectedModelCount = 58;
	BDDFactory fac = path.getFactory();
	BDD restricted = path.restrict(fac.ithVar(2).not());
	actual = restricted.allsat().size();
	analizer.done();
	path.free();
	restricted.free();
	assertEquals(expectedModelCount, actual);
}
 
开发者ID:rduerig,项目名称:StrategyBDD,代码行数:26,代码来源:BoardPrototypeTest.java

示例10: initialize

import net.sf.javabdd.BDDFactory; //导入依赖的package包/类
@Override
protected void initialize(int nodenum, int cachesize) {
	factory = Factory.mk(nodenum, cachesize);
	//factory = Factory.mkER(nodenum, cachesize);
	// we set the default call-backs

	try {
		Method m = JavaBDDAdapterFactory.class.getDeclaredMethod
			("defaultResizeCallback", new Class[] { int.class, int.class });
		registerResizeCallback(this, m);

		m = JavaBDDAdapterFactory.class.getDeclaredMethod
			("defaultGCCallback", new Class[] { int.class, BDDFactory.GCStats.class });
		registerGCCallback(this, m);
	}
	catch (SecurityException | NoSuchMethodException e) {
		throw new RuntimeException("Unexpected exception " + e);
	}
}
 
开发者ID:JuliaSoft,项目名称:BeeDeeDee,代码行数:20,代码来源:JavaBDDAdapterFactory.java

示例11: JBDDProvider

import net.sf.javabdd.BDDFactory; //导入依赖的package包/类
/**
 * Constructs a {@link JBDDProvider} with the {@link Type} of the BDD library to use, a given number of variables,
 * the growth rate of the number of variables, and the initial number of nodes.
 * 
 * @param type
 *            the type of the BDD library
 * @param vars
 *            the number of variables
 * @param variableGrowthFactor
 *            the factor by which to extend the number of variables if required
 * @param initialNumberofNodes
 *            the initial number of nodes reserved in the BDD factory
 */
public JBDDProvider(Type type, int vars, int variableGrowthFactor, int initialNumberofNodes) {
	switch (type) {
	case JDD:
		factory = JDDFactory.init(initialNumberofNodes, initialNumberofNodes);
		break;
	default:
		factory = JFactory.init(initialNumberofNodes, initialNumberofNodes);
		factory.autoReorder(BDDFactory.REORDER_SIFT);
	}

	factory.setVarNum(vars);
	this.vars = vars;
	this.variableGrowthFactor = variableGrowthFactor;
}
 
开发者ID:felixreimann,项目名称:jreliability,代码行数:28,代码来源:JBDDProvider.java

示例12: execute

import net.sf.javabdd.BDDFactory; //导入依赖的package包/类
/**
 * Calls the logic synthesis flow
 * 
 * @return Status code:
 *         0: Everything okay
 *         1: Something failed
 */
private static int execute() {
    BDDFactory storage = JFactory.init(netlistNodesize, netlistNodesize / 4);
    storage.setCacheRatio(4f);

    TechLibrary tech = readTechnology(options.getTechnology(), config.defaultTech, storage);
    if(tech == null) {
        logger.error("No technology found");
        return 1;
    }

    Flow flow = new Flow(options, tech, storage);
    return flow.execute();
}
 
开发者ID:hpiasg,项目名称:asglogic,代码行数:21,代码来源:LogicMain.java

示例13: toBDD

import net.sf.javabdd.BDDFactory; //导入依赖的package包/类
@Override
public BDD toBDD(BDDFactory fac, Map<TechVariable, Integer> map) {
    if(name.equals("0") || name.equals("CONST0")) {
        return fac.zero();
    } else if(name.equals("1") || name.equals("CONST1")) {
        return fac.one();
    } else if(!map.containsKey(this)) {
        int id = fac.extVarNum(1);
        map.put(this, id);
    }
    return fac.ithVar(map.get(this));
}
 
开发者ID:hpiasg,项目名称:asglogic,代码行数:13,代码来源:TechVariable.java

示例14: toBDD

import net.sf.javabdd.BDDFactory; //导入依赖的package包/类
@Override
public BDD toBDD(BDDFactory fac, Map<TechVariable, Integer> map) {
    BDD tb = t.toBDD(fac, map);
    switch(op) {
        case not:
            return tb.not();
        default:
            System.err.println("Fehler BDD Unary OP unknown");
            return null;
    }
}
 
开发者ID:hpiasg,项目名称:asglogic,代码行数:12,代码来源:TechUnaryOperation.java

示例15: toBDD

import net.sf.javabdd.BDDFactory; //导入依赖的package包/类
@Override
public BDD toBDD(BDDFactory fac, Map<TechVariable, Integer> map) {
    BDD t1b = t1.toBDD(fac, map);
    BDD t2b = t2.toBDD(fac, map);
    switch(op) {
        case and:
            return t1b.and(t2b);
        case or:
            return t1b.or(t2b);
        default:
            System.err.println("Fehler BDD Binary OP unknown");
            return null;
    }
}
 
开发者ID:hpiasg,项目名称:asglogic,代码行数:15,代码来源:TechBinaryOperation.java


注:本文中的net.sf.javabdd.BDDFactory类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。