jopt.csp.spi.arcalgorithm.variable
Class DoubleVariable

java.lang.Object
  extended byjopt.csp.spi.arcalgorithm.variable.VariableChangeBase
      extended byjopt.csp.spi.arcalgorithm.variable.NumExprBase
          extended byjopt.csp.spi.arcalgorithm.variable.DoubleExpr
              extended byjopt.csp.spi.arcalgorithm.variable.DoubleVariable
All Implemented Interfaces:
jopt.csp.variable.CspDoubleCast, jopt.csp.variable.CspDoubleExpr, jopt.csp.variable.CspDoubleVariable, jopt.csp.variable.CspNumExpr, jopt.csp.variable.CspNumVariable, jopt.csp.variable.CspVariable, DoubleCast, NumExpr, Storable, TrigExpr, Variable, VariableChangeSource

public class DoubleVariable
extends DoubleExpr
implements jopt.csp.variable.CspDoubleVariable, Variable


Constructor Summary
DoubleVariable(java.lang.String name, BaseDoubleDomain domain)
          Constructor
DoubleVariable(java.lang.String name, DoubleCast expr)
          Constructor
DoubleVariable(java.lang.String name, double min, double max)
          Constructor
DoubleVariable(java.lang.String name, DoubleVariable var)
          Constructor
 
Method Summary
 void clearDelta()
          Clears the delta set for this variable's domain
 java.lang.Object clone()
          Clones this variable
 double getNextHigher(double val)
          Returns the next higher value in this variable's domain or current value if none exists
 double getNextLower(double val)
          Returns the next lower value in this variable's domain or current value if none exists
 int getSize()
          Returns the size of this variable's domain
 java.lang.Object getState()
          Stores appropriate data for future restoration.
 boolean isInDomain(double val)
          Returns true if value is in this variable's domain
 void removeAll(jopt.csp.util.DoubleSet vals)
          Attempts to remove a set of values from this variable's domain
 void removeDomainRange(java.lang.Number start, java.lang.Number end)
          Attempts to reduce this variable's domain by removing a range of values
 void removeDomainValue(java.lang.Number val)
          Attempts to remove a single value from this variable's domain
 void removeDomainValues(jopt.csp.util.NumSet vals)
          Attempts to reduce this variable's domain by removing a set of values
 void removeRange(double start, double end)
          Attempts to reduce this variable's domain by removing a range of values
 void removeValue(double val)
          Attempts to remove a single value from this variable's domain
 void restoreState(java.lang.Object state)
          Restores variable information from stored data.
 void setDomainMax(java.lang.Number val)
          Attempts to reduce this variable's domain to be less than the specified maximum value.
 void setDomainMin(java.lang.Number val)
          Attempts to reduce this variable's domain to be less than the specified maximum value.
 void setDomainRange(java.lang.Number start, java.lang.Number end)
          Attempts to reduce this variable's domain to within a range of values
 void setDomainValue(java.lang.Number val)
          Attempts to reduce this variable's domain to a single value.
 void setDomainValues(jopt.csp.util.NumSet s)
          Attempts to reduce this variable's domain by restricting it to a set of values
 void setMax(double val)
          Attempts to reduce this variable's domain to be less than the specified maximum value.
 void setMin(double val)
          Attempts to reduce this variable's domain to be greater than the specified minimum value.
 void setRange(double start, double end)
          Attempts to reduce this variable's domain to within a range of values
 void setValue(double val)
          Attempts to reduce this variable's domain to a single value.
 
Methods inherited from class jopt.csp.spi.arcalgorithm.variable.DoubleExpr
add, add, between, between, divide, divide, eq, eq, geq, geq, getDoubleDomain, getMax, getMin, getNextHigher, getNextLower, getNode, getNumberType, getNumMax, getNumMin, getPrecision, isInDomain, leq, leq, multiply, multiply, notBetween, notBetween, setPrecision, subtract, subtract
 
Methods inherited from class jopt.csp.spi.arcalgorithm.variable.NumExprBase
addVariableChangeListener, between, between, between, between, eq, equals, geq, getBooleanSourceArcs, getDomain, getName, getNodeCollection, gt, hashCode, isBound, leq, lt, neq, notBetween, notBetween, notBetween, notBetween, removeVariableChangeListener, setName, toString, updateGraph
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface jopt.csp.variable.CspDoubleVariable
getMax, getMin
 
Methods inherited from interface jopt.csp.variable.CspDoubleExpr
add, add, between, between, divide, divide, eq, eq, geq, geq, getPrecision, leq, leq, multiply, multiply, notBetween, notBetween, setPrecision, subtract, subtract
 
Methods inherited from interface jopt.csp.variable.CspNumExpr
between, between, between, between, eq, geq, getName, gt, isBound, leq, lt, neq, notBetween, notBetween, notBetween, notBetween, setName
 
Methods inherited from interface jopt.csp.variable.CspVariable
getName, isBound
 
Methods inherited from interface jopt.csp.spi.arcalgorithm.variable.Variable
updateGraph
 
Methods inherited from interface jopt.csp.spi.util.Storable
getName
 
Methods inherited from interface jopt.csp.spi.arcalgorithm.constraint.num.NumExpr
getBooleanSourceArcs, getName, getNodeCollection, isBound, updateGraph
 

Constructor Detail

DoubleVariable

public DoubleVariable(java.lang.String name,
                      BaseDoubleDomain domain)
Constructor


DoubleVariable

public DoubleVariable(java.lang.String name,
                      double min,
                      double max)
Constructor


DoubleVariable

public DoubleVariable(java.lang.String name,
                      DoubleVariable var)
Constructor


DoubleVariable

public DoubleVariable(java.lang.String name,
                      DoubleCast expr)
Constructor

Method Detail

getSize

public int getSize()
Returns the size of this variable's domain

Specified by:
getSize in interface jopt.csp.variable.CspVariable

isInDomain

public boolean isInDomain(double val)
Returns true if value is in this variable's domain

Specified by:
isInDomain in interface jopt.csp.variable.CspDoubleVariable

setMax

public void setMax(double val)
            throws jopt.csp.variable.PropagationFailureException
Attempts to reduce this variable's domain to be less than the specified maximum value.

Specified by:
setMax in interface jopt.csp.variable.CspDoubleVariable
Throws:
jopt.csp.variable.PropagationFailureException - If domain is empty

setMin

public void setMin(double val)
            throws jopt.csp.variable.PropagationFailureException
Attempts to reduce this variable's domain to be greater than the specified minimum value.

Specified by:
setMin in interface jopt.csp.variable.CspDoubleVariable
Throws:
jopt.csp.variable.PropagationFailureException - If domain is empty

setDomainMax

public void setDomainMax(java.lang.Number val)
                  throws jopt.csp.variable.PropagationFailureException
Attempts to reduce this variable's domain to be less than the specified maximum value.

Throws:
jopt.csp.variable.PropagationFailureException - If domain is empty

setDomainMin

public void setDomainMin(java.lang.Number val)
                  throws jopt.csp.variable.PropagationFailureException
Attempts to reduce this variable's domain to be less than the specified maximum value.

Throws:
jopt.csp.variable.PropagationFailureException - If domain is empty

setValue

public void setValue(double val)
              throws jopt.csp.variable.PropagationFailureException
Attempts to reduce this variable's domain to a single value.

Specified by:
setValue in interface jopt.csp.variable.CspDoubleVariable
Throws:
jopt.csp.variable.PropagationFailureException - If domain is empty

setDomainValue

public void setDomainValue(java.lang.Number val)
                    throws jopt.csp.variable.PropagationFailureException
Attempts to reduce this variable's domain to a single value.

Throws:
jopt.csp.variable.PropagationFailureException - If domain is empty

setDomainValues

public void setDomainValues(jopt.csp.util.NumSet s)
                     throws jopt.csp.variable.PropagationFailureException
Attempts to reduce this variable's domain by restricting it to a set of values

Throws:
jopt.csp.variable.PropagationFailureException - If domain is empty

removeValue

public void removeValue(double val)
                 throws jopt.csp.variable.PropagationFailureException
Attempts to remove a single value from this variable's domain

Specified by:
removeValue in interface jopt.csp.variable.CspDoubleVariable
Throws:
jopt.csp.variable.PropagationFailureException - If domain is empty

removeAll

public void removeAll(jopt.csp.util.DoubleSet vals)
               throws jopt.csp.variable.PropagationFailureException
Attempts to remove a set of values from this variable's domain

Specified by:
removeAll in interface jopt.csp.variable.CspDoubleVariable
Throws:
jopt.csp.variable.PropagationFailureException - If domain is empty

removeDomainValue

public void removeDomainValue(java.lang.Number val)
                       throws jopt.csp.variable.PropagationFailureException
Attempts to remove a single value from this variable's domain

Throws:
jopt.csp.variable.PropagationFailureException - If domain is empty

removeDomainValues

public void removeDomainValues(jopt.csp.util.NumSet vals)
                        throws jopt.csp.variable.PropagationFailureException
Attempts to reduce this variable's domain by removing a set of values

Throws:
jopt.csp.variable.PropagationFailureException - If domain is empty

setRange

public void setRange(double start,
                     double end)
              throws jopt.csp.variable.PropagationFailureException
Attempts to reduce this variable's domain to within a range of values

Specified by:
setRange in interface jopt.csp.variable.CspDoubleVariable
Throws:
jopt.csp.variable.PropagationFailureException - If domain is empty

removeRange

public void removeRange(double start,
                        double end)
                 throws jopt.csp.variable.PropagationFailureException
Attempts to reduce this variable's domain by removing a range of values

Specified by:
removeRange in interface jopt.csp.variable.CspDoubleVariable
Throws:
jopt.csp.variable.PropagationFailureException - If domain is empty

setDomainRange

public void setDomainRange(java.lang.Number start,
                           java.lang.Number end)
                    throws jopt.csp.variable.PropagationFailureException
Attempts to reduce this variable's domain to within a range of values

Throws:
jopt.csp.variable.PropagationFailureException - If domain is empty

removeDomainRange

public void removeDomainRange(java.lang.Number start,
                              java.lang.Number end)
                       throws jopt.csp.variable.PropagationFailureException
Attempts to reduce this variable's domain by removing a range of values

Throws:
jopt.csp.variable.PropagationFailureException - If domain is empty

getNextHigher

public double getNextHigher(double val)
Returns the next higher value in this variable's domain or current value if none exists

Specified by:
getNextHigher in interface jopt.csp.variable.CspDoubleVariable

getNextLower

public double getNextLower(double val)
Returns the next lower value in this variable's domain or current value if none exists

Specified by:
getNextLower in interface jopt.csp.variable.CspDoubleVariable

clearDelta

public void clearDelta()
Clears the delta set for this variable's domain


getState

public java.lang.Object getState()
Stores appropriate data for future restoration.

Specified by:
getState in interface Storable

restoreState

public void restoreState(java.lang.Object state)
Restores variable information from stored data.

Specified by:
restoreState in interface Storable

clone

public java.lang.Object clone()
Clones this variable