C++ Reference: class DualBoundStrengthening
Note: This documentation is automatically generated.
This detects variables that can move freely in one direction, or that can move freely as long as their value do not cross a bound.TODO(user): This is actually an important step to do before scaling as it can usually reduce really large bounds!
Method | |
---|---|
CanFreelyDecreaseUntil | Return type: Arguments: The given ref can always freely decrease until the returned value. Note that this does not take into account the domain of the variable. |
CannotDecrease | Return type: Arguments: All constraints should be mapped to one of more call to these functions. |
CannotIncrease | Return type: Arguments: |
CannotMove | Return type: Arguments: |
NumDeletedConstraints | Return type: Reset on each Strengthen() call. |
ProcessLinearConstraint | Return type: Arguments: |
Reset | Return type: Arguments: Reset the class to a clean state. This must be called before processing the constraints. |
Strengthen | Return type: Arguments: Once ALL constraints have been processed, call this to fix variables or reduce their domain if possible. Note that this also tighten some constraint that are the only one blocking in one direction. Currently we only do that for implication, so that if we have two Booleans such that a + b <= 1 we transform that to = 1 and we remove one variable since we have now an equivalence relation. |