|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.ObjectJaCoP.core.Domain
JaCoP.core.IntDomain
JaCoP.core.IntervalDomain
public class IntervalDomain
Defines interval of numbers which is part of FDV definition which consist of one or several intervals.
| Field Summary | |
|---|---|
static IntervalDomain |
emptyDomain
An empty domain, so no constant creation of empty domains is required. |
Interval[] |
intervals
The values of the domain are encoded as a list of intervals. |
IntervalDomain |
previousDomain
It specifies the previous domain which was used by this domain. |
int |
size
It specifies number of intervals needed to encode the domain. |
static java.lang.String[] |
xmlAttributes
It specifies the arguments required to be saved by an XML format as well as the constructor being called to recreate an object from an XML format. |
| Fields inherited from class JaCoP.core.IntDomain |
|---|
ANY, BOUND, BoundDomainID, emptyIntDomain, eventsInclusion, GROUND, IntervalDomainID, MaxInt, MinInt, SmallDenseDomainID |
| Fields inherited from class JaCoP.core.Domain |
|---|
modelConstraints, modelConstraintsToEvaluate, NOINFO, NONE, searchConstraints, searchConstraintsCloned, searchConstraintsToEvaluate, stamp |
| Constructor Summary | |
|---|---|
IntervalDomain()
Empty constructor, does not initialize anything. |
|
IntervalDomain(int size)
It creates an empty domain, with at least specified number of places in an array list for intervals. |
|
IntervalDomain(int min,
int max)
It creates domain with all values between min and max. |
|
| Method Summary | |
|---|---|
void |
addDom(IntDomain domain)
It adds values as specified by the parameter to the domain. |
java.lang.String |
checkInvariants()
It is a function to check if the object is in consistent state. |
void |
clear()
It removes all elements. |
IntervalDomain |
clone()
It clones the domain object. |
IntervalDomain |
cloneLight()
It clones the domain object, only data responsible for encoding domain values is cloned. |
IntDomain |
complement()
It creates a complement of a domain. |
boolean |
contains(int value)
It checks if value belongs to the domain. |
boolean |
contains(IntDomain domain)
It specifies if the current domain contains the domain given as a parameter. |
boolean |
contains(int min,
int max)
It checks if an interval min..max belongs to the domain. |
IntDomain |
divide(int div)
It divides the domain. |
int |
domainID()
It returns an unique identifier of the domain. |
boolean |
eq(IntDomain domain)
It checks if the domain is equal to the supplied domain. |
static void |
fromXML(IntervalDomain object,
java.lang.String content)
It updates an object of type IntervalDomain with the information stored in the string. |
int |
getElementAt(int index)
It access the element at the specified position. |
Interval |
getInterval(int position)
It returns required interval. |
int |
getRandomValue()
It returns a random value from the domain. |
int |
getSize()
It returns the size of the domain. |
void |
in(int storeLevel,
Var var,
IntDomain domain)
It updates the domain to have values only within the domain. |
void |
in(int storeLevel,
Var var,
int min,
int max)
It updates the domain to have values only within the interval min..max. |
void |
inComplement(int storeLevel,
Var var,
int complement)
It updates the domain to not contain the value complement. |
void |
inComplement(int storeLevel,
Var var,
int min,
int max)
It updates the domain so it does not contain the supplied interval. |
void |
inMax(int storeLevel,
Var var,
int max)
It updates the domain according to the maximum value and stamp value. |
void |
inMin(int storeLevel,
Var var,
int min)
It updates the domain according to the minimum value and stamp value. |
void |
inShift(int storeLevel,
Var var,
IntDomain domain,
int shift)
It updates the domain to contain the elements as specifed by the domain, which is shifted. |
IntDomain |
intersect(IntDomain domain)
It interesects current domain with the one given as a parameter. |
IntDomain |
intersect(int min,
int max)
In intersects current domain with the domain min..max. |
int |
intersectAdapt(IntDomain domain)
It computes an intersection with a given domain and stores it in this domain. |
int |
intersectAdapt(int min,
int max)
It computes an intersection of this domain with an interval [min..max]. |
IntervalEnumeration |
intervalEnumeration()
It returns interval enumeration of the domain values. |
int |
intervalNo(int value)
It specifies the position of the interval which contains specified value. |
boolean |
isEmpty()
It returns true if given domain is empty. |
boolean |
isIntersecting(IntDomain domain)
Checks if two domains intersect. |
boolean |
isIntersecting(int min,
int max)
It checks if interval min..max intersects with current domain. |
boolean |
isNumeric()
It specifies if domain is a finite domain of numeric values (integers). |
boolean |
isSparseRepresentation()
It specifies if the domain type is more suited to representing sparse domain. |
int |
leftElement(int intervalNo)
It returns the left most element of the given interval. |
int |
max()
It returns the maximum value in a domain. |
int |
min()
It returns the minimum value in a domain. |
IntDomain |
multiply(int mul)
{1..4} * 6 = {6, 12, 18, 24} |
int |
nextValue(int value)
It gives next value in the domain from the given value (lexigraphical ordering). |
int |
noIntervals()
It returns the number intervals into which this domain is split. |
int |
previousValue(int value)
It gives previous value in the domain from the given one (lexigraphical ordering). |
void |
putModelConstraint(int storeLevel,
Var var,
Constraint C,
int pruningEvent)
It adds a constraint to a domain, it should only be called by putConstraint function of Variable object. |
void |
putSearchConstraint(int storeLevel,
Var var,
Constraint C)
It adds a constraint to a domain, it should only be called by putConstraint function of Variable object. |
IntDomain |
recentDomainPruning(int storeLevel)
It returns the values which have been removed at current store level. |
void |
removeInterval(int position)
It removes the counter-th interval from the domain. |
void |
removeLevel(int level,
Var var)
It removes a level of a domain. |
void |
removeModelConstraint(int storeLevel,
Var var,
Constraint C)
It removes a constraint from a domain, it should only be called by removeConstraint function of Variable object. |
void |
removeSearchConstraint(int storeLevel,
Var var,
Constraint C)
It removes a constraint from a domain, it should only be called by removeConstraint function of Variable object. |
void |
removeSearchConstraint(int storeLevel,
Var var,
int position,
Constraint C)
It removes a constraint from a domain, it should only be called by removeConstraint function of Variable object. |
int |
rightElement(int intervalNo)
It returns the left most element of the given interval. |
void |
setDomain(IntDomain domain)
It sets the domain to the specified domain. |
void |
setDomain(int min,
int max)
It sets the domain to all values between min and max. |
boolean |
singleton()
It returns true if given domain has only one element. |
boolean |
singleton(int c)
It returns true if given domain has only one element equal c. |
int |
sizeConstraintsOriginal()
It returns all constraints which are associated with variable, even the ones which are already satisfied. |
int |
sizeOfIntersection(IntDomain domain)
It computes the size of the intersection between this domain and the domain supplied as a parameter. |
IntDomain |
subtract(int value)
It intersects with the domain which is a complement of value. |
IntDomain |
subtract(IntDomain domain)
It subtracts domain from current domain and returns the result. |
IntervalDomain |
subtract(int min,
int max)
It subtracts min..max from current domain and returns the result. |
void |
subtractAdapt(int value)
It removes value from the domain. |
void |
subtractAdapt(int minValue,
int maxValue)
It removes all values between min and max to the domain. |
java.lang.String |
toString()
It returns string description of the domain (only values in the domain). |
java.lang.String |
toStringConstraints()
It returns string description of the constraints attached to the domain. |
java.lang.String |
toStringFull()
It returns complete string description containing all relevant information. |
void |
toXML(javax.xml.transform.sax.TransformerHandler tf)
It writes the content of this object as the content of XML element so later it can be used to restore the object from XML. |
IntDomain |
union(int value)
It computes union of dom1 and value and returns the result. |
IntDomain |
union(IntDomain domain)
It computes union of dom1 from dom2 and returns the result. |
IntDomain |
union(int min,
int max)
It computes union of current domain and an interval min..max; |
void |
unionAdapt(int value)
It adds a values to the domain. |
int |
unionAdapt(IntDomain union)
It computes a union between this domain and the domain provided as a parameter. |
void |
unionAdapt(Interval i)
It adds interval of values to the domain. |
void |
unionAdapt(int min,
int max)
It adds all values between min and max to the domain. |
ValueEnumeration |
valueEnumeration()
It returns value enumeration of the domain values. |
| Methods inherited from class JaCoP.core.IntDomain |
|---|
elementsSmallerThan, getEventsInclusion, in, inValue, lex, noConstraints, singleton, toIntArray, value |
| Methods inherited from class JaCoP.core.Domain |
|---|
constraints, noSearchConstraints, searchConstraints, setStamp, sizeConstraints, stamp |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public Interval[] intervals
public IntervalDomain previousDomain
public int size
public static java.lang.String[] xmlAttributes
public static IntervalDomain emptyDomain
| Constructor Detail |
|---|
public IntervalDomain()
public IntervalDomain(int size)
size - defines the initial size of an array storing the intervals.
public IntervalDomain(int min,
int max)
min - defines the left bound of a domain.max - defines the right bound of a domain.| Method Detail |
|---|
public void toXML(javax.xml.transform.sax.TransformerHandler tf)
throws org.xml.sax.SAXException
tf - a place to write the content of the object.
org.xml.sax.SAXException
public static void fromXML(IntervalDomain object,
java.lang.String content)
object - the object to be updated.content - the information used for update.public void unionAdapt(Interval i)
unionAdapt in class IntDomaini - Interval which needs to be added to the domain.public void addDom(IntDomain domain)
addDom in class IntDomaindomain - Domain which needs to be added to the domain.
public void unionAdapt(int min,
int max)
unionAdapt in class IntDomainmin - the left bound of the interval being added.max - the right bound of the interval being added.public boolean isIntersecting(IntDomain domain)
isIntersecting in class IntDomaindomain - the domain for which intersection is checked.
public boolean isIntersecting(int min,
int max)
IntDomain
isIntersecting in class IntDomainmin - the left bound of the interval.max - the right bound of the interval.
public void clear()
clear in class Domainpublic IntervalDomain cloneLight()
cloneLight in class IntDomainpublic IntervalDomain clone()
clone in class Domainpublic boolean contains(IntDomain domain)
contains in class IntDomaindomain - for which we check if it is contained in the current domain.
public IntDomain complement()
complement in class IntDomainpublic boolean contains(int value)
contains in class IntDomainvalue - which is checked if it exists in the domain.
public int nextValue(int value)
nextValue in class IntDomainvalue - it specifies the value after which a next value has to be found.
public IntDomain divide(int div)
div - divider.
public ValueEnumeration valueEnumeration()
valueEnumeration in class IntDomainpublic IntervalEnumeration intervalEnumeration()
intervalEnumeration in class IntDomainpublic boolean eq(IntDomain domain)
eq in class IntDomaindomain - the domain which is compared to this domain.
public int getSize()
getSize in class IntDomainpublic IntDomain intersect(IntDomain domain)
intersect in class IntDomaindomain - domain with which the intersection needs to be computed.
public IntDomain intersect(int min,
int max)
intersect in class IntDomainmin - the left bound of the interval (inclusive)max - the right bound of the interval (inclusive)
public IntDomain subtract(int value)
IntDomain
subtract in class IntDomainvalue - the value for which the complement is computed
public boolean isEmpty()
isEmpty in class Domainpublic int max()
max in class IntDomainpublic int min()
min in class IntDomainpublic IntDomain multiply(int mul)
mul - the multiplier constant.
public void removeInterval(int position)
position - it specifies the position of the removed interval.public void setDomain(IntDomain domain)
setDomain in class IntDomaindomain - the domain from which this domain takes all elements.
public void setDomain(int min,
int max)
setDomain in class IntDomainmin - the left bound of the interval (inclusive).max - the right bound of the interval (inclusive).public boolean singleton()
singleton in class Domainpublic boolean singleton(int c)
singleton in class IntDomainc - the value to which the only element should be equal to.
public IntDomain subtract(IntDomain domain)
subtract in class IntDomaindomain - the domain which is subtracted from this domain.
public IntervalDomain subtract(int min,
int max)
subtract in class IntDomainmin - the left bound of the interval (inclusive).max - the right bound of the interval (inclusive).
public IntDomain union(IntDomain domain)
union in class IntDomaindomain - the domain for which the union is computed.
public IntDomain union(int min,
int max)
union in class IntDomainmin - the left bound of the interval (inclusive).max - the right bound of the interval (inclusive).
public IntDomain union(int value)
union in class IntDomainvalue - it specifies the value which is being added.
public java.lang.String toString()
toString in class Domainpublic java.lang.String toStringConstraints()
toStringConstraints in class Domainpublic java.lang.String toStringFull()
toStringFull in class Domain
public void inMin(int storeLevel,
Var var,
int min)
inMin in class IntDomainstoreLevel - level of the store at which the update occurs.var - variable for which this domain is used.min - the minimum value to which the domain is updated.
public void inMax(int storeLevel,
Var var,
int max)
inMax in class IntDomainstoreLevel - level of the store at which the update occurs.var - variable for which this domain is used.max - the maximum value to which the domain is updated.
public void in(int storeLevel,
Var var,
int min,
int max)
in in class IntDomainstoreLevel - level of the store at which the update occurs.var - variable for which this domain is used.min - the minimum value to which the domain is updated.max - the maximum value to which the domain is updated.
public void in(int storeLevel,
Var var,
IntDomain domain)
in in class IntDomainstoreLevel - level of the store at which the update occurs.var - variable for which this domain is used.domain - the domain according to which the domain is updated.public int noIntervals()
noIntervals in class IntDomainpublic int intervalNo(int value)
value - value for which an interval containing it is searched.
public Interval getInterval(int position)
IntDomain
getInterval in class IntDomainposition - the position of the interval.
public void inComplement(int storeLevel,
Var var,
int complement)
inComplement in class IntDomainstoreLevel - level of the store at which the update occurs.var - variable for which this domain is used.complement - value which is removed from the domain if it belonged to the domain.
public void inComplement(int storeLevel,
Var var,
int min,
int max)
IntDomain
inComplement in class IntDomainstoreLevel - level of the store at which the update occurs.var - variable for which this domain is used.min - the left bound of the interval (inclusive).max - the right bound of the interval (inclusive).
public void inShift(int storeLevel,
Var var,
IntDomain domain,
int shift)
inShift in class IntDomainstoreLevel - level of the store at which the update occurs.var - variable for which this domain is used.domain - the domain according to which the domain is updated.shift - the shift which is used to shift the domain supplied as argument.public int domainID()
domainID in class Domainpublic boolean isSparseRepresentation()
isSparseRepresentation in class Domainpublic boolean isNumeric()
isNumeric in class Domainpublic int leftElement(int intervalNo)
leftElement in class IntDomainintervalNo - the interval number.
public int rightElement(int intervalNo)
rightElement in class IntDomainintervalNo - the interval number.
public void removeLevel(int level,
Var var)
removeLevel in class Domainlevel - the level which is being removed.var - the variable to which this domain belonged to.
public void putModelConstraint(int storeLevel,
Var var,
Constraint C,
int pruningEvent)
putModelConstraint in class DomainstoreLevel - the level at which the model constraint is to be added.var - variable to which the constraint is attached to.C - the constraint which is being attached to a variable.pruningEvent - the type of the prunning event required to check the consistency of the attached constraint.
public void putSearchConstraint(int storeLevel,
Var var,
Constraint C)
putSearchConstraint in class DomainstoreLevel - the level at which the search constraint is to be added.var - variable to which the constraint is attached to.C - the constraint which is being attached to a variable.
public void removeSearchConstraint(int storeLevel,
Var var,
Constraint C)
storeLevel - the current level of the store.var - the variable for which the constraint is being removed.C - the constraint being removed.
public void removeSearchConstraint(int storeLevel,
Var var,
int position,
Constraint C)
removeSearchConstraint in class DomainstoreLevel - specifies the current level of the store, from which it should be removed.var - specifies variable for which the constraint is being removed.position - specifies the position of the removed constraint.C - the constraint which is being removed.
public void removeModelConstraint(int storeLevel,
Var var,
Constraint C)
removeModelConstraint in class DomainstoreLevel - specifies the current level of the store, from which it should be removed.var - specifies variable for which the constraint is being removed.C - the constraint which is being removed.public IntDomain recentDomainPruning(int storeLevel)
IntDomain
recentDomainPruning in class IntDomainstoreLevel - the current store level.
public int sizeConstraintsOriginal()
sizeConstraintsOriginal in class Domainpublic int previousValue(int value)
IntDomain
previousValue in class IntDomainvalue - before which a value is seeked for.
public java.lang.String checkInvariants()
checkInvariants in class Domainpublic void unionAdapt(int value)
IntDomain
unionAdapt in class IntDomainvalue - value being added to the domain.public void subtractAdapt(int value)
IntDomain
subtractAdapt in class IntDomainvalue - the value for which the complement is computed
public void subtractAdapt(int minValue,
int maxValue)
IntDomain
subtractAdapt in class IntDomainminValue - the left bound of the interval being removed.maxValue - the right bound of the interval being removed.public int intersectAdapt(IntDomain domain)
IntDomain
intersectAdapt in class IntDomaindomain - domain with which the intersection is being computed.
public int unionAdapt(IntDomain union)
IntDomain
unionAdapt in class IntDomainunion - the domain with is used for the union operation with this domain.
public int intersectAdapt(int min,
int max)
IntDomain
intersectAdapt in class IntDomainmin - the minimum value of the interval used in the intersection computation.max - the maximum value of the interval used in the intersection computation.
public int sizeOfIntersection(IntDomain domain)
IntDomain
sizeOfIntersection in class IntDomaindomain - the domain with which the intersection is computed.
public int getElementAt(int index)
IntDomain
getElementAt in class IntDomainindex - the position of the element, indexing starts from 0.
public int getRandomValue()
IntDomain
getRandomValue in class IntDomain
public boolean contains(int min,
int max)
IntDomain
contains in class IntDomainmin - the minimum value of the interval being checkedmax - the maximum value of the interval being checked
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||