public class BoundDomain extends IntDomain
Modifier and Type | Field and Description |
---|---|
static BoundDomain |
emptyDomain
It predefines empty domain so there is no need to constantly create it when
needed.
|
int |
max
The maximal value of the domain.
|
int |
min
The minimal value of the domain.
|
BoundDomain |
previousDomain
It specifies the previous domain which was used by this domain.
|
ANY, BOUND, BoundDomainID, emptyIntDomain, eventsInclusion, GROUND, IntervalDomainID, MaxInt, MinInt, SmallDenseDomainID
failException, modelConstraints, modelConstraintsToEvaluate, NOINFO, NONE, searchConstraints, searchConstraintsCloned, searchConstraintsToEvaluate, stamp
Constructor and Description |
---|
BoundDomain()
It is a constructor which will create an empty Bound domain.
|
BoundDomain(int min,
int max)
Creates a new instance of BoundDomain.
|
Modifier and Type | Method and Description |
---|---|
void |
addDom(IntDomain domain)
It adds values as specified by the parameter to the domain.
|
String |
checkInvariants()
It checks if the domain has correct state.
|
void |
clear()
It removes all elements.
|
BoundDomain |
clone()
It clones the domain object.
|
BoundDomain |
cloneLight()
It clones this domain.
|
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 by a given constant.
|
int |
domainID()
It returns an unique identifier of the domain.
|
boolean |
eq(IntDomain domain)
It specifies if the other int domain is equal to this one.
|
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 dom)
It intersects current domain with the one given as a parameter.
|
IntDomain |
intersect(int min,
int max)
In intersects current domain with the interval min..max.
|
int |
intersectAdapt(IntDomain intersect)
It computes an intersection with a given domain and stores it in this domain.
|
int |
intersectAdapt(int minIntersect,
int maxIntersect)
It computes an intersection of this domain with an interval [min..max].
|
IntervalEnumeration |
intervalEnumeration()
It returns interval enumeration of the domain values.
|
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)
It multiplies the domain by a given constant.
|
int |
nextValue(int value)
It gives next value in the domain from the given one (lexigraphical
ordering).
|
int |
noIntervals()
It returns number of intervals required to represent this domain.
|
IntDomain |
previousDomain()
It returns domain at earlier level at which the change has occurred.
|
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 |
removeLevel(int level,
Var var)
It removes the specified level.
|
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,
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 right 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 this domain to contain exactly 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.
|
BoundDomain |
subtract(int min,
int max)
It subtracts interval min..max.
|
void |
subtractAdapt(int complement)
It removes value from the domain.
|
void |
subtractAdapt(int min,
int max)
It removes all values between min and max to the domain.
|
String |
toString()
It returns string description of the domain (only values in the domain).
|
String |
toStringConstraints()
It returns string description of the constraints attached to the domain.
|
String |
toStringFull()
It returns complete string description containing all relevant
information about the domain.
|
IntDomain |
union(int value)
It computes union of this domain and value.
|
IntDomain |
union(IntDomain domain)
It computes union of the supplied domain with this domain.
|
IntDomain |
union(int min,
int max)
It computes union of this domain and the interval.
|
void |
unionAdapt(int value)
It adds a values to the domain.
|
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.
|
divBounds, divIntBounds, elementsSmallerThan, getEventsInclusion, in, inValue, lex, mulBounds, multiply, noConstraints, singleton, toIntArray, unionAdapt, value
constraints, noSearchConstraints, searchConstraints, setStamp, sizeConstraints, stamp
public int min
public int max
public BoundDomain previousDomain
public static BoundDomain emptyDomain
public BoundDomain()
public BoundDomain(int min, int max)
min
- it specifies the left bound of the BoundDomain (inclusive).max
- it specifies the right bound of the BoundDomain (inclusive).public void unionAdapt(Interval i)
IntDomain
unionAdapt
in class IntDomain
i
- public void addDom(IntDomain domain)
IntDomain
public void unionAdapt(int min, int max)
IntDomain
unionAdapt
in class IntDomain
min
- the left bound of the interval being added.max
- the right bound of the interval being added.public void clear()
Domain
public IntDomain previousDomain()
IntDomain
previousDomain
in class IntDomain
public BoundDomain clone()
Domain
public BoundDomain cloneLight()
cloneLight
in class IntDomain
public IntDomain complement()
IntDomain
complement
in class IntDomain
public boolean contains(IntDomain domain)
IntDomain
public boolean contains(int value)
IntDomain
public IntDomain divide(int div)
div
- the constant by which the domain should be divided.public int domainID()
Domain
public boolean eq(IntDomain domain)
IntDomain
public Interval getInterval(int position)
IntDomain
getInterval
in class IntDomain
position
- the position of the interval.public int getSize()
IntDomain
public void in(int storeLevel, Var var, int min, int max)
IntDomain
public void in(int storeLevel, Var var, IntDomain domain)
IntDomain
public void inComplement(int storeLevel, Var var, int complement)
IntDomain
inComplement
in class IntDomain
storeLevel
- 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 IntDomain
storeLevel
- 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 inMax(int storeLevel, Var var, int max)
IntDomain
public void inMin(int storeLevel, Var var, int min)
IntDomain
public void inShift(int storeLevel, Var var, IntDomain domain, int shift)
IntDomain
public IntDomain intersect(IntDomain dom)
IntDomain
public IntDomain intersect(int min, int max)
IntDomain
public IntDomain subtract(int value)
IntDomain
public IntervalEnumeration intervalEnumeration()
IntDomain
intervalEnumeration
in class IntDomain
public boolean isEmpty()
Domain
public boolean isIntersecting(IntDomain domain)
IntDomain
isIntersecting
in class IntDomain
domain
- the domain for which intersection is checked.public boolean isIntersecting(int min, int max)
IntDomain
isIntersecting
in class IntDomain
min
- the left bound of the interval.max
- the right bound of the interval.public boolean isNumeric()
Domain
public boolean isSparseRepresentation()
Domain
isSparseRepresentation
in class Domain
public int leftElement(int intervalNo)
IntDomain
leftElement
in class IntDomain
intervalNo
- the interval number.public int max()
IntDomain
public int min()
IntDomain
public IntDomain multiply(int mul)
mul
- a factor by which the domain is being multiplied.public int nextValue(int value)
IntDomain
public int noIntervals()
IntDomain
noIntervals
in class IntDomain
public void putModelConstraint(int storeLevel, Var var, Constraint C, int pruningEvent)
putModelConstraint
in class Domain
storeLevel
- 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 Domain
storeLevel
- 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 IntDomain recentDomainPruning(int storeLevel)
IntDomain
recentDomainPruning
in class IntDomain
storeLevel
- the current store level.public void removeLevel(int level, Var var)
Domain
removeLevel
in class Domain
level
- the level which is being removed.var
- the variable to which this domain belonged to.public void removeSearchConstraint(int storeLevel, Var var, int position, Constraint C)
removeSearchConstraint
in class Domain
storeLevel
- 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 Domain
storeLevel
- 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 int rightElement(int intervalNo)
IntDomain
rightElement
in class IntDomain
intervalNo
- the interval number.public void setDomain(IntDomain domain)
IntDomain
public void setDomain(int min, int max)
IntDomain
public boolean singleton()
Domain
public boolean singleton(int c)
IntDomain
public int sizeConstraintsOriginal()
Domain
sizeConstraintsOriginal
in class Domain
public IntDomain subtract(IntDomain domain)
IntDomain
public BoundDomain subtract(int min, int max)
IntDomain
public String toString()
Domain
public String toStringConstraints()
Domain
toStringConstraints
in class Domain
public String toStringFull()
Domain
toStringFull
in class Domain
public IntDomain union(IntDomain domain)
IntDomain
public IntDomain union(int min, int max)
IntDomain
public IntDomain union(int value)
IntDomain
public ValueEnumeration valueEnumeration()
IntDomain
valueEnumeration
in class IntDomain
public int previousValue(int value)
IntDomain
previousValue
in class IntDomain
value
- before which a value is seeked for.public String checkInvariants()
Domain
checkInvariants
in class Domain
public void unionAdapt(int value)
IntDomain
unionAdapt
in class IntDomain
value
- value being added to the domain.public void subtractAdapt(int complement)
IntDomain
subtractAdapt
in class IntDomain
complement
- the value for which the complement is computedpublic void subtractAdapt(int min, int max)
IntDomain
subtractAdapt
in class IntDomain
min
- the left bound of the interval being removed.max
- the right bound of the interval being removed.public int intersectAdapt(IntDomain intersect)
IntDomain
intersectAdapt
in class IntDomain
intersect
- domain with which the intersection is being computed.public int intersectAdapt(int minIntersect, int maxIntersect)
IntDomain
intersectAdapt
in class IntDomain
minIntersect
- the minimum value of the interval used in the intersection computation.maxIntersect
- the maximum value of the interval used in the intersection computation.public int getElementAt(int index)
IntDomain
getElementAt
in class IntDomain
index
- the position of the element, indexing starts from 0.public int sizeOfIntersection(IntDomain domain)
IntDomain
sizeOfIntersection
in class IntDomain
domain
- the domain with which the intersection is computed.public int getRandomValue()
IntDomain
getRandomValue
in class IntDomain
public boolean contains(int min, int max)
IntDomain
Copyright © 2015. All rights reserved.