Interface HxIntArrayExternalFunction
-
public interface HxIntArrayExternalFunction
Integer array external function interface. To use integer array external functions with Hexaly Optimizer, you have to proceed in 3 steps:- Implement the HxIntArrayExternalFunction interface with the call method. The
call method must take a
HxExternalArgumentValues
and must return an integer array value. The argument values contain the values of the expressions passed to the function. A distinction is made between integer arguments (bool, int) and floating point arguments (double). - Instantiate the function as an HxExpression with
HxModel.createIntArrayExternalFunction(com.hexaly.optimizer.HxIntArrayExternalFunction)
or the dedicated shortcutHxModel.intArrayExternalFunction(com.hexaly.optimizer.HxIntArrayExternalFunction)
. - Pass arguments to your function and call it. For that, you have to create
expressions of type
HxOperator.Call
. The first operand must be your external function. The other operands must be HxExpressions. Their value will be made accessible to your external function through theHxExternalArgumentValues
.
Note 1: Most of the time your external function will be called when the optimizer is in state
HxState.Running
. Do not attempt to call any method of the optimizer (to retrieve statistics, values of HxExpressions or whatever) in that state or an exception will be thrown.Note 2: Your functions must be thread-safe. According to the "nbThreads" parameter, Hexaly Optimizer can be multi-threaded. In that case, your external functions must be thread safe. If you cannot guarantee the thread-safety of your code, we strongly recommend you to limit the search of Hexaly Optimizer to one thread with
HxParam.setNbThreads(int)
.Note 3: To optimize performance, you can return the same array object per thread from one call to another.
Note 4: You can provide additional data for your function (such as the maximum number of evaluations) with the help of the
HxExternalContext
associated with the function (seeHxExpression.getExternalContext()
).- Since:
- 11.0
- Implement the HxIntArrayExternalFunction interface with the call method. The
call method must take a
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description long[]
call(HxExternalArgumentValues argumentValues)
The function to call.
-
-
-
Method Detail
-
call
long[] call(HxExternalArgumentValues argumentValues)
The function to call. The argument values contain the arguments to pass to your function.- Parameters:
argumentValues
- Argument values containing the arguments of the function.- Returns:
- The value of the HxExpression.
-
-