Interface HxIntArrayExternalFunction
-
public interface HxIntArrayExternalFunctionInteger 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
HxExternalArgumentValuesand 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
HxExternalContextassociated 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.
-
-