Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
|
#include <integer_expr.h>
Public Member Functions | |
DivisionPropagator (AffineExpression num, AffineExpression denom, AffineExpression div, IntegerTrail *integer_trail) | |
DivisionPropagator (const DivisionPropagator &)=delete | |
This type is neither copyable nor movable. | |
DivisionPropagator & | operator= (const DivisionPropagator &)=delete |
bool | Propagate () final |
void | RegisterWith (GenericLiteralWatcher *watcher) |
Public Member Functions inherited from operations_research::sat::PropagatorInterface | |
PropagatorInterface ()=default | |
virtual | ~PropagatorInterface ()=default |
virtual bool | IncrementalPropagate (const std::vector< int > &) |
Propagates num / denom = div. Basic version, we don't extract any special cases, and we only propagates the bounds. It expects denom to be > 0.
Definition at line 320 of file integer_expr.h.
operations_research::sat::DivisionPropagator::DivisionPropagator | ( | AffineExpression | num, |
AffineExpression | denom, | ||
AffineExpression | div, | ||
IntegerTrail * | integer_trail ) |
Definition at line 1212 of file integer_expr.cc.
|
delete |
This type is neither copyable nor movable.
|
delete |
|
finalvirtual |
(user): We can propagate more, especially in the case where denom spans across 0.
(user): We can propagate a bit more if min_div = 0: (min_num > -min_denom).
Implements operations_research::sat::PropagatorInterface.
Definition at line 1228 of file integer_expr.cc.
void operations_research::sat::DivisionPropagator::RegisterWith | ( | GenericLiteralWatcher * | watcher | ) |
Definition at line 1415 of file integer_expr.cc.