[ library(ic) | Reference Manual | Alphabetic Index ]

# set_threshold(++Threshold, +WakeVars)

Sets the propagation threshold with recomputation.

Threshold
  New threshold (float)
WakeVars
  Collection (a la collection_to_list/2) of IC variables to "wake"

## Description

Set the threshold to Threshold, which is a small floating-point number, and then if the threshold has been reduced, wake all constraints suspended on the bounds of the variables in the collection WakeVars. Subsequent to the setting of the new threshold, bounds updates to non-integer variables are only performed if the change in the bounds exceeds this threshold (in both absolute and relative terms). The waking of the constraints when the threshold is reduced allows part or all of the system to be re-propagated in order to ensure the higher level of precision is achieved before the rest of the computation proceeds.

The default threshold is 1e-8.

Limiting the amount of propagation is important for efficiency. A higher threshold speeds up computations, but reduces precision and may in the extreme case prevent the system from being able to locate individual solutions.

### Modes and Determinism

- set_threshold(++, +) is semidet

## See Also

get_threshold / 1, set_threshold / 1, eclipse_6 : collection_to_list / 2, lists : collection_to_list / 2