prepare c++ code for int64 = int64_t
This commit is contained in:
@@ -63,7 +63,7 @@ void Solve(const std::vector<int64>& durations,
|
||||
int64 next_cost;
|
||||
for (int j = 0; j < num_tasks; ++j) {
|
||||
if (is_taken[j]) continue;
|
||||
const int64 cost = weights[j] * std::max(0LL, end - due_dates[j]);
|
||||
const int64 cost = weights[j] * std::max<int64>(0, end - due_dates[j]);
|
||||
if (next_task == -1 || cost < next_cost) {
|
||||
next_task = j;
|
||||
next_cost = cost;
|
||||
@@ -97,7 +97,7 @@ void Solve(const std::vector<int64>& durations,
|
||||
tardiness_vars[i] = task_ends[i];
|
||||
} else {
|
||||
tardiness_vars[i] =
|
||||
cp_model.NewIntVar(Domain(0, std::max(0LL, horizon - due_dates[i])));
|
||||
cp_model.NewIntVar(Domain(0, std::max<int64>(0, horizon - due_dates[i])));
|
||||
|
||||
// tardiness_vars >= end - due_date
|
||||
cp_model.AddGreaterOrEqual(tardiness_vars[i],
|
||||
|
||||
@@ -62,8 +62,8 @@ class Diffn : public Constraint {
|
||||
delayed_demon_ = MakeDelayedConstraintDemon0(s, this, &Diffn::PropagateAll,
|
||||
"PropagateAll");
|
||||
if (solver()->parameters().diffn_use_cumulative() &&
|
||||
IsArrayInRange(x_, 0LL, kint64max) &&
|
||||
IsArrayInRange(y_, 0LL, kint64max)) {
|
||||
IsArrayInRange<int64>(x_, 0, kint64max) &&
|
||||
IsArrayInRange<int64>(y_, 0, kint64max)) {
|
||||
Constraint* ct1 = nullptr;
|
||||
Constraint* ct2 = nullptr;
|
||||
{
|
||||
|
||||
@@ -336,9 +336,9 @@ class IntExprElement : public BaseIntExprElement {
|
||||
DCHECK_LT(index, values_.size());
|
||||
return values_[index];
|
||||
}
|
||||
int64 ExprMin() const override { return std::max(int64{0}, expr_->Min()); }
|
||||
int64 ExprMin() const override { return std::max<int64>(0, expr_->Min()); }
|
||||
int64 ExprMax() const override {
|
||||
return std::min(static_cast<int64>(values_.size()) - 1, expr_->Max());
|
||||
return std::min<int64>(values_.size() - 1, expr_->Max());
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -381,10 +381,9 @@ class RangeMinimumQueryExprElement : public BaseIntExpr {
|
||||
}
|
||||
|
||||
private:
|
||||
int64 IndexMin() const { return std::max(int64{0}, index_->Min()); }
|
||||
int64 IndexMin() const { return std::max<int64>(0, index_->Min()); }
|
||||
int64 IndexMax() const {
|
||||
return std::min(static_cast<int64>(min_rmq_.array().size()) - 1,
|
||||
index_->Max());
|
||||
return std::min<int64>(min_rmq_.array().size() - 1, index_->Max());
|
||||
}
|
||||
|
||||
IntVar* const index_;
|
||||
@@ -504,15 +503,14 @@ IncreasingIntExprElement::IncreasingIntExprElement(
|
||||
}
|
||||
|
||||
int64 IncreasingIntExprElement::Min() const {
|
||||
const int64 expression_min = std::max(int64{0}, index_->Min());
|
||||
const int64 expression_min = std::max<int64>(0, index_->Min());
|
||||
return (expression_min < values_.size() ? values_[expression_min]
|
||||
: kint64max);
|
||||
}
|
||||
|
||||
void IncreasingIntExprElement::SetMin(int64 m) {
|
||||
const int64 index_min = std::max(int64{0}, index_->Min());
|
||||
const int64 index_max =
|
||||
std::min(static_cast<int64>(values_.size()) - 1LL, index_->Max());
|
||||
const int64 index_min = std::max<int64>(0, index_->Min());
|
||||
const int64 index_max = std::min<int64>(values_.size() - 1, index_->Max());
|
||||
|
||||
if (index_min > index_max || m > values_[index_max]) {
|
||||
solver()->Fail();
|
||||
@@ -526,12 +524,12 @@ void IncreasingIntExprElement::SetMin(int64 m) {
|
||||
|
||||
int64 IncreasingIntExprElement::Max() const {
|
||||
const int64 expression_max =
|
||||
std::min(static_cast<int64>(values_.size()) - 1LL, index_->Max());
|
||||
std::min<int64>(values_.size() - 1, index_->Max());
|
||||
return (expression_max >= 0 ? values_[expression_max] : kint64max);
|
||||
}
|
||||
|
||||
void IncreasingIntExprElement::SetMax(int64 m) {
|
||||
int64 index_min = std::max(int64{0}, index_->Min());
|
||||
int64 index_min = std::max<int64>(0, index_->Min());
|
||||
if (m < values_[index_min]) {
|
||||
solver()->Fail();
|
||||
}
|
||||
@@ -546,9 +544,8 @@ void IncreasingIntExprElement::SetRange(int64 mi, int64 ma) {
|
||||
if (mi > ma) {
|
||||
solver()->Fail();
|
||||
}
|
||||
const int64 index_min = std::max(int64{0}, index_->Min());
|
||||
const int64 index_max =
|
||||
std::min(static_cast<int64>(values_.size()) - 1LL, index_->Max());
|
||||
const int64 index_min = std::max<int64>(0, index_->Min());
|
||||
const int64 index_max = std::min<int64>(values_.size() - 1, index_->Max());
|
||||
|
||||
if (mi > ma || ma < values_[index_min] || mi > values_[index_max]) {
|
||||
solver()->Fail();
|
||||
@@ -581,14 +578,14 @@ IntExpr* BuildElement(Solver* const solver, const std::vector<int64>& values,
|
||||
std::vector<int64> ones;
|
||||
int first_zero = -1;
|
||||
for (int i = 0; i < values.size(); ++i) {
|
||||
if (values[i] == 1LL) {
|
||||
if (values[i] == 1) {
|
||||
ones.push_back(i);
|
||||
} else {
|
||||
first_zero = i;
|
||||
}
|
||||
}
|
||||
if (ones.size() == 1) {
|
||||
DCHECK_EQ(1LL, values[ones.back()]);
|
||||
DCHECK_EQ(GG_LONGLONG(1), values[ones.back()]);
|
||||
solver->AddConstraint(solver->MakeBetweenCt(index, 0, values.size() - 1));
|
||||
return solver->MakeIsEqualCstVar(index, ones.back());
|
||||
} else if (ones.size() == values.size() - 1) {
|
||||
@@ -1251,7 +1248,7 @@ void IntExprEvaluatorElementCt::InitialPropagate() { Propagate(); }
|
||||
|
||||
void IntExprEvaluatorElementCt::Propagate() {
|
||||
const int64 emin = std::max(range_start_, index_->Min());
|
||||
const int64 emax = std::min(range_end_ - 1LL, index_->Max());
|
||||
const int64 emax = std::min<int64>(range_end_ - 1, index_->Max());
|
||||
const int64 vmin = target_var_->Min();
|
||||
const int64 vmax = target_var_->Max();
|
||||
if (emin == emax) {
|
||||
|
||||
@@ -595,7 +595,7 @@ Constraint* Solver::MakeIsDifferentCstCt(IntExpr* const var, int64 value,
|
||||
return MakeIsLessOrEqualCstCt(var, value - 1, boolvar);
|
||||
}
|
||||
if (var->IsVar() && !var->Var()->Contains(value)) {
|
||||
return MakeEquality(boolvar, 1LL);
|
||||
return MakeEquality(boolvar, GG_LONGLONG(1));
|
||||
}
|
||||
if (var->Bound() && var->Min() == value) {
|
||||
return MakeEquality(boolvar, Zero());
|
||||
|
||||
@@ -4754,11 +4754,11 @@ void RoutingDimension::InitializeCumuls() {
|
||||
const int64 min_capacity = *capacity_range.first;
|
||||
CHECK_GE(min_capacity, 0);
|
||||
const int64 max_capacity = *capacity_range.second;
|
||||
solver->MakeIntVarArray(size, 0LL, max_capacity, name_, &cumuls_);
|
||||
solver->MakeIntVarArray(size, 0, max_capacity, name_, &cumuls_);
|
||||
forbidden_intervals_.resize(size);
|
||||
capacity_vars_.clear();
|
||||
if (min_capacity != max_capacity) {
|
||||
solver->MakeIntVarArray(size, 0LL, kint64max, &capacity_vars_);
|
||||
solver->MakeIntVarArray(size, 0, kint64max, &capacity_vars_);
|
||||
for (int i = 0; i < size; ++i) {
|
||||
IntVar* const capacity_var = capacity_vars_[i];
|
||||
if (i < model_->Size()) {
|
||||
@@ -5068,13 +5068,12 @@ void GlobalVehicleBreaksConstraint::PropagateVehicle(int vehicle) {
|
||||
tasks_.forbidden_intervals.clear();
|
||||
task_translators_.clear();
|
||||
// Translate route to tasks: visits are nonpreemptible, transits are.
|
||||
int64 group_delay = 0LL;
|
||||
int64 group_delay = 0;
|
||||
current = model_->Start(vehicle);
|
||||
while (true) {
|
||||
// Tasks from visits.
|
||||
const bool node_is_last = current == model_->End(vehicle);
|
||||
const int64 visit_duration =
|
||||
node_is_last ? 0LL : node_visit_transit[current];
|
||||
const int64 visit_duration = node_is_last ? 0 : node_visit_transit[current];
|
||||
tasks_.start_min.push_back(
|
||||
CapSub(dimension_->CumulVar(current)->Min(), group_delay));
|
||||
tasks_.duration_min.push_back(CapAdd(group_delay, visit_duration));
|
||||
@@ -5092,12 +5091,12 @@ void GlobalVehicleBreaksConstraint::PropagateVehicle(int vehicle) {
|
||||
tasks_.start_min.push_back(
|
||||
CapAdd(CapAdd(tasks_.start_min.back(), group_delay), visit_duration));
|
||||
group_delay =
|
||||
next_is_bound ? dimension_->GetGroupDelay(vehicle, current, next) : 0LL;
|
||||
next_is_bound ? dimension_->GetGroupDelay(vehicle, current, next) : 0;
|
||||
DCHECK_GE(group_delay, 0);
|
||||
tasks_.duration_min.push_back(
|
||||
std::max(0LL, CapSub(CapSub(dimension_->FixedTransitVar(current)->Min(),
|
||||
visit_duration),
|
||||
group_delay)));
|
||||
tasks_.duration_min.push_back(std::max<int64>(
|
||||
0, CapSub(CapSub(dimension_->FixedTransitVar(current)->Min(),
|
||||
visit_duration),
|
||||
group_delay)));
|
||||
DCHECK_GE(tasks_.duration_min.back(), 0);
|
||||
tasks_.end_max.push_back(
|
||||
CapSub(dimension_->CumulVar(next)->Max(), group_delay));
|
||||
@@ -5360,7 +5359,7 @@ void RoutingDimension::CloseModel(bool use_light_propagation) {
|
||||
IntVar* const fixed_transit = fixed_transits_[i];
|
||||
const auto transit_vehicle_evaluator = [this, i](int64 to,
|
||||
int64 eval_index) {
|
||||
return eval_index >= 0 ? transit_evaluator(eval_index)(i, to) : 0LL;
|
||||
return eval_index >= 0 ? transit_evaluator(eval_index)(i, to) : 0;
|
||||
};
|
||||
if (use_light_propagation) {
|
||||
if (class_evaluators_.size() == 1) {
|
||||
@@ -5671,7 +5670,7 @@ void RoutingDimension::SetBreakIntervalsOfVehicle(
|
||||
std::vector<int64> node_visit_transits) {
|
||||
SetBreakIntervalsOfVehicle(std::move(breaks), vehicle,
|
||||
std::move(node_visit_transits),
|
||||
[](int64, int64) { return 0LL; });
|
||||
[](int64, int64) { return 0; });
|
||||
}
|
||||
|
||||
void RoutingDimension::SetBreakIntervalsOfVehicle(
|
||||
@@ -5688,7 +5687,7 @@ void RoutingDimension::SetBreakIntervalsOfVehicle(
|
||||
vehicle_node_visit_transits_.resize(model_->vehicles());
|
||||
vehicle_break_intervals_.resize(model_->vehicles());
|
||||
vehicle_group_delays_.resize(model_->vehicles(),
|
||||
[](int64, int64) { return 0LL; });
|
||||
[](int64, int64) { return 0; });
|
||||
}
|
||||
DCHECK_EQ(0, vehicle_node_visit_transits_[vehicle].size());
|
||||
vehicle_node_visit_transits_[vehicle] = std::move(node_visit_transits);
|
||||
@@ -5813,8 +5812,8 @@ void RoutingDimension::SetupSlackAndDependentTransitCosts(
|
||||
solver
|
||||
->MakeElement(
|
||||
[this](int index) {
|
||||
return IthElementOrValue<0LL>(
|
||||
vehicle_span_cost_coefficients_, index);
|
||||
return IthElementOrValue<0>(vehicle_span_cost_coefficients_,
|
||||
index);
|
||||
},
|
||||
model_->VehicleVar(var_index))
|
||||
->Var();
|
||||
|
||||
@@ -63,7 +63,7 @@ SearchLog::SearchLog(Solver* const s, OptimizeVar* const obj, IntVar* const var,
|
||||
scaling_factor_(scaling_factor),
|
||||
display_callback_(std::move(display_callback)),
|
||||
nsol_(0),
|
||||
tick_(0LL),
|
||||
tick_(0),
|
||||
objective_min_(kint64max),
|
||||
objective_max_(kint64min),
|
||||
min_right_depth_(kint32max),
|
||||
@@ -231,7 +231,7 @@ void SearchLog::Maintain() {
|
||||
void SearchLog::BeginInitialPropagation() { tick_ = timer_->GetInMs(); }
|
||||
|
||||
void SearchLog::EndInitialPropagation() {
|
||||
const int64 delta = std::max(timer_->GetInMs() - tick_, int64{0});
|
||||
const int64 delta = std::max<int64>(timer_->GetInMs() - tick_, 0);
|
||||
const std::string buffer = absl::StrFormat(
|
||||
"Root node processed (time = %d ms, constraints = %d, %s)", delta,
|
||||
solver()->constraints(), MemoryUsage());
|
||||
@@ -1177,7 +1177,7 @@ int64 SelectRandomValue(const IntVar* v, int64 id) {
|
||||
CHECK_LE(index, 0);
|
||||
}
|
||||
}
|
||||
return 0LL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ----- Select center -----
|
||||
@@ -1202,7 +1202,7 @@ int64 SelectCenterValue(const IntVar* v, int64 id) {
|
||||
return mid + i;
|
||||
}
|
||||
}
|
||||
return 0LL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ----- Select center -----
|
||||
@@ -1489,7 +1489,7 @@ int64 StaticEvaluatorSelector::ChooseVariable() {
|
||||
}
|
||||
// Sort is stable here given the tie-breaking rules in comp_.
|
||||
std::sort(elements_.begin(), elements_.end(), comp_);
|
||||
solver_->SaveAndSetValue(&first_, 0LL);
|
||||
solver_->SaveAndSetValue(&first_, GG_LONGLONG(0));
|
||||
}
|
||||
for (int64 i = first_; i < elements_.size(); ++i) {
|
||||
const Element& element = elements_[i];
|
||||
@@ -2989,7 +2989,8 @@ void TabuSearch::ApplyDecision(Decision* const d) {
|
||||
IntVar* const tabu = s->MakeBoolVar();
|
||||
s->AddConstraint(s->MakeIsGreaterOrEqualCstCt(
|
||||
s->MakeSum(tabu_vars)->Var(), tabu_vars.size() * tabu_factor_, tabu));
|
||||
s->AddConstraint(s->MakeGreaterOrEqual(s->MakeSum(aspiration, tabu), 1LL));
|
||||
s->AddConstraint(
|
||||
s->MakeGreaterOrEqual(s->MakeSum(aspiration, tabu), GG_LONGLONG(1)));
|
||||
}
|
||||
|
||||
// Go downhill to the next local optimum
|
||||
@@ -3282,7 +3283,7 @@ void GuidedLocalSearchPenaltiesTable::Increment(const Arc& arc) {
|
||||
std::vector<int64>& first_penalties = penalties_[arc.first];
|
||||
const int64 second = arc.second;
|
||||
if (second >= first_penalties.size()) {
|
||||
first_penalties.resize(second + 1, 0LL);
|
||||
first_penalties.resize(second + 1, 0);
|
||||
}
|
||||
++first_penalties[second];
|
||||
has_values_ = true;
|
||||
@@ -3299,7 +3300,7 @@ int64 GuidedLocalSearchPenaltiesTable::Value(const Arc& arc) const {
|
||||
const std::vector<int64>& first_penalties = penalties_[arc.first];
|
||||
const int64 second = arc.second;
|
||||
if (second >= first_penalties.size()) {
|
||||
return 0LL;
|
||||
return 0;
|
||||
} else {
|
||||
return first_penalties[second];
|
||||
}
|
||||
@@ -3335,9 +3336,9 @@ void GuidedLocalSearchPenaltiesMap::Reset() {
|
||||
|
||||
int64 GuidedLocalSearchPenaltiesMap::Value(const Arc& arc) const {
|
||||
if (penalized_.Get(arc.first)) {
|
||||
return gtl::FindWithDefault(penalties_, arc, 0LL);
|
||||
return gtl::FindWithDefault(penalties_, arc, 0);
|
||||
}
|
||||
return 0LL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
class GuidedLocalSearch : public Metaheuristic {
|
||||
|
||||
@@ -2152,7 +2152,7 @@ void ExtractIntLinLeReif(fz::SolverData* data, fz::Constraint* ct) {
|
||||
// Special case. this is or(vars) = not(boolvar).
|
||||
PostIsBooleanSumInRange(data->Sat(), solver, vars, 0, 0, boolvar);
|
||||
} else if (rhs < 0 && AreAllPositive(coeffs) &&
|
||||
IsArrayInRange(vars, 0LL, kint64max)) {
|
||||
IsArrayInRange<int64>(vars, 0, kint64max)) {
|
||||
// Trivial failure.
|
||||
boolvar->SetValue(0);
|
||||
FZVLOG << " - set target to 0" << FZENDL;
|
||||
|
||||
Reference in New Issue
Block a user