27 constexpr absl::string_view kLimitsTime =
"limits/time";
28 constexpr absl::string_view kParallelMaxNThreads =
"parallel/maxnthreads";
29 constexpr absl::string_view kDisplayVerbLevel =
"display/verblevel";
30 constexpr absl::string_view kRandomSeedParam =
"randomization/randomseedshift";
31 constexpr absl::string_view kCatchCtrlCParam =
"misc/catchctrlc";
36 (*
parameters->mutable_real_params())[std::string(kLimitsTime)] =
39 parameters->mutable_real_params()->erase(std::string(kLimitsTime));
44 if (
parameters.real_params().contains(std::string(kLimitsTime))) {
45 const double scip_limit =
46 parameters.real_params().at(std::string(kLimitsTime));
47 if (scip_limit >= 1e20) {
48 return absl::InfiniteDuration();
49 }
else if (scip_limit <= 0.0) {
50 return absl::Duration();
52 return absl::Seconds(scip_limit);
55 return absl::InfiniteDuration();
59 return parameters.real_params().contains(std::string(kLimitsTime));
63 CHECK_GE(num_threads, 1);
64 (*
parameters->mutable_int_params())[std::string(kParallelMaxNThreads)] =
69 if (
parameters.int_params().contains(std::string(kParallelMaxNThreads))) {
70 return parameters.int_params().at(std::string(kParallelMaxNThreads));
76 return parameters.int_params().contains(std::string(kParallelMaxNThreads));
80 CHECK_GE(log_level, 0);
81 CHECK_LE(log_level, 5);
82 (*
parameters->mutable_int_params())[std::string(kDisplayVerbLevel)] =
87 return parameters.int_params().contains(std::string(kDisplayVerbLevel))
88 ?
parameters.int_params().at(std::string(kDisplayVerbLevel))
92 return parameters.int_params().contains(std::string(kDisplayVerbLevel));
97 parameters->mutable_int_params()->erase(std::string(kDisplayVerbLevel));
99 (*
parameters->mutable_int_params())[std::string(kDisplayVerbLevel)] = 0;
103 return !
parameters.int_params().contains(std::string(kDisplayVerbLevel)) ||
104 (
parameters.int_params().at(std::string(kDisplayVerbLevel)) > 0);
112 random_seed =
std::max(0, random_seed);
113 (*
parameters->mutable_int_params())[std::string(kRandomSeedParam)] =
119 return parameters.int_params().at(std::string(kRandomSeedParam));
125 return parameters.int_params().contains(std::string(kRandomSeedParam));
130 (*
parameters->mutable_bool_params())[std::string(kCatchCtrlCParam)] =
136 return parameters.bool_params().at(std::string(kCatchCtrlCParam));
142 return parameters.bool_params().contains(std::string(kCatchCtrlCParam));
ModelSharedTimeLimit * time_limit
Collection of objects used to extend the Constraint Solver library.
void GScipSetCatchCtrlC(const bool catch_ctrl_c, GScipParameters *const parameters)
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 GScipCatchCtrlC(const GScipParameters ¶meters)
bool GScipOutputEnabledSet(const GScipParameters ¶meters)
void GScipSetOutputEnabled(GScipParameters *parameters, bool output_enabled)
bool GScipCatchCtrlCSet(const GScipParameters ¶meters)
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)