Package com.hexaly.optimizer
Class HxExpression
java.lang.Object
com.hexaly.optimizer.HxExpression
Mathematical modeling expression. Expressions are used to build the
mathematical optimization model associated to Hexaly Optimizer. An expression is
composed of an operator (which corresponds to its type) and its operands
(which are other expressions of the model).
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoidaddOperand(double constant) Adds the given constant operand to this expression.voidaddOperand(long constant) Adds the given constant operand to this expression.voidaddOperand(HxExpression expr) Adds the given operand to this expression.voidaddOperands(double... operands) Adds the given constant double operands to this expression.voidaddOperands(long... operands) Adds the given constant integer operands to this expression.voidaddOperands(HxExpression... operands) Adds the given operands to this expression.voidaddOperands(Iterable<HxExpression> operands) Adds the given operands to this expression.booleanGets the value of this expression in the best solution found by the optimizer.Gets the value of this expression in the best solution found by the optimizer.doubleGets the value of this expression in the best solution found by the optimizer.Gets the native function context of this expression.intgetIndex()Gets the index of this expression in the model.Gets the value of this expression in the best solution found by the optimizer.longGets the value of this expression in the best solution found by the optimizer.getModel()getName()Gets the name of this expression or the empty String if no name has been set.intGets the number of operands of this expression.getOperand(int operandIndex) Gets the operand with the given index.Gets the operator of this expression.longgetValue()Gets the value of this expression in the best solution found by the optimizer.inthashCode()booleanisArray()Returns true if this expression is an array, false otherwise.booleanisBool()Returns true if this expression is a boolean (ie 0 or 1), false otherwise.booleanReturns true if this expression is a collection (list or set), false otherwise.booleanReturns true if this expression is typed as constant in the model, false otherwise.booleanReturns true if this expression is tagged as constraint in the model, false otherwise.booleanReturns true if this expression is typed as decision in the model, false otherwise.booleanisDouble()Returns true if this expression is a double, false otherwise.booleanReturns true if this expression is a function, false otherwise.booleanisInt()Returns true if this expression is an integer, false otherwise.booleanReturns true if this expression is an interval, false otherwise.booleanisNamed()Returns true if this expression has a name, and false otherwise.booleanReturns true if this expression is tagged as objective in the model, false otherwise.booleanReturns true if the given expression has an undefined value in the best solution found by the optimizer.booleanReturns true if the given expression is violated in the best solution found by the optimizer.voidsetDoubleValue(double value) Sets the value of this expression in the current solution found by the optimizer.voidsetIntervalValue(HxInterval value) Sets the value of this expression in the current solution found by the optimizer.voidsetIntValue(long value) Sets the value of this expression in the current solution found by the optimizer.voidSets the name of this expression.voidsetOperand(int operandIndex, double constant) Replaces the operand of the given index.voidsetOperand(int operandIndex, long constant) Replaces the operand of the given index.voidsetOperand(int operandIndex, HxExpression operand) Replaces the operand of the given index.voidsetValue(double value) Sets the value of this expression in the current solution found by the optimizer.voidsetValue(long value) Sets the value of this expression in the current solution found by the optimizer.voidsetValue(HxInterval value) Sets the value of this expression in the current solution found by the optimizer.toString()
-
Method Details
-
getModel
-
getOptimizer
-
getOperator
Gets the operator of this expression.- Returns:
- Operator.
-
getIndex
public int getIndex()Gets the index of this expression in the model.- Returns:
- Index in the model.
-
isConstant
public boolean isConstant()Returns true if this expression is typed as constant in the model, false otherwise.- Returns:
- True if typed as constant.
-
isDecision
public boolean isDecision()Returns true if this expression is typed as decision in the model, false otherwise.- Returns:
- True if typed as decision.
-
isConstraint
public boolean isConstraint()Returns true if this expression is tagged as constraint in the model, false otherwise.- Returns:
- True if tagged as constraint.
-
isObjective
public boolean isObjective()Returns true if this expression is tagged as objective in the model, false otherwise.- Returns:
- True if tagged as objective.
-
isDouble
public boolean isDouble()Returns true if this expression is a double, false otherwise. Only allowed in statesHxState.PausedorHxState.Stopped.- Returns:
- True if the expression is a double.
- Since:
- 3.0
-
isInt
public boolean isInt()Returns true if this expression is an integer, false otherwise. Only allowed in statesHxState.PausedorHxState.Stopped. Note that a boolean is also an integer.- Returns:
- True if the expression is an integer.
- Since:
- 3.0
-
isBool
public boolean isBool()Returns true if this expression is a boolean (ie 0 or 1), false otherwise. Only allowed in statesHxState.PausedorHxState.Stopped.- Returns:
- True if the expression is a boolean.
- Since:
- 3.0
-
isInterval
public boolean isInterval()Returns true if this expression is an interval, false otherwise. Only allowed in statesHxState.PausedorHxState.Stopped.- Returns:
- True if the expression is an interval.
- Since:
- 12.0
-
isArray
public boolean isArray()Returns true if this expression is an array, false otherwise. Only allowed in statesHxState.PausedorHxState.Stopped.- Returns:
- True if the expression is an array.
- Since:
- 3.1
-
isCollection
public boolean isCollection()Returns true if this expression is a collection (list or set), false otherwise. Only allowed in statesHxState.PausedorHxState.Stopped.- Returns:
- True if the expression is a collection.
- Since:
- 5.5
-
isFunction
public boolean isFunction()Returns true if this expression is a function, false otherwise. Only allowed in statesHxState.PausedorHxState.Stopped.- Returns:
- True if the expression is a function.
- Since:
- 6.0
-
addOperand
Adds the given operand to this expression. Only allowed in stateHxState.Modeling.- Parameters:
expr- Operand to add.
-
addOperand
public void addOperand(long constant) Adds the given constant operand to this expression. Only allowed in stateHxState.Modeling.- Parameters:
constant- Constant operand to add.
-
addOperand
public void addOperand(double constant) Adds the given constant operand to this expression. Only allowed in stateHxState.Modeling.- Parameters:
constant- Constant operand to add.
-
addOperands
Adds the given operands to this expression. Only allowed in stateHxState.Modeling.- Parameters:
operands- The iterable collection of operands to be added.- Since:
- 5.5
-
addOperands
public void addOperands(long... operands) Adds the given constant integer operands to this expression. Only allowed in stateHxState.Modeling.- Parameters:
operands- The constant integer operands to be added.- Since:
- 5.5
-
addOperands
public void addOperands(double... operands) Adds the given constant double operands to this expression. Only allowed in stateHxState.Modeling.- Parameters:
operands- The constant double operands to be added.- Since:
- 5.5
-
addOperands
Adds the given operands to this expression. Only allowed in stateHxState.Modeling.- Parameters:
operands- The operands to be added.- Since:
- 5.5
-
getOperand
Gets the operand with the given index.- Parameters:
operandIndex- Index of the operand.- Returns:
- Operand.
-
setOperand
Replaces the operand of the given index.- Parameters:
operandIndex- Index of the operand to changeoperand- New operand
-
setOperand
public void setOperand(int operandIndex, long constant) Replaces the operand of the given index.- Parameters:
operandIndex- Index of the operand to change.constant- New constant operand.
-
setOperand
public void setOperand(int operandIndex, double constant) Replaces the operand of the given index.- Parameters:
operandIndex- Index of the operand to change.constant- New constant operand.- Since:
- 3.0
-
getNbOperands
public int getNbOperands()Gets the number of operands of this expression.- Returns:
- Number of operands.
-
setValue
public void setValue(long value) Sets the value of this expression in the current solution found by the optimizer. Only allowed for decisions. Only allowed in stateHxState.Stopped. Only allowed if this expression is an integer or a boolean. If the optimizer was not launched, this value will be used as an initial value for the decision. This method is a shortcut forHxSolution.setValue(HxExpression, long)and has the same behavior assetIntValue(long).- Parameters:
value- Value assigned to this expression.- See Also:
-
setValue
public void setValue(double value) Sets the value of this expression in the current solution found by the optimizer. Only allowed for decisions. Only allowed in state HxState#Stopped. Only allowed if this expression is an integer or a boolean. If the optimizer was not launched, this value will be used as an initial value for the decision. This method is a shortcut forHxSolution.setValue(HxExpression, double)and has the same behavior assetDoubleValue(double).- Parameters:
value- Value assigned to this expression.- See Also:
-
setValue
Sets the value of this expression in the current solution found by the optimizer. Only allowed for decisions. Only allowed in stateHxState.Stopped. Only allowed if this expression is an interval. If the optimizer was not launched, this value will be used as an initial value for the decision. This method is a shortcut forHxSolution.setValue(HxExpression, HxInterval)and has the same behavior assetIntervalValue(HxInterval).- Parameters:
value- Value assigned to this expression.- See Also:
-
setIntValue
public void setIntValue(long value) Sets the value of this expression in the current solution found by the optimizer. Only allowed for decisions. Only allowed in stateHxState.Stopped. Only allowed if this expression is an integer or a boolean. If the optimizer was not launched, this value will be used as an initial value for the decision. This method is a shortcut forHxSolution.setValue(HxExpression, long).- Parameters:
value- Value assigned to this expression.- Since:
- 3.0
- See Also:
-
setDoubleValue
public void setDoubleValue(double value) Sets the value of this expression in the current solution found by the optimizer. Only allowed for decisions. Only allowed in stateHxState.Stopped. Only allowed if this expression is a double. If the optimizer was not launched, this value will be used as an initial value for the decision. This method is a shortcut forHxSolution.setValue(HxExpression, double).- Parameters:
value- Value assigned to this expression.- Since:
- 3.0
- See Also:
-
setIntervalValue
Sets the value of this expression in the current solution found by the optimizer. Only allowed for decisions. Only allowed in stateHxState.Stopped. Only allowed if this expression is an interval. If the optimizer was not launched, this value will be used as an initial value for the decision. This method is a shortcut forHxSolution.setValue(HxExpression, HxInterval).- Parameters:
value- Value assigned to this expression.- Since:
- 3.0
- See Also:
-
getValue
public long getValue()Gets the value of this expression in the best solution found by the optimizer. Only allowed in statesHxState.PausedorHxState.Stopped. Only allowed if this expression is an integer or a boolean. This method is a shortcut forHxSolution.getValue(HxExpression).- Returns:
- Value in the best solution.
- See Also:
-
getIntValue
public long getIntValue()Gets the value of this expression in the best solution found by the optimizer. Only allowed in statesHxState.PausedorHxState.Stopped. Only allowed if this expression is an integer or a boolean. This method is a shortcut forHxSolution.getIntValue(HxExpression).- Returns:
- Value in the best solution.
- Since:
- 3.0
- See Also:
-
getDoubleValue
public double getDoubleValue()Gets the value of this expression in the best solution found by the optimizer. Only allowed in statesHxState.PausedorHxState.Stopped. Only allowed if this expression is a double. This method is a shortcut forHxSolution.getDoubleValue(HxExpression).- Returns:
- Value in the best solution.
- Since:
- 3.0
- See Also:
-
getIntervalValue
Gets the value of this expression in the best solution found by the optimizer. Only allowed in statesHxState.PausedorHxState.Stopped. Only allowed if this expression is an interval. This method is a shortcut forHxSolution.getIntervalValue(HxExpression).- Returns:
- Value in the best solution.
- Since:
- 12.0
- See Also:
-
getCollectionValue
Gets the value of this expression in the best solution found by the optimizer. Only allowed in statesHxState.PausedorHxState.Stopped. Only allowed if this expression is a collection (list or set). This method is a shortcut forHxSolution.getCollectionValue(HxExpression).- Returns:
- Value in the best solution.
- Since:
- 5.5
- See Also:
-
getArrayValue
Gets the value of this expression in the best solution found by the optimizer. Only allowed in statesHxState.PausedorHxState.Stopped. Only allowed if this expression is an array. This method is a shortcut forHxSolution.getArrayValue(HxExpression).- Returns:
- Value in the best solution.
- Since:
- 7.5
- See Also:
-
getExternalContext
Gets the native function context of this expression. Only allowed if this expression is a native function.- Returns:
- Context of the native function.
- Since:
- 9.5
- See Also:
-
isViolated
public boolean isViolated()Returns true if the given expression is violated in the best solution found by the optimizer. An expression can be violated in 3 cases:- It is a constraint and its value is 0.
- It is a double and its value is NaN (Not A Number).
- It is an integer or boolean with no valid value (arithmetic or out of bounds exception).
HxState.PausedorHxState.Stopped. This method is a shortcut forHxSolution.isViolated(HxExpression).- Returns:
- True if this expression is violated in the best solution.
- Since:
- 5.5
-
isUndefined
public boolean isUndefined()Returns true if the given expression has an undefined value in the best solution found by the optimizer. found by the optimizer. An expression can be undefined in 4 cases:- It is a double and its value is NaN (Not a Number).
- It is an integer or boolean with no valid value (arithmetic or out of bounds exception).
- It is an interval with at least one undefined bound.
- It is the result of any ill-defined operation (at with out of bounds index or operations on undefined values for instance).
HxState.PausedorHxState.Stopped. This method is a shortcut forHxSolution.isUndefined(HxExpression).- Returns:
- True if this expression has an undefined value in the best solution.
- Since:
- 7.0
-
setName
Sets the name of this expression. Only allowed in stateHxState.Modeling. The name cannot be empty. Two operators of the model cannot share the same name. Useful for debugging or logging purposes.- Parameters:
name- Name.
-
isNamed
public boolean isNamed()Returns true if this expression has a name, and false otherwise.- Returns:
- True if named.
-
getName
Gets the name of this expression or the empty String if no name has been set.- Returns:
- Name.
-
toString
-
hashCode
public int hashCode() -
equals
-