Google OR-Tools: ortools/constraint_solver/routing_breaks.h Source File
49 absl::Span<const std::pair<int64_t, int64_t>> interbreaks);
55 static bool IncreaseMin(int64_t new_min, Interval* interval,
57 if (interval->min >= new_min) return true;
62 *propagation_result = kChanged;
65 static bool DecreaseMax(int64_t new_max, Interval* interval,
67 if (interval->max <= new_max) return true;
68 if (!interval->DecreaseMax(new_max)) {
72 *propagation_result = kChanged;
75 static bool IntersectWith(Interval source, Interval* target,
77 if (!source.IntersectWith(*target)) {
79 } else if (source != *target) {
80 *propagation_result = kChanged;
83 return *propagation_result != kInfeasible;
90 struct DelayedPropagation {
95 std::vector<DelayedPropagation> delayed_propagations_;
101 bool operator<(const UsageEvent& other) const { return time < other.time; }
103 std::vector<UsageEvent> usage_events_;
105 CommittableArray<int64_t> break_duration_on_transition_;