# LSExternalContext Class¶

class localsolver.LSExternalContext

Context of an external function. External context can be used to query and set properties of the associated external function.

If you know the bounds of your external function or if you know it cannot return a NaN value, we recommend you to specify it as LocalSolver is then able to improve its search process. But beware! If the evaluation of the function returns an unexpected value (like a value outside of the bounds), an exception will be thrown during the search.

Since: 9.5 LSExpression.get_external_context()

## Summary¶

 lower_bound Lower bound of the external function. upper_bound Upper bound of the external function. nanable True if the function can return a NaN value, false otherwise.
 get_lower_bound Gets the lower bound of the exernal function. get_upper_bound Gets the upper bound of the external function. set_lower_bound Sets the lower bound of the external function. set_upper_bound Sets the upper bound of the external function. is_nanable Returns true if the function can return a NaN value. set_nanable Sets whether or not the function can return a NaN value.

## Instance methods¶

LSExternalContext.get_lower_bound()

Gets the lower bound of the exernal function. By default, this property is set to a large integer number or math.inf.

Returns: Lower bound of the external function. int or double
LSExternalContext.get_upper_bound()

Gets the upper bound of the external function. By default, this property is set to a large integer number or math.inf.

Returns: Upper bound of the external function.
LSExternalContext.set_lower_bound(lower_bound)

Sets the lower bound of the external function. Only allowed in state LSState.MODELING.

Parameters: lower_bound – Lower bound of the function.
LSExternalContext.set_upper_bound(upper_bound)

Sets the upper bound of the external function. Only allowed in state LSState.MODELING.

Parameters: upper_bound – Upper bound of the function.
LSExternalContext.is_nanable()

Returns true if the function can return a NaN value. Only allowed if the external function is a double function. By default, this property is set to true.

Returns: True if the function can return a NaN value.
LSExternalContext.set_nanable(nanable)

Sets whether or not the function can return a NaN value. Only allowed if the external function is a double function. Only allowed in state LSState.MODELING.

Parameters: nanable – True if the function can return a NaN value, false otherwise.

## Instance attributes¶

All get/set methods have their attribute counterpart. You can use them as shortcuts to improve the readability of your models and codes.

LSExternalContext.lower_bound

Lower bound of the external function. It is a shortcut for get_lower_bound() and set_lower_bound().

LSExternalContext.upper_bound

Upper bound of the external function. It is a shortcut for get_upper_bound() and set_upper_bound().

LSExternalContext.nanable

True if the function can return a NaN value, false otherwise. It is a shortcut for is_nanable() and set_nanable().