net.sf.bddbddb.ir
Class UFDomainAssignment

java.lang.Object
  extended by net.sf.bddbddb.ir.DomainAssignment
      extended by net.sf.bddbddb.ir.UFDomainAssignment
All Implemented Interfaces:
DynamicOperationVisitor, HighLevelOperationVisitor, LowLevelOperationVisitor, OperationVisitor
Direct Known Subclasses:
PartialOrderDomainAssignment

public class UFDomainAssignment
extends DomainAssignment

Performs domain assignment based on a union-find data structure. The general model is to introduce constraints in their order of importance. If a constraint cannot be satisfied, a replace operation is introduced at that point. This domain assignment works by keeping track of attributes that are the same in a union-find data structure, and keeping a set of not-equal constraints that must be obeyed. When a new constraint (equal or not-equal) is considered that does not obey the current constraints, it is not added and a replace operation is generated at that point.

Version:
$Id: UFDomainAssignment.java 622 2005-08-30 11:06:31Z joewhaley $
Author:
John Whaley

Constructor Summary
  UFDomainAssignment(Solver s)
           
protected UFDomainAssignment(Solver s, PartialOrder.Constraints[] constraintMap)
           
 
Method Summary
 void doAssignment()
           
 void saveDomainAssignment(java.io.BufferedWriter out)
           
 void setVariableOrdering()
           
 
Methods inherited from class net.sf.bddbddb.ir.DomainAssignment
addConstraints, forceConstraints, loadDomainAssignment, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UFDomainAssignment

public UFDomainAssignment(Solver s)

UFDomainAssignment

protected UFDomainAssignment(Solver s,
                             PartialOrder.Constraints[] constraintMap)
Parameters:
s -
Method Detail

doAssignment

public void doAssignment()
Specified by:
doAssignment in class DomainAssignment

setVariableOrdering

public void setVariableOrdering()
Specified by:
setVariableOrdering in class DomainAssignment

saveDomainAssignment

public void saveDomainAssignment(java.io.BufferedWriter out)
                          throws java.io.IOException
Specified by:
saveDomainAssignment in class DomainAssignment
Throws:
java.io.IOException


Copyright © 2004-2008 Stanford SUIF Compiler Group. All Rights Reserved.