16#include "absl/status/status.h"
17#include "absl/strings/str_cat.h"
18#include "ortools/math_opt/parameters.pb.h"
28 <<
"invalid SolveParameters.time_limit";
32 return absl::InvalidArgumentError(absl::StrCat(
33 "SolveParameters.threads = ",
parameters.threads(),
" <= 0"));
39 return absl::InvalidArgumentError(
40 absl::StrCat(
"SolveParameters.relative_gap_limit = ",
47 return absl::InvalidArgumentError(
48 absl::StrCat(
"SolveParameters.absolute_gap_limit = ",
55 <<
"SolveParameters.solution_limit = " <<
parameters.solution_limit()
56 <<
" should be positive.";
60 return absl::InvalidArgumentError(
"SolveParameters.cutoff_limit was NaN");
62 if (std::isnan(
parameters.objective_limit())) {
63 return absl::InvalidArgumentError(
64 "SolveParameters.objective_limit was NaN");
66 if (std::isnan(
parameters.best_bound_limit())) {
67 return absl::InvalidArgumentError(
68 "SolveParameters.best_bound_limit was NaN");
71 return absl::OkStatus();
absl::Status ValidateSolveParameters(const SolveParametersProto ¶meters)
Collection of objects used to extend the Constraint Solver library.
inline ::absl::StatusOr< absl::Duration > DecodeGoogleApiProto(const google::protobuf::Duration &proto)
StatusBuilder InvalidArgumentErrorBuilder()
#define RETURN_IF_ERROR(expr)