|  | Google OR-Tools v9.14
    a fast and portable software suite for combinatorial optimization | 
Special constraint for no overlap between two intervals. We usually expand small no-overlap in n^2 such constraint, so we want to be compact and efficient here.
Definition at line 572 of file constraint_violation.h.
#include <constraint_violation.h>
 
  
| Classes | |
| struct | Interval | 
| Public Member Functions | |
| CompiledNoOverlapWithTwoIntervals (const ConstraintProto &x1, const ConstraintProto &x2) | |
| ~CompiledNoOverlapWithTwoIntervals () final=default | |
| int64_t | ComputeViolation (absl::Span< const int64_t > solution) final | 
| int64_t | ViolationDelta (int, int64_t, absl::Span< const int64_t > solution_with_new_value) final | 
| --— CompiledNoOverlapWithTwoIntervals --— | |
| std::vector< int > | UsedVariables (const CpModelProto &model_proto) const final | 
| Public Member Functions inherited from operations_research::sat::CompiledConstraint | |
| CompiledConstraint ()=default | |
| virtual | ~CompiledConstraint ()=default | 
| void | InitializeViolation (absl::Span< const int64_t > solution) | 
| Recomputes the violation of the constraint from scratch. | |
| virtual void | PerformMove (int var, int64_t old_value, absl::Span< const int64_t > solution_with_new_value) | 
| Updates the violation with the new value. | |
| int64_t | violation () const | 
| The cached violation of this constraint. | |
| Additional Inherited Members | |
| Protected Attributes inherited from operations_research::sat::CompiledConstraint | |
| int64_t | violation_ | 
| 
 | inline | 
Definition at line 581 of file constraint_violation.h.
| 
 | finaldefault | 
| 
 | inlinefinalvirtual | 
Computes the violation of a constraint.
This is called by InitializeViolation() and also the default implementation of ViolationDelta().
Optimization hack: If we create a ComputeViolationInternal() that we call from here and in ViolationDelta(), then the later is not inlined below in ViolationDelta() where it matter a lot for performance.
Implements operations_research::sat::CompiledConstraint.
Definition at line 596 of file constraint_violation.h.
| 
 | finalvirtual | 
Returns the sorted vector of variables used by this constraint. This is used to known when a violation might change, and is only called once during initialization, so speed is not to much of a concern here.
The global proto is needed to resolve interval variables reference.
Implements operations_research::sat::CompiledConstraint.
Definition at line 1113 of file constraint_violation.cc.
| 
 | finalvirtual | 
--— CompiledNoOverlapWithTwoIntervals --—
Reimplemented from operations_research::sat::CompiledConstraint.
Definition at line 1094 of file constraint_violation.cc.