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";
28constexpr absl::string_view kCatchCtrlCParam =
"misc/catchctrlc";
33 (*
parameters->mutable_real_params())[std::string(kLimitsTime)] =
36 parameters->mutable_real_params()->erase(std::string(kLimitsTime));
41 if (
parameters.real_params().contains(std::string(kLimitsTime))) {
42 const double scip_limit =
43 parameters.real_params().at(std::string(kLimitsTime));
44 if (scip_limit >= 1e20) {
45 return absl::InfiniteDuration();
46 }
else if (scip_limit <= 0.0) {
47 return absl::Duration();
49 return absl::Seconds(scip_limit);
52 return absl::InfiniteDuration();
56 return parameters.real_params().contains(std::string(kLimitsTime));
61 (*
parameters->mutable_int_params())[std::string(kParallelMaxNThreads)] =
66 if (
parameters.int_params().contains(std::string(kParallelMaxNThreads))) {
67 return parameters.int_params().at(std::string(kParallelMaxNThreads));
73 return parameters.int_params().contains(std::string(kParallelMaxNThreads));
79 (*
parameters->mutable_int_params())[std::string(kDisplayVerbLevel)] =
84 return parameters.int_params().contains(std::string(kDisplayVerbLevel))
85 ?
parameters.int_params().at(std::string(kDisplayVerbLevel))
89 return parameters.int_params().contains(std::string(kDisplayVerbLevel));
94 parameters->mutable_int_params()->erase(std::string(kDisplayVerbLevel));
96 (*
parameters->mutable_int_params())[std::string(kDisplayVerbLevel)] = 0;
100 return !
parameters.int_params().contains(std::string(kDisplayVerbLevel)) ||
101 (
parameters.int_params().at(std::string(kDisplayVerbLevel)) > 0);
109 random_seed =
std::max(0, random_seed);
110 (*
parameters->mutable_int_params())[std::string(kRandomSeedParam)] =
116 return parameters.int_params().at(std::string(kRandomSeedParam));
122 return parameters.int_params().contains(std::string(kRandomSeedParam));
127 (*
parameters->mutable_bool_params())[std::string(kCatchCtrlCParam)] =
133 return parameters.bool_params().at(std::string(kCatchCtrlCParam));
139 return parameters.bool_params().contains(std::string(kCatchCtrlCParam));
#define CHECK_GE(val1, val2)
#define CHECK_LE(val1, val2)
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)