public final class BoolNotView extends IntView implements BoolVar
Modifier and Type | Field and Description |
---|---|
protected BoolVar |
var |
_riterator, _viterator, delta
_plugexpl, mIdx, modificationEvents, monitors, MSG_BOUND, MSG_EMPTY, MSG_INST, MSG_LOW, MSG_REMOVE, MSG_UNKNOWN, MSG_UPP, name, solver
Constructor and Description |
---|
BoolNotView(BoolVar var,
Solver solver) |
Modifier and Type | Method and Description |
---|---|
void |
_setNot(BoolVar not) |
boolean |
contains(int value)
Checks if a value
v belongs to the domain of this |
BoolVar |
duplicate()
Duplicate
this . |
void |
duplicate(Solver solver,
gnu.trove.map.hash.THashMap<Object,Object> identitymap)
Duplicate
this (which naturally adds it into solver ). |
ESat |
getBooleanValue() |
int |
getLB()
Retrieves the lower bound of the variable
|
int |
getTypeAndKind()
Return a MASK composed of 2 main information: TYPE and KIND.
|
int |
getUB()
Retrieves the upper bound of the variable
|
int |
getValue()
Retrieves the current value of the variable if instantiated, otherwier the lower bound.
|
boolean |
hasNot() |
boolean |
instantiateTo(int value,
ICause cause)
Instantiates the domain of
this to value . |
boolean |
isInstantiatedTo(int value)
Checks wether
this is instantiated to val |
boolean |
isLit()
Current tree is a literal
|
boolean |
isNot()
Current tree is rooted with NOT logical operator
This is a one way relationship: in case a = not(b)
a.isNot() returns true whereas b.isNot() returns false (unless b = not(c)...)
|
IIntDeltaMonitor |
monitorDelta(ICause propagator)
Allow to monitor removed values of
this . |
int |
nextValue(int v)
Returns the next value just after v in
this . |
BoolVar |
not() |
int |
previousValue(int v)
Returns the previous value just befor v in
this . |
boolean |
removeInterval(int from,
int to,
ICause cause)
Removes values between [
from, to ] from the domain of this . |
boolean |
removeValue(int value,
ICause cause)
Removes
value from the domain of this . |
void |
setNot(boolean isNot)
States whether or not this variable is the negation of another.
|
boolean |
setToFalse(ICause cause) |
boolean |
setToTrue(ICause cause) |
String |
toString() |
boolean |
updateLowerBound(int value,
ICause cause)
Updates the lower bound of the domain of
this to value . |
boolean |
updateUpperBound(int value,
ICause cause)
Updates the upper bound of the domain of
this to value . |
compareTo, contradiction, createDelta, getDelta, getDomainSize, getRangeIterator, getValueIterator, getVariable, hasEnumeratedDomain, isInstantiated, notifyMonitors, recordMask, transformEvent, why
addMonitor, getId, getIndexInPropagator, getName, getNbProps, getPIndices, getPropagator, getPropagators, getSolver, getViews, isBool, link, notifyPropagators, notifyViews, removeMonitor, subscribeView, unlink
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getDomainSize, getRangeIterator, getValueIterator, hasEnumeratedDomain, isBool
addMonitor, contradiction, createDelta, getDelta, getIndexInPropagator, getName, getNbProps, getPIndices, getPropagator, getPropagators, getSolver, getViews, isInstantiated, link, notifyMonitors, notifyPropagators, notifyViews, recordMask, removeMonitor, subscribeView, unlink
compareTo
protected final BoolVar var
public ESat getBooleanValue()
getBooleanValue
in interface BoolVar
public boolean setToTrue(ICause cause) throws ContradictionException
setToTrue
in interface BoolVar
ContradictionException
public boolean setToFalse(ICause cause) throws ContradictionException
setToFalse
in interface BoolVar
ContradictionException
public boolean removeValue(int value, ICause cause) throws ContradictionException
IntVar
value
from the domain of this
. The instruction comes from propagator
.
value
is out of the domain, nothing is done and the return value is false
,value
leads to a dead-end (domain wipe-out),
a ContradictionException
is thrown,value
from the domain can be done safely,
the event type is created (the original event can be promoted) and observers are notified
and the return value is true
removeValue
in interface IntVar
value
- value to remove from the domain (int)cause
- removal releaserContradictionException
- if the domain become empty due to this actionpublic boolean removeInterval(int from, int to, ICause cause) throws ContradictionException
IntVar
from, to
] from the domain of this
. The instruction comes from propagator
.
false
,value
leads to a dead-end (domain wipe-out),
a ContradictionException
is thrown,value
from the domain can be done safely,
the event type is created (the original event can be promoted) and observers are notified
and the return value is true
removeInterval
in interface IntVar
from
- lower bound of the interval to remove (int)to
- upper bound of the interval to remove(int)cause
- removal releaserContradictionException
- if the domain become empty due to this actionpublic boolean instantiateTo(int value, ICause cause) throws ContradictionException
IntVar
this
to value
. The instruction comes from propagator
.
this
is already instantiated to value
,
nothing is done and the return value is false
,this
is already instantiated to another value,
then a ContradictionException
is thrown,this
is restricted to value
and the observers are notified
and the return value is true
.instantiateTo
in interface IntVar
value
- instantiation value (int)cause
- instantiation releaserContradictionException
- if the domain become empty due to this actionpublic boolean updateLowerBound(int value, ICause cause) throws ContradictionException
IntVar
this
to value
.
The instruction comes from propagator
.
value
is smaller than the lower bound of the domain, nothing is done and the return value is false
,value
leads to a dead-end (domain wipe-out),
a ContradictionException
is thrown,value
can be done safely,
the event type is created (the original event can be promoted) and observers are notified
and the return value is true
updateLowerBound
in interface IntVar
value
- new lower bound (included)cause
- updating releaserContradictionException
- if the domain become empty due to this actionpublic boolean updateUpperBound(int value, ICause cause) throws ContradictionException
IntVar
this
to value
.
The instruction comes from propagator
.
value
is greater than the upper bound of the domain, nothing is done and the return value is false
,value
leads to a dead-end (domain wipe-out),
a ContradictionException
is thrown,value
can be done safely,
the event type is created (the original event can be promoted) and observers are notified
and the return value is true
updateUpperBound
in interface IntVar
value
- new upper bound (included)cause
- update releaserContradictionException
- if the domain become empty due to this actionpublic boolean contains(int value)
IntVar
v
belongs to the domain of this
public boolean isInstantiatedTo(int value)
IntVar
this
is instantiated to val
isInstantiatedTo
in interface IntVar
value
- intthis
is instantiated to val
, false otherwisepublic int getValue()
IntVar
public int getLB()
IntVar
public int getUB()
IntVar
public int nextValue(int v)
IntVar
this
.
If no such value exists, returns Integer.MAX_VALUE;
To iterate over the values in a IntVar
,
use the following loop:
int ub = iv.getUB(); for (int i = iv.getLB(); i <= ub; i = iv.nextValue(i)) { // operate on value i here }
public int previousValue(int v)
IntVar
this
.
If no such value exists, returns Integer.MIN_VALUE;
To iterate over the values in a IntVar
,
use the following loop:
int lb = iv.getLB(); for (int i = iv.getUB(); i >= lb; i = iv.previousValue(i)) { // operate on value i here }
previousValue
in interface IntVar
v
- the value to start checking (exclusive)public IIntDeltaMonitor monitorDelta(ICause propagator)
IntVar
this
.monitorDelta
in interface IntVar
propagator
- the cause that requires to monitor deltapublic String toString()
toString
in class AbstractVariable
public void duplicate(Solver solver, gnu.trove.map.hash.THashMap<Object,Object> identitymap)
Variable
this
(which naturally adds it into solver
).public boolean isLit()
ILogical
public boolean isNot()
ILogical
public void setNot(boolean isNot)
ILogical
public int getTypeAndKind()
Variable
int type = var.getTypeAndKind() & Variable.TYPE;To get the KIND of a variable:
int kind = var.getTypeAndKind() & Variable.KIND;To check a specific type or kind of a variable:
boolean isVar = (var.getTypeAndKind() & Variable.VAR) !=0; boolean isInt = (var.getTypeAndKind() & Variable.INT) !=0;
getTypeAndKind
in interface Variable
getTypeAndKind
in class IntView
Copyright © 2015. All rights reserved.