| java.lang.Object mlsub.typing.lowlevel.K0
K0 | final public class K0 (Code) | | A lowlevel constraint on integers.
version: $OrigRevision: 1.22 $, $OrigDate: 1999/10/28 10:56:58 $ author: Alexandre Frey author: Daniel Bonniot (Abstractable Interfaces, and unlimited backtrack) |
Inner Class :abstract public static class Callbacks | |
Inner Class :abstract public static class IneqIterator | |
Inner Class :abstract public static class IndexIterator | |
Inner Class :abstract public static class ImplementsIterator | |
Inner Class :abstract public static class AbstractsIterator | |
Inner Class :abstract public static class IndexSelector | |
Constructor Summary | |
public | K0(int backtrackMode, Callbacks callbacks) | public | K0(Callbacks callbacks) |
Method Summary | |
public void | abstractsIter(AbstractsIterator iterator) | public void | backtrack(boolean ignore) | public void | clearTags() | BitVector[] | closeImplements(BitMatrix R, BitMatrix Rt) | public void | createInitialContext() | public void | deleteAllSoft() | void | discard(int x) | public String | domainsToString() | public String | dumpInterfaces() | public String | dumpRigid() | public void | enterConstraint(int x1, int v0, int x2) | public void | enumerate(LowlevelSolutionHandler handler) | public void | enumerate(BitVector observers, LowlevelSolutionHandler handler) | public void | eq(int x1, int x2) | public int | extend() | public int | firstNonRigid() Returns an index that is guaranteed to be greater than any rigid index
and less or equal to any non-rigid index. | Interface | getInterface(int iid) | public String | getName() | public boolean | hasBeenInitialized() | public boolean | hasNoSoft() | public void | implementsIter(ImplementsIterator iterator) | public void | indexImplements(int x, int iid) | public void | indexIter(IndexIterator iterator) | public void | ineqIter(IneqIterator iterator) | public void | initialAbstracts(int x, int iid) | int | initialContextSize() | public void | initialImplements(int x, int iid) | public void | initialLeq(int x, int y) | String | interfaceToString(int iid) | public boolean | isBeingSimplified(int i) | public boolean | isLeq(int i1, int i2) | public boolean | isMinimal(int x) | public boolean | isRigid(int x) Returns true if x is the index of a rigid variable. | public boolean | isValidIndex(int x) | public void | leq(int x1, int x2) Enter the constraint x1 <= x2. | public void | mark() | public void | minimal(int x) | public int | nInterfaces() Returns the number of interfaces. | public boolean | negTagged(int i) | public int | newInterface() | public boolean | posTagged(int i) | public void | reduceDomain(int x, boolean unit, BitVector set) | public void | releaseInitialContext() | public void | rigidify() | public void | satisfy() | public void | simplify() | public void | simplify(IndexSelector selector) | public int | size() | public void | solveConstructorOverloading(int x, BitVector possibilities) | public void | solveInterfaceOverloading(int x, BitVector possibilities) | public void | startSimplify() | public void | stopSimplify() | public void | subInterface(int iid1, int iid2) | public void | tag(int i, int variance) | public String | toString() | public boolean | wasEntered(int i1, int i2) Test if a constraint i1 <: i2 was explicitely entered. | public void | weakBacktrack() | public void | weakMark() | int | weakMarkedSize() |
ALLSIMPLIFIED | final public static int ALLSIMPLIFIED(Code) | | Iterate thru the constraint
|
BACKTRACK_ONCE | final public static int BACKTRACK_ONCE(Code) | | |
BACKTRACK_UNLIMITED | final public static int BACKTRACK_UNLIMITED(Code) | | |
debugK0 | public static boolean debugK0(Code) | | Debugging
|
K0 | public K0(int backtrackMode, Callbacks callbacks)(Code) | | |
K0 | public K0(Callbacks callbacks)(Code) | | |
backtrack | public void backtrack(boolean ignore)(Code) | | |
clearTags | public void clearTags()(Code) | | |
closeImplements | BitVector[] closeImplements(BitMatrix R, BitMatrix Rt)(Code) | | Saturate the "implements" constraint under the following axioms:
x: I and I < J => x: J
x ~ y and y: I => x: I
Returns an array of BitVector rigidImplementors
rigidImplementors[iid] is the set of x such that x :* iid
|
deleteAllSoft | public void deleteAllSoft()(Code) | | |
discard | void discard(int x)(Code) | | |
eq | public void eq(int x1, int x2) throws Unsatisfiable(Code) | | Enter the constraint x1 = x2
Assume x1 and x2 are valid indexes
|
extend | public int extend()(Code) | | Add a new variable to the constraint and returns its index
|
firstNonRigid | public int firstNonRigid()(Code) | | Returns an index that is guaranteed to be greater than any rigid index
and less or equal to any non-rigid index.
|
hasBeenInitialized | public boolean hasBeenInitialized()(Code) | | |
hasNoSoft | public boolean hasNoSoft()(Code) | | |
implementsIter | public void implementsIter(ImplementsIterator iterator) throws Unsatisfiable(Code) | | |
indexImplements | public void indexImplements(int x, int iid) throws Unsatisfiable(Code) | | Enter the constraint x: iid
Assume x is a valid index and iid is a valid interface id
|
indexIter | public void indexIter(IndexIterator iterator)(Code) | | |
initialAbstracts | public void initialAbstracts(int x, int iid)(Code) | | Enter the initial assertion that x :: iid
This means that no node strictly lesser than x may implement iid
|
initialContextSize | int initialContextSize()(Code) | | |
initialImplements | public void initialImplements(int x, int iid)(Code) | | Enter the initial assertion that x : iid
|
initialLeq | public void initialLeq(int x, int y)(Code) | | Enter the initial assertion that x <= y
|
isBeingSimplified | public boolean isBeingSimplified(int i)(Code) | | |
isLeq | public boolean isLeq(int i1, int i2)(Code) | | Assume i1 and i2 are rigid
|
isMinimal | public boolean isMinimal(int x)(Code) | | |
isRigid | public boolean isRigid(int x)(Code) | | Returns true if x is the index of a rigid variable.
the index is assumed valid
|
isValidIndex | public boolean isValidIndex(int x)(Code) | | |
leq | public void leq(int x1, int x2) throws Unsatisfiable(Code) | | Enter the constraint x1 <= x2.
Assume x1 and x2 are valid indexes.
|
minimal | public void minimal(int x)(Code) | | |
nInterfaces | public int nInterfaces()(Code) | | Returns the number of interfaces. Interfaces are garanteed to be
numbered from 0 to nInterfaces()-1
|
negTagged | public boolean negTagged(int i)(Code) | | |
newInterface | public int newInterface()(Code) | | Add a new interface to the constraint and returns its ID
|
posTagged | public boolean posTagged(int i)(Code) | | |
releaseInitialContext | public void releaseInitialContext()(Code) | | |
rigidify | public void rigidify()(Code) | | Rigidify the current constraint
You must have called satisfy before
|
simplify | public void simplify()(Code) | | |
simplify | public void simplify(IndexSelector selector)(Code) | | |
solveConstructorOverloading | public void solveConstructorOverloading(int x, BitVector possibilities)(Code) | | |
solveInterfaceOverloading | public void solveInterfaceOverloading(int x, BitVector possibilities)(Code) | | |
startSimplify | public void startSimplify()(Code) | | Simplification
|
stopSimplify | public void stopSimplify()(Code) | | |
subInterface | public void subInterface(int iid1, int iid2)(Code) | | Enter the assertion that interface iid1 is a subinterface of iid2
Assume if1 and if2 are >=0 and < nInterfaces()
|
tag | public void tag(int i, int variance)(Code) | | |
wasEntered | public boolean wasEntered(int i1, int i2)(Code) | | Test if a constraint i1 <: i2 was explicitely entered.
|
weakBacktrack | public void weakBacktrack()(Code) | | |
weakMark | public void weakMark()(Code) | | |
weakMarkedSize | int weakMarkedSize()(Code) | | |
|
|