24constexpr absl::string_view kLimitsTime =
"limits/time";
25constexpr absl::string_view kParallelMaxNThreads =
"parallel/maxnthreads";
26constexpr absl::string_view kDisplayVerbLevel =
"display/verblevel";
27constexpr absl::string_view kRandomSeedParam =
"randomization/randomseedshift";
32 (*
parameters->mutable_real_params())[std::string(kLimitsTime)] =
35 parameters->mutable_real_params()->erase(std::string(kLimitsTime));
40 if (
parameters.real_params().contains(std::string(kLimitsTime))) {
41 const double scip_limit =
42 parameters.real_params().at(std::string(kLimitsTime));
43 if (scip_limit >= 1e20) {
44 return absl::InfiniteDuration();
45 }
else if (scip_limit <= 0.0) {
46 return absl::Duration();
48 return absl::Seconds(scip_limit);
51 return absl::InfiniteDuration();
55 return parameters.real_params().contains(std::string(kLimitsTime));
60 (*
parameters->mutable_int_params())[std::string(kParallelMaxNThreads)] =
65 if (
parameters.int_params().contains(std::string(kParallelMaxNThreads))) {
66 return parameters.int_params().at(std::string(kParallelMaxNThreads));
72 return parameters.int_params().contains(std::string(kParallelMaxNThreads));
78 (*
parameters->mutable_int_params())[std::string(kDisplayVerbLevel)] =
83 return parameters.int_params().contains(std::string(kDisplayVerbLevel))
84 ?
parameters.int_params().at(std::string(kDisplayVerbLevel))
88 return parameters.int_params().contains(std::string(kDisplayVerbLevel));
93 parameters->mutable_int_params()->erase(std::string(kDisplayVerbLevel));
95 (*
parameters->mutable_int_params())[std::string(kDisplayVerbLevel)] = 0;
99 return !
parameters.int_params().contains(std::string(kDisplayVerbLevel)) ||
100 (
parameters.int_params().at(std::string(kDisplayVerbLevel)) > 0);
108 random_seed =
std::max(0, random_seed);
109 (*
parameters->mutable_int_params())[std::string(kRandomSeedParam)] =
115 return parameters.int_params().at(std::string(kRandomSeedParam));
121 return parameters.int_params().contains(std::string(kRandomSeedParam));
#define CHECK_GE(val1, val2)
#define CHECK_LE(val1, val2)
SharedTimeLimit * time_limit
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
int GScipLogLevel(const GScipParameters ¶meters)
void GScipSetTimeLimit(absl::Duration time_limit, GScipParameters *parameters)
bool GScipLogLevelSet(const GScipParameters ¶meters)
int GScipMaxNumThreads(const GScipParameters ¶meters)
void GScipSetRandomSeed(GScipParameters *parameters, int random_seed)
bool GScipOutputEnabledSet(const GScipParameters ¶meters)
void GScipSetOutputEnabled(GScipParameters *parameters, bool output_enabled)
bool GScipMaxNumThreadsSet(const GScipParameters ¶meters)
bool GScipOutputEnabled(const GScipParameters ¶meters)
void GScipSetMaxNumThreads(int num_threads, GScipParameters *parameters)
int GScipRandomSeed(const GScipParameters ¶meters)
void GScipSetLogLevel(GScipParameters *parameters, int log_level)
bool GScipRandomSeedSet(const GScipParameters ¶meters)
bool GScipTimeLimitSet(const GScipParameters ¶meters)
absl::Duration GScipTimeLimit(const GScipParameters ¶meters)