From f087564d849dedcf135532f60f5ef4bd40a3ec6c Mon Sep 17 00:00:00 2001 From: Mizux Seiha Date: Wed, 23 Sep 2020 11:48:40 +0200 Subject: [PATCH] cpp: Format all files in ortools --- .../samples/simple_knapsack_program.cc | 1 + ortools/base/dynamic_library.h | 7 +- .../constraint_solver/constraint_solveri.h | 3 +- .../constraint_solver/python/pywrapcp_util.h | 1 - ortools/constraint_solver/routing.cc | 5 +- ortools/constraint_solver/routing_search.cc | 14 +- .../samples/simple_ls_program.cc | 11 +- .../samples/vrp_with_time_limit.cc | 16 +- ortools/glop/revised_simplex.cc | 13 +- ortools/graph/astar.cc | 5 +- ortools/graph/christofides.h | 6 +- ortools/graph/io.h | 3 +- ortools/linear_solver/clp_interface.cc | 2 +- ortools/linear_solver/cplex_interface.cc | 16 +- ortools/linear_solver/gurobi_environment.cc | 4 +- ortools/linear_solver/gurobi_environment.h | 1018 +++++++++-------- ortools/linear_solver/gurobi_proto_solver.cc | 1 - ortools/linear_solver/linear_solver.cc | 8 +- ortools/linear_solver/linear_solver.h | 4 +- .../linear_solver/samples/bin_packing_mip.cc | 3 +- .../samples/integer_programming_example.cc | 1 + .../samples/linear_programming_example.cc | 1 + ortools/linear_solver/scip_interface.cc | 13 +- ortools/linear_solver/xpress_interface.cc | 14 +- ortools/lp_data/mps_reader.h | 2 +- ortools/sat/cp_model_solver.cc | 2 +- ortools/sat/encoding.h | 3 +- ortools/sat/optimization.cc | 2 +- ortools/sat/restart.cc | 2 +- .../stop_after_n_solutions_sample_sat.cc | 1 - ortools/sat/swig_helper.h | 9 +- ortools/util/zvector.h | 2 +- 32 files changed, 611 insertions(+), 582 deletions(-) diff --git a/ortools/algorithms/samples/simple_knapsack_program.cc b/ortools/algorithms/samples/simple_knapsack_program.cc index 8b91f15fe0..c7ec26f1b6 100644 --- a/ortools/algorithms/samples/simple_knapsack_program.cc +++ b/ortools/algorithms/samples/simple_knapsack_program.cc @@ -16,6 +16,7 @@ #include #include #include + #include "ortools/algorithms/knapsack_solver.h" // [END import] diff --git a/ortools/base/dynamic_library.h b/ortools/base/dynamic_library.h index c396ddeae4..61c5d35e83 100644 --- a/ortools/base/dynamic_library.h +++ b/ortools/base/dynamic_library.h @@ -48,14 +48,13 @@ class DynamicLibrary { bool TryToLoad(const std::string& library_name) { library_name_ = std::string(library_name); #if defined(_MSC_VER) - library_handle_ = static_cast(LoadLibrary(library_name.c_str())); + library_handle_ = static_cast(LoadLibrary(library_name.c_str())); #elif defined(__GNUC__) library_handle_ = dlopen(library_name.c_str(), RTLD_NOW); #endif return library_handle_ != nullptr; } - bool LibraryIsLoaded() const { return library_handle_ != nullptr; } template @@ -102,8 +101,8 @@ class DynamicLibrary { struct TypeParser { static std::function CreateFunction( const void* function_address) { - return std::function( - reinterpret_cast(const_cast(function_address))); + return std::function(reinterpret_cast( + const_cast(function_address))); } }; }; diff --git a/ortools/constraint_solver/constraint_solveri.h b/ortools/constraint_solver/constraint_solveri.h index 9da21d29e0..c1c6d81b93 100644 --- a/ortools/constraint_solver/constraint_solveri.h +++ b/ortools/constraint_solver/constraint_solveri.h @@ -246,7 +246,8 @@ inline uint64 Hash1(int64 value) { return Hash1(static_cast(value)); } inline uint64 Hash1(int value) { return Hash1(static_cast(value)); } inline uint64 Hash1(void* const ptr) { -#if defined(__x86_64__) || defined(_M_X64) || defined(__powerpc64__) || defined(__aarch64__) +#if defined(__x86_64__) || defined(_M_X64) || defined(__powerpc64__) || \ + defined(__aarch64__) return Hash1(reinterpret_cast(ptr)); #else return Hash1(reinterpret_cast(ptr)); diff --git a/ortools/constraint_solver/python/pywrapcp_util.h b/ortools/constraint_solver/python/pywrapcp_util.h index 783020bcfb..78454a0e8b 100644 --- a/ortools/constraint_solver/python/pywrapcp_util.h +++ b/ortools/constraint_solver/python/pywrapcp_util.h @@ -92,5 +92,4 @@ class CallPyDecisionBuilder : public operations_research::DecisionBuilder { PyObject* str_func_; }; - #endif // OR_TOOLS_CONSTRAINT_SOLVER_PYTHON_PYWRAPCP_UTIL_H_ diff --git a/ortools/constraint_solver/routing.cc b/ortools/constraint_solver/routing.cc index da838c8792..cb14a13ffb 100644 --- a/ortools/constraint_solver/routing.cc +++ b/ortools/constraint_solver/routing.cc @@ -221,7 +221,7 @@ class SetCumulsFromLocalDimensionCosts : public DecisionBuilder { LocalDimensionCumulOptimizer* const optimizer = vehicle_has_break_constraint ? local_mp_optimizers_[i].get() : local_optimizer.get(); - //DCHECK_NE(optimizer, nullptr); + // DCHECK_NE(optimizer, nullptr); std::vector cumul_values; std::vector break_start_end_values; const DimensionSchedulingStatus status = compute_cumul_values( @@ -3130,8 +3130,7 @@ absl::Duration GetTimeLimit(const RoutingSearchParameters& parameters) { absl::Duration GetLnsTimeLimit(const RoutingSearchParameters& parameters) { if (!parameters.has_lns_time_limit()) return absl::InfiniteDuration(); - return util_time::DecodeGoogleApiProto(parameters.lns_time_limit()) - .value(); + return util_time::DecodeGoogleApiProto(parameters.lns_time_limit()).value(); } } // namespace diff --git a/ortools/constraint_solver/routing_search.cc b/ortools/constraint_solver/routing_search.cc index 9e58cc8239..b7c5a1cf69 100644 --- a/ortools/constraint_solver/routing_search.cc +++ b/ortools/constraint_solver/routing_search.cc @@ -1350,7 +1350,7 @@ PathCumulFilter::PathCumulFilter(const RoutingModel& routing_model, // null because the finalizer is using a global optimizer, so we create a // separate optimizer for the PathCumulFilter if we need it. if (can_use_lp_ && optimizer_ == nullptr) { - //DCHECK_EQ(mp_optimizer_, nullptr); + // DCHECK_EQ(mp_optimizer_, nullptr); for (int vehicle = 0; vehicle < routing_model.vehicles(); vehicle++) { if (!FilterWithDimensionCumulOptimizerForVehicle(vehicle)) { continue; @@ -1531,7 +1531,7 @@ void PathCumulFilter::OnBeforeSynchronizePaths() { int64 lp_cumul_cost_value = 0; LocalDimensionCumulOptimizer* const optimizer = FilterBreakCost(vehicle) ? mp_optimizer_ : optimizer_; - //DCHECK_NE(optimizer, nullptr); + // DCHECK_NE(optimizer, nullptr); const DimensionSchedulingStatus status = optimizer->ComputeRouteCumulCostWithoutFixedTransits( vehicle, [this](int64 node) { return Value(node); }, @@ -1541,7 +1541,7 @@ void PathCumulFilter::OnBeforeSynchronizePaths() { lp_cumul_cost_value = 0; break; case DimensionSchedulingStatus::RELAXED_OPTIMAL_ONLY: - //DCHECK_NE(mp_optimizer_, nullptr); + // DCHECK_NE(mp_optimizer_, nullptr); if (mp_optimizer_->ComputeRouteCumulCostWithoutFixedTransits( vehicle, [this](int64 node) { return Value(node); }, &lp_cumul_cost_value) == @@ -4277,9 +4277,11 @@ bool LocalCheapestInsertionFilteredHeuristic::BuildSolutionInternal() { for (const int64 delivery_insertion : delivery_insertion_positions) { InsertBetween(pickup, pickup_insertion, pickup_insertion_next); const int64 delivery_insertion_next = - (delivery_insertion == pickup_insertion) ? pickup - : (delivery_insertion == pickup) ? pickup_insertion_next - : Value(delivery_insertion); + (delivery_insertion == pickup_insertion) + ? pickup + : (delivery_insertion == pickup) + ? pickup_insertion_next + : Value(delivery_insertion); InsertBetween(delivery, delivery_insertion, delivery_insertion_next); if (Commit()) { diff --git a/ortools/constraint_solver/samples/simple_ls_program.cc b/ortools/constraint_solver/samples/simple_ls_program.cc index d1d5fb5483..387c025141 100644 --- a/ortools/constraint_solver/samples/simple_ls_program.cc +++ b/ortools/constraint_solver/samples/simple_ls_program.cc @@ -99,7 +99,7 @@ class SumFilter : public IntVarLocalSearchFilter { } bool Accept(const Assignment* delta, const Assignment* unused_deltadelta, - int64 objective_min, int64 objective_max) override { + int64 objective_min, int64 objective_max) override { const Assignment::IntContainer& solution_delta = delta->IntVarContainer(); const int solution_delta_size = solution_delta.Size(); @@ -171,7 +171,7 @@ void SolveProblem(SolveType solve_type) { LOG(INFO) << "Local Search"; MoveOneVar* const one_var_ls = s.RevAlloc(new MoveOneVar(vars)); LocalSearchPhaseParameters* const ls_params = - s.MakeLocalSearchPhaseParameters(sum_var, one_var_ls, db); + s.MakeLocalSearchPhaseParameters(sum_var, one_var_ls, db); ls = s.MakeLocalSearchPhase(vars, db, ls_params); break; } @@ -180,11 +180,12 @@ void SolveProblem(SolveType solve_type) { MoveOneVar* const one_var_ls = s.RevAlloc(new MoveOneVar(vars)); std::vector filters; filters.push_back(s.RevAlloc(new SumFilter(vars))); - LocalSearchFilterManager* filter_manager = s.RevAlloc(new LocalSearchFilterManager(filters)); + LocalSearchFilterManager* filter_manager = + s.RevAlloc(new LocalSearchFilterManager(filters)); LocalSearchPhaseParameters* const ls_params = - s.MakeLocalSearchPhaseParameters(sum_var, one_var_ls, db, - nullptr, filter_manager); + s.MakeLocalSearchPhaseParameters(sum_var, one_var_ls, db, nullptr, + filter_manager); ls = s.MakeLocalSearchPhase(vars, db, ls_params); break; } diff --git a/ortools/constraint_solver/samples/vrp_with_time_limit.cc b/ortools/constraint_solver/samples/vrp_with_time_limit.cc index 9c62e1d3ee..47cae65035 100644 --- a/ortools/constraint_solver/samples/vrp_with_time_limit.cc +++ b/ortools/constraint_solver/samples/vrp_with_time_limit.cc @@ -14,6 +14,7 @@ // [START program] // [START import] #include + #include "ortools/constraint_solver/routing.h" #include "ortools/constraint_solver/routing_enums.pb.h" #include "ortools/constraint_solver/routing_index_manager.h" @@ -61,10 +62,7 @@ void VrpGlobalSpan() { // Create Routing Index Manager // [START index_manager] - RoutingIndexManager manager( - num_locations, - num_vehicles, - depot); + RoutingIndexManager manager(num_locations, num_vehicles, depot); // [END index_manager] // Create Routing Model. @@ -90,12 +88,10 @@ void VrpGlobalSpan() { // Add Distance constraint. // [START distance_constraint] - routing.AddDimension( - transit_callback_index, - /*slack=*/0, - /*horizon=*/3000, - /*start_cumul_to_zero=*/true, - "Distance"); + routing.AddDimension(transit_callback_index, + /*slack=*/0, + /*horizon=*/3000, + /*start_cumul_to_zero=*/true, "Distance"); const RoutingDimension& distance_dimension = routing.GetDimensionOrDie("Distance"); const_cast(distance_dimension) diff --git a/ortools/glop/revised_simplex.cc b/ortools/glop/revised_simplex.cc index 1814664c11..6a960fb434 100644 --- a/ortools/glop/revised_simplex.cc +++ b/ortools/glop/revised_simplex.cc @@ -2026,9 +2026,10 @@ void RevisedSimplex::DualPhaseIUpdatePriceOnReducedCostChange( for (ColIndex col : cols) { const Fractional reduced_cost = reduced_costs[col]; const Fractional sign = - (can_increase.IsSet(col) && reduced_cost < -tolerance) ? 1.0 - : (can_decrease.IsSet(col) && reduced_cost > tolerance) ? -1.0 - : 0.0; + (can_increase.IsSet(col) && reduced_cost < -tolerance) + ? 1.0 + : (can_decrease.IsSet(col) && reduced_cost > tolerance) ? -1.0 + : 0.0; if (sign != dual_infeasibility_improvement_direction_[col]) { if (sign == 0.0) { --num_dual_infeasible_positions_; @@ -2274,9 +2275,9 @@ Status RevisedSimplex::UpdateAndPivot(ColIndex entering_col, const VariableStatus leaving_variable_status = lower_bound_[leaving_col] == upper_bound_[leaving_col] ? VariableStatus::FIXED_VALUE - : target_bound == lower_bound_[leaving_col] - ? VariableStatus::AT_LOWER_BOUND - : VariableStatus::AT_UPPER_BOUND; + : target_bound == lower_bound_[leaving_col] + ? VariableStatus::AT_LOWER_BOUND + : VariableStatus::AT_UPPER_BOUND; if (variable_values_.Get(leaving_col) != target_bound) { ratio_test_stats_.bound_shift.Add(variable_values_.Get(leaving_col) - target_bound); diff --git a/ortools/graph/astar.cc b/ortools/graph/astar.cc index 4f67c806d4..70beaf02d7 100644 --- a/ortools/graph/astar.cc +++ b/ortools/graph/astar.cc @@ -11,11 +11,12 @@ // See the License for the specific language governing permissions and // limitations under the License. +#include +#include + #include #include -#include -#include #include "ortools/base/adjustable_priority_queue.h" #include "ortools/base/integral_types.h" diff --git a/ortools/graph/christofides.h b/ortools/graph/christofides.h index a5c27f98e9..13ff581079 100644 --- a/ortools/graph/christofides.h +++ b/ortools/graph/christofides.h @@ -75,10 +75,8 @@ class ChristofidesPathSolver { // T SafeAdd(T a, T b) { // return a + b; // } - //template <> - int64 SafeAdd(int64 a, int64 b) { - return CapAdd(a, b); - } + // template <> + int64 SafeAdd(int64 a, int64 b) { return CapAdd(a, b); } // Matching algorithm to use. MatchingAlgorithm matching_; diff --git a/ortools/graph/io.h b/ortools/graph/io.h index 98700460eb..f7dedd4072 100644 --- a/ortools/graph/io.h +++ b/ortools/graph/io.h @@ -142,7 +142,8 @@ absl::StatusOr ReadGraphFile( std::vector header_ints; // if (!SplitStringAndParse(line, " ", &absl::SimpleAtoi, // &header_ints) || - // header_ints.size() < 2 || header_ints[0] < 0 || header_ints[1] < 0) { + // header_ints.size() < 2 || header_ints[0] < 0 || header_ints[1] < 0) + // { // return absl::Status( // absl::StatusCode::kInvalidArgument, // absl::StrCat("First line of '", filename, diff --git a/ortools/linear_solver/clp_interface.cc b/ortools/linear_solver/clp_interface.cc index e1bee2b1fb..6535bd12b6 100644 --- a/ortools/linear_solver/clp_interface.cc +++ b/ortools/linear_solver/clp_interface.cc @@ -504,7 +504,7 @@ MPSolver::ResultStatus CLPInterface::Solve(const MPSolverParameters& param) { ResetParameters(); sync_status_ = SOLUTION_SYNCHRONIZED; return result_status_; - } catch (CoinError &e) { + } catch (CoinError& e) { LOG(WARNING) << "Caught exception in Coin LP: " << e.message(); result_status_ = MPSolver::ABNORMAL; return result_status_; diff --git a/ortools/linear_solver/cplex_interface.cc b/ortools/linear_solver/cplex_interface.cc index 56b1f05652..a91572ec5b 100644 --- a/ortools/linear_solver/cplex_interface.cc +++ b/ortools/linear_solver/cplex_interface.cc @@ -257,8 +257,8 @@ std::string CplexInterface::SolverVersion() const { version -= mod * 100; int const fix = version; - return absl::StrFormat("CPLEX library version %d.%02d.%02d.%02d", major, release, - mod, fix); + return absl::StrFormat("CPLEX library version %d.%02d.%02d.%02d", major, + release, mod, fix); } // ------ Model modifications and extraction ----- @@ -518,7 +518,7 @@ void CplexInterface::ClearConstraint(MPConstraint *const constraint) { unique_ptr colind(new CPXDIM[len]); unique_ptr val(new double[len]); CPXDIM j = 0; - const auto& coeffs = constraint->coefficients_; + const auto &coeffs = constraint->coefficients_; for (auto it(coeffs.begin()); it != coeffs.end(); ++it) { CPXDIM const col = it->first->index(); if (variable_is_extracted(col)) { @@ -575,7 +575,7 @@ void CplexInterface::ClearObjective() { unique_ptr ind(new CPXDIM[cols]); unique_ptr zero(new double[cols]); CPXDIM j = 0; - const auto& coeffs = solver_->objective_->coefficients_; + const auto &coeffs = solver_->objective_->coefficients_; for (auto it(coeffs.begin()); it != coeffs.end(); ++it) { CPXDIM const idx = it->first->index(); // We only need to reset variables that have been extracted. @@ -771,7 +771,7 @@ void CplexInterface::ExtractNewVariables() { for (int i = 0; i < last_constraint_index_; ++i) { MPConstraint const *const ct = solver_->constraints_[i]; CHECK(constraint_is_extracted(ct->index())); - const auto& coeffs = ct->coefficients_; + const auto &coeffs = ct->coefficients_; for (auto it(coeffs.begin()); it != coeffs.end(); ++it) { int const idx = it->first->index(); if (variable_is_extracted(idx) && idx > last_variable_index_) { @@ -809,7 +809,7 @@ void CplexInterface::ExtractNewVariables() { for (int i = 0; i < last_constraint_index_; ++i) { MPConstraint const *const ct = solver_->constraints_[i]; CPXDIM const row = ct->index(); - const auto& coeffs = ct->coefficients_; + const auto &coeffs = ct->coefficients_; for (auto it(coeffs.begin()); it != coeffs.end(); ++it) { int const idx = it->first->index(); if (variable_is_extracted(idx) && idx > last_variable_index_) { @@ -930,7 +930,7 @@ void CplexInterface::ExtractNewConstraints() { // Setup left-hand side of constraint. rmatbeg[nextRow] = nextNz; - const auto& coeffs = ct->coefficients_; + const auto &coeffs = ct->coefficients_; for (auto it(coeffs.begin()); it != coeffs.end(); ++it) { CPXDIM const idx = it->first->index(); if (variable_is_extracted(idx)) { @@ -982,7 +982,7 @@ void CplexInterface::ExtractObjective() { val[j] = 0.0; } - const auto& coeffs = solver_->objective_->coefficients_; + const auto &coeffs = solver_->objective_->coefficients_; for (auto it = coeffs.begin(); it != coeffs.end(); ++it) { CPXDIM const idx = it->first->index(); if (variable_is_extracted(idx)) { diff --git a/ortools/linear_solver/gurobi_environment.cc b/ortools/linear_solver/gurobi_environment.cc index 40322acca7..07386dad17 100644 --- a/ortools/linear_solver/gurobi_environment.cc +++ b/ortools/linear_solver/gurobi_environment.cc @@ -198,7 +198,7 @@ bool LoadSpecificGurobiLibrary(const std::string &full_library_path) { } bool SearchForGurobiDynamicLibrary() { - const char* gurobi_home_from_env = getenv("GUROBI_HOME"); + const char *gurobi_home_from_env = getenv("GUROBI_HOME"); #if defined(_MSC_VER) // Windows if (!gurobi_library_path.empty() && LoadSpecificGurobiLibrary(gurobi_library_path)) { @@ -227,7 +227,7 @@ bool SearchForGurobiDynamicLibrary() { "/Library/gurobi902/mac64/lib/libgurobi90.dylib")) { return true; } -#elif defined(__GNUC__) // Linux +#elif defined(__GNUC__) // Linux if (gurobi_home_from_env != nullptr && LoadSpecificGurobiLibrary( absl::StrCat(gurobi_home_from_env, "/lib/libgurobi90.so"))) { diff --git a/ortools/linear_solver/gurobi_environment.h b/ortools/linear_solver/gurobi_environment.h index db0d6793f1..d9788ed9b9 100644 --- a/ortools/linear_solver/gurobi_environment.h +++ b/ortools/linear_solver/gurobi_environment.h @@ -31,33 +31,33 @@ typedef struct _GRBenv GRBenv; } namespace operations_research { -absl::Status LoadGurobiEnvironment(GRBenv** env); +absl::Status LoadGurobiEnvironment(GRBenv **env); #define CB_ARGS GRBmodel *model, void *cbdata, int where, void *usrdata -extern std::function +extern std::function GRBaddrangeconstr; -extern std::function +extern std::function GRBaddvars; -extern std::function GRBfreeenv; -extern std::function GRBfreemodel; -extern std::function +extern std::function GRBfreeenv; +extern std::function GRBfreemodel; +extern std::function GRBgetcharattrelement; -extern std::function GRBgetdblattr; -extern std::function +extern std::function GRBgetdblattr; +extern std::function GRBgetdblattrarray; -extern std::function +extern std::function GRBgetdblattrelement; -extern std::function GRBgetdblparam; -extern std::function GRBgetenv; -extern std::function GRBgeterrormsg; -extern std::function GRBgetintattr; -extern std::function +extern std::function GRBgetdblparam; +extern std::function GRBgetenv; +extern std::function GRBgeterrormsg; +extern std::function GRBgetintattr; +extern std::function GRBgetintattrelement; -extern std::function GRBloadenv; -extern std::function +extern std::function GRBloadenv; +extern std::function GRBnewmodel; extern std::function GRBoptimize; extern std::function GRBreadparams; @@ -127,534 +127,564 @@ extern std::function' -#define GRB_EQUAL '=' +#define GRB_EQUAL '=' #define GRB_CONTINUOUS 'C' -#define GRB_BINARY 'B' -#define GRB_INTEGER 'I' -#define GRB_SEMICONT 'S' -#define GRB_SEMIINT 'N' +#define GRB_BINARY 'B' +#define GRB_INTEGER 'I' +#define GRB_SEMICONT 'S' +#define GRB_SEMIINT 'N' #define GRB_MINIMIZE 1 #define GRB_MAXIMIZE -1 #define GRB_SOS_TYPE1 1 #define GRB_SOS_TYPE2 2 -#define GRB_INFINITY 1e100 +#define GRB_INFINITY 1e100 #define GRB_UNDEFINED 1e101 -#define GRB_MAXINT 2000000000 -#define GRB_MAX_NAMELEN 255 -#define GRB_MAX_STRLEN 512 -#define GRB_MAX_TAGLEN 10240 +#define GRB_MAXINT 2000000000 +#define GRB_MAX_NAMELEN 255 +#define GRB_MAX_STRLEN 512 +#define GRB_MAX_TAGLEN 10240 #define GRB_MAX_CONCURRENT 64 -#define GRB_INT_ATTR_NUMCONSTRS "NumConstrs" /* # of constraints */ -#define GRB_INT_ATTR_NUMVARS "NumVars" /* # of vars */ -#define GRB_INT_ATTR_NUMSOS "NumSOS" /* # of sos constraints */ -#define GRB_INT_ATTR_NUMQCONSTRS "NumQConstrs" /* # of quadratic constraints */ -#define GRB_INT_ATTR_NUMGENCONSTRS "NumGenConstrs" /* # of general constraints */ -#define GRB_INT_ATTR_NUMNZS "NumNZs" /* # of nz in A */ -#define GRB_DBL_ATTR_DNUMNZS "DNumNZs" /* # of nz in A */ -#define GRB_INT_ATTR_NUMQNZS "NumQNZs" /* # of nz in Q */ -#define GRB_INT_ATTR_NUMQCNZS "NumQCNZs" /* # of nz in q constraints */ -#define GRB_INT_ATTR_NUMINTVARS "NumIntVars" /* # of integer vars */ -#define GRB_INT_ATTR_NUMBINVARS "NumBinVars" /* # of binary vars */ -#define GRB_INT_ATTR_NUMPWLOBJVARS "NumPWLObjVars" /* # of variables with PWL obj. */ -#define GRB_STR_ATTR_MODELNAME "ModelName" /* model name */ -#define GRB_INT_ATTR_MODELSENSE "ModelSense" /* 1=min, -1=max */ -#define GRB_DBL_ATTR_OBJCON "ObjCon" /* Objective constant */ -#define GRB_INT_ATTR_IS_MIP "IsMIP" /* Is model a MIP? */ -#define GRB_INT_ATTR_IS_QP "IsQP" /* Model has quadratic obj? */ -#define GRB_INT_ATTR_IS_QCP "IsQCP" /* Model has quadratic constr? */ -#define GRB_INT_ATTR_IS_MULTIOBJ "IsMultiObj" /* Model has multiple objectives? */ -#define GRB_STR_ATTR_SERVER "Server" /* Name of Compute Server */ -#define GRB_STR_ATTR_JOBID "JobID" /* Compute Server job ID */ -#define GRB_INT_ATTR_LICENSE_EXPIRATION "LicenseExpiration" /* License expiration date */ -#define GRB_INT_ATTR_NUMTAGGED "NumTagged" /* number of tagged elements in model */ -#define GRB_INT_ATTR_BATCHERRORCODE "BatchErrorCode" +#define GRB_INT_ATTR_NUMCONSTRS "NumConstrs" /* # of constraints */ +#define GRB_INT_ATTR_NUMVARS "NumVars" /* # of vars */ +#define GRB_INT_ATTR_NUMSOS "NumSOS" /* # of sos constraints */ +#define GRB_INT_ATTR_NUMQCONSTRS \ + "NumQConstrs" /* # of quadratic constraints \ + */ +#define GRB_INT_ATTR_NUMGENCONSTRS \ + "NumGenConstrs" /* # of general constraints */ +#define GRB_INT_ATTR_NUMNZS "NumNZs" /* # of nz in A */ +#define GRB_DBL_ATTR_DNUMNZS "DNumNZs" /* # of nz in A */ +#define GRB_INT_ATTR_NUMQNZS "NumQNZs" /* # of nz in Q */ +#define GRB_INT_ATTR_NUMQCNZS "NumQCNZs" /* # of nz in q constraints */ +#define GRB_INT_ATTR_NUMINTVARS "NumIntVars" /* # of integer vars */ +#define GRB_INT_ATTR_NUMBINVARS "NumBinVars" /* # of binary vars */ +#define GRB_INT_ATTR_NUMPWLOBJVARS \ + "NumPWLObjVars" /* # of variables with PWL obj. */ +#define GRB_STR_ATTR_MODELNAME "ModelName" /* model name */ +#define GRB_INT_ATTR_MODELSENSE "ModelSense" /* 1=min, -1=max */ +#define GRB_DBL_ATTR_OBJCON "ObjCon" /* Objective constant */ +#define GRB_INT_ATTR_IS_MIP "IsMIP" /* Is model a MIP? */ +#define GRB_INT_ATTR_IS_QP "IsQP" /* Model has quadratic obj? */ +#define GRB_INT_ATTR_IS_QCP "IsQCP" /* Model has quadratic constr? */ +#define GRB_INT_ATTR_IS_MULTIOBJ \ + "IsMultiObj" /* Model has multiple objectives? */ +#define GRB_STR_ATTR_SERVER "Server" /* Name of Compute Server */ +#define GRB_STR_ATTR_JOBID "JobID" /* Compute Server job ID */ +#define GRB_INT_ATTR_LICENSE_EXPIRATION \ + "LicenseExpiration" /* License expiration date */ +#define GRB_INT_ATTR_NUMTAGGED \ + "NumTagged" /* number of tagged elements in model */ +#define GRB_INT_ATTR_BATCHERRORCODE "BatchErrorCode" #define GRB_STR_ATTR_BATCHERRORMESSAGE "BatchErrorMessage" -#define GRB_STR_ATTR_BATCHID "BatchID" -#define GRB_INT_ATTR_BATCHSTATUS "BatchStatus" -#define GRB_DBL_ATTR_LB "LB" /* Lower bound */ -#define GRB_DBL_ATTR_UB "UB" /* Upper bound */ -#define GRB_DBL_ATTR_OBJ "Obj" /* Objective coeff */ -#define GRB_CHAR_ATTR_VTYPE "VType" /* Integrality type */ -#define GRB_DBL_ATTR_START "Start" /* MIP start value */ -#define GRB_DBL_ATTR_PSTART "PStart" /* LP primal solution warm start */ -#define GRB_INT_ATTR_BRANCHPRIORITY "BranchPriority" /* MIP branch priority */ -#define GRB_STR_ATTR_VARNAME "VarName" /* Variable name */ -#define GRB_INT_ATTR_PWLOBJCVX "PWLObjCvx" /* Convexity of variable PWL obj */ -#define GRB_DBL_ATTR_VARHINTVAL "VarHintVal" -#define GRB_INT_ATTR_VARHINTPRI "VarHintPri" -#define GRB_INT_ATTR_PARTITION "Partition" -#define GRB_STR_ATTR_VTAG "VTag" /* variable tags */ -#define GRB_STR_ATTR_CTAG "CTag" /* linear constraint tags */ -#define GRB_DBL_ATTR_RHS "RHS" /* RHS */ -#define GRB_DBL_ATTR_DSTART "DStart" /* LP dual solution warm start */ -#define GRB_CHAR_ATTR_SENSE "Sense" /* Sense ('<', '>', or '=') */ +#define GRB_STR_ATTR_BATCHID "BatchID" +#define GRB_INT_ATTR_BATCHSTATUS "BatchStatus" +#define GRB_DBL_ATTR_LB "LB" /* Lower bound */ +#define GRB_DBL_ATTR_UB "UB" /* Upper bound */ +#define GRB_DBL_ATTR_OBJ "Obj" /* Objective coeff */ +#define GRB_CHAR_ATTR_VTYPE "VType" /* Integrality type */ +#define GRB_DBL_ATTR_START "Start" /* MIP start value */ +#define GRB_DBL_ATTR_PSTART "PStart" /* LP primal solution warm start */ +#define GRB_INT_ATTR_BRANCHPRIORITY "BranchPriority" /* MIP branch priority */ +#define GRB_STR_ATTR_VARNAME "VarName" /* Variable name */ +#define GRB_INT_ATTR_PWLOBJCVX "PWLObjCvx" /* Convexity of variable PWL obj */ +#define GRB_DBL_ATTR_VARHINTVAL "VarHintVal" +#define GRB_INT_ATTR_VARHINTPRI "VarHintPri" +#define GRB_INT_ATTR_PARTITION "Partition" +#define GRB_STR_ATTR_VTAG "VTag" /* variable tags */ +#define GRB_STR_ATTR_CTAG "CTag" /* linear constraint tags */ +#define GRB_DBL_ATTR_RHS "RHS" /* RHS */ +#define GRB_DBL_ATTR_DSTART "DStart" /* LP dual solution warm start */ +#define GRB_CHAR_ATTR_SENSE "Sense" /* Sense ('<', '>', or '=') */ #define GRB_STR_ATTR_CONSTRNAME "ConstrName" /* Constraint name */ -#define GRB_INT_ATTR_LAZY "Lazy" /* Lazy constraint? */ -#define GRB_STR_ATTR_QCTAG "QCTag" /* quadratic constraint tags */ -#define GRB_DBL_ATTR_QCRHS "QCRHS" /* QC RHS */ -#define GRB_CHAR_ATTR_QCSENSE "QCSense" /* QC sense ('<', '>', or '=') */ -#define GRB_STR_ATTR_QCNAME "QCName" /* QC name */ -#define GRB_INT_ATTR_GENCONSTRTYPE "GenConstrType" /* Type of general constraint */ -#define GRB_STR_ATTR_GENCONSTRNAME "GenConstrName" /* Name of general constraint */ -#define GRB_INT_ATTR_FUNCPIECES "FuncPieces" /* An option for PWL translation */ -#define GRB_DBL_ATTR_FUNCPIECEERROR "FuncPieceError" /* An option for PWL translation */ -#define GRB_DBL_ATTR_FUNCPIECELENGTH "FuncPieceLength" /* An option for PWL translation */ -#define GRB_DBL_ATTR_FUNCPIECERATIO "FuncPieceRatio" /* An option for PWL translation */ -#define GRB_DBL_ATTR_MAX_COEFF "MaxCoeff" /* Max (abs) nz coeff in A */ -#define GRB_DBL_ATTR_MIN_COEFF "MinCoeff" /* Min (abs) nz coeff in A */ -#define GRB_DBL_ATTR_MAX_BOUND "MaxBound" /* Max (abs) finite var bd */ -#define GRB_DBL_ATTR_MIN_BOUND "MinBound" /* Min (abs) var bd */ -#define GRB_DBL_ATTR_MAX_OBJ_COEFF "MaxObjCoeff" /* Max (abs) obj coeff */ -#define GRB_DBL_ATTR_MIN_OBJ_COEFF "MinObjCoeff" /* Min (abs) obj coeff */ -#define GRB_DBL_ATTR_MAX_RHS "MaxRHS" /* Max (abs) rhs coeff */ -#define GRB_DBL_ATTR_MIN_RHS "MinRHS" /* Min (abs) rhs coeff */ -#define GRB_DBL_ATTR_MAX_QCCOEFF "MaxQCCoeff" /* Max (abs) nz coeff in Q */ -#define GRB_DBL_ATTR_MIN_QCCOEFF "MinQCCoeff" /* Min (abs) nz coeff in Q */ -#define GRB_DBL_ATTR_MAX_QOBJ_COEFF "MaxQObjCoeff" /* Max (abs) obj coeff of quadratic part */ -#define GRB_DBL_ATTR_MIN_QOBJ_COEFF "MinQObjCoeff" /* Min (abs) obj coeff of quadratic part */ -#define GRB_DBL_ATTR_MAX_QCLCOEFF "MaxQCLCoeff" /* Max (abs) nz coeff in linear part of Q */ -#define GRB_DBL_ATTR_MIN_QCLCOEFF "MinQCLCoeff" /* Min (abs) nz coeff in linear part of Q */ -#define GRB_DBL_ATTR_MAX_QCRHS "MaxQCRHS" /* Max (abs) rhs of Q */ -#define GRB_DBL_ATTR_MIN_QCRHS "MinQCRHS" /* Min (abs) rhs of Q */ -#define GRB_DBL_ATTR_RUNTIME "Runtime" /* Run time for optimization */ -#define GRB_INT_ATTR_STATUS "Status" /* Optimization status */ -#define GRB_DBL_ATTR_OBJVAL "ObjVal" /* Solution objective */ -#define GRB_DBL_ATTR_OBJBOUND "ObjBound" /* Best bound on solution */ -#define GRB_DBL_ATTR_OBJBOUNDC "ObjBoundC" /* Continuous bound */ -#define GRB_DBL_ATTR_POOLOBJBOUND "PoolObjBound" /* Best bound on pool solution */ -#define GRB_DBL_ATTR_POOLOBJVAL "PoolObjVal" /* Solution objective for solutionnumber */ -#define GRB_DBL_ATTR_MIPGAP "MIPGap" /* MIP optimality gap */ -#define GRB_INT_ATTR_SOLCOUNT "SolCount" /* # of solutions found */ -#define GRB_DBL_ATTR_ITERCOUNT "IterCount" /* Iters performed (simplex) */ -#define GRB_INT_ATTR_BARITERCOUNT "BarIterCount" /* Iters performed (barrier) */ -#define GRB_DBL_ATTR_NODECOUNT "NodeCount" /* Nodes explored (B&C) */ -#define GRB_DBL_ATTR_OPENNODECOUNT "OpenNodeCount" /* Unexplored nodes (B&C) */ -#define GRB_INT_ATTR_HASDUALNORM "HasDualNorm" /* 0, no basis, */ -#define GRB_DBL_ATTR_X "X" /* Solution value */ -#define GRB_DBL_ATTR_XN "Xn" /* Alternate MIP solution */ -#define GRB_DBL_ATTR_BARX "BarX" /* Best barrier iterate */ -#define GRB_DBL_ATTR_RC "RC" /* Reduced costs */ -#define GRB_DBL_ATTR_VDUALNORM "VDualNorm" /* Dual norm square */ -#define GRB_INT_ATTR_VBASIS "VBasis" /* Variable basis status */ -#define GRB_DBL_ATTR_PI "Pi" /* Dual value */ -#define GRB_DBL_ATTR_QCPI "QCPi" /* Dual value for QC */ -#define GRB_DBL_ATTR_SLACK "Slack" /* Constraint slack */ -#define GRB_DBL_ATTR_QCSLACK "QCSlack" /* QC Constraint slack */ -#define GRB_DBL_ATTR_CDUALNORM "CDualNorm" /* Dual norm square */ -#define GRB_INT_ATTR_CBASIS "CBasis" /* Constraint basis status */ -#define GRB_DBL_ATTR_BOUND_VIO "BoundVio" -#define GRB_DBL_ATTR_BOUND_SVIO "BoundSVio" -#define GRB_INT_ATTR_BOUND_VIO_INDEX "BoundVioIndex" -#define GRB_INT_ATTR_BOUND_SVIO_INDEX "BoundSVioIndex" -#define GRB_DBL_ATTR_BOUND_VIO_SUM "BoundVioSum" -#define GRB_DBL_ATTR_BOUND_SVIO_SUM "BoundSVioSum" -#define GRB_DBL_ATTR_CONSTR_VIO "ConstrVio" -#define GRB_DBL_ATTR_CONSTR_SVIO "ConstrSVio" -#define GRB_INT_ATTR_CONSTR_VIO_INDEX "ConstrVioIndex" -#define GRB_INT_ATTR_CONSTR_SVIO_INDEX "ConstrSVioIndex" -#define GRB_DBL_ATTR_CONSTR_VIO_SUM "ConstrVioSum" -#define GRB_DBL_ATTR_CONSTR_SVIO_SUM "ConstrSVioSum" -#define GRB_DBL_ATTR_CONSTR_RESIDUAL "ConstrResidual" -#define GRB_DBL_ATTR_CONSTR_SRESIDUAL "ConstrSResidual" -#define GRB_INT_ATTR_CONSTR_RESIDUAL_INDEX "ConstrResidualIndex" +#define GRB_INT_ATTR_LAZY "Lazy" /* Lazy constraint? */ +#define GRB_STR_ATTR_QCTAG "QCTag" /* quadratic constraint tags */ +#define GRB_DBL_ATTR_QCRHS "QCRHS" /* QC RHS */ +#define GRB_CHAR_ATTR_QCSENSE "QCSense" /* QC sense ('<', '>', or '=') */ +#define GRB_STR_ATTR_QCNAME "QCName" /* QC name */ +#define GRB_INT_ATTR_GENCONSTRTYPE \ + "GenConstrType" /* Type of general constraint */ +#define GRB_STR_ATTR_GENCONSTRNAME \ + "GenConstrName" /* Name of general constraint */ +#define GRB_INT_ATTR_FUNCPIECES \ + "FuncPieces" /* An option for PWL translation \ + */ +#define GRB_DBL_ATTR_FUNCPIECEERROR \ + "FuncPieceError" /* An option for PWL translation */ +#define GRB_DBL_ATTR_FUNCPIECELENGTH \ + "FuncPieceLength" /* An option for PWL translation */ +#define GRB_DBL_ATTR_FUNCPIECERATIO \ + "FuncPieceRatio" /* An option for PWL translation */ +#define GRB_DBL_ATTR_MAX_COEFF "MaxCoeff" /* Max (abs) nz coeff in A */ +#define GRB_DBL_ATTR_MIN_COEFF "MinCoeff" /* Min (abs) nz coeff in A */ +#define GRB_DBL_ATTR_MAX_BOUND "MaxBound" /* Max (abs) finite var bd */ +#define GRB_DBL_ATTR_MIN_BOUND "MinBound" /* Min (abs) var bd */ +#define GRB_DBL_ATTR_MAX_OBJ_COEFF "MaxObjCoeff" /* Max (abs) obj coeff */ +#define GRB_DBL_ATTR_MIN_OBJ_COEFF "MinObjCoeff" /* Min (abs) obj coeff */ +#define GRB_DBL_ATTR_MAX_RHS "MaxRHS" /* Max (abs) rhs coeff */ +#define GRB_DBL_ATTR_MIN_RHS "MinRHS" /* Min (abs) rhs coeff */ +#define GRB_DBL_ATTR_MAX_QCCOEFF "MaxQCCoeff" /* Max (abs) nz coeff in Q */ +#define GRB_DBL_ATTR_MIN_QCCOEFF "MinQCCoeff" /* Min (abs) nz coeff in Q */ +#define GRB_DBL_ATTR_MAX_QOBJ_COEFF \ + "MaxQObjCoeff" /* Max (abs) obj coeff of quadratic part */ +#define GRB_DBL_ATTR_MIN_QOBJ_COEFF \ + "MinQObjCoeff" /* Min (abs) obj coeff of quadratic part */ +#define GRB_DBL_ATTR_MAX_QCLCOEFF \ + "MaxQCLCoeff" /* Max (abs) nz coeff in linear part of Q */ +#define GRB_DBL_ATTR_MIN_QCLCOEFF \ + "MinQCLCoeff" /* Min (abs) nz coeff in linear part of Q */ +#define GRB_DBL_ATTR_MAX_QCRHS "MaxQCRHS" /* Max (abs) rhs of Q */ +#define GRB_DBL_ATTR_MIN_QCRHS "MinQCRHS" /* Min (abs) rhs of Q */ +#define GRB_DBL_ATTR_RUNTIME "Runtime" /* Run time for optimization */ +#define GRB_INT_ATTR_STATUS "Status" /* Optimization status */ +#define GRB_DBL_ATTR_OBJVAL "ObjVal" /* Solution objective */ +#define GRB_DBL_ATTR_OBJBOUND "ObjBound" /* Best bound on solution */ +#define GRB_DBL_ATTR_OBJBOUNDC "ObjBoundC" /* Continuous bound */ +#define GRB_DBL_ATTR_POOLOBJBOUND \ + "PoolObjBound" /* Best bound on pool solution */ +#define GRB_DBL_ATTR_POOLOBJVAL \ + "PoolObjVal" /* Solution objective for solutionnumber */ +#define GRB_DBL_ATTR_MIPGAP "MIPGap" /* MIP optimality gap */ +#define GRB_INT_ATTR_SOLCOUNT "SolCount" /* # of solutions found */ +#define GRB_DBL_ATTR_ITERCOUNT "IterCount" /* Iters performed (simplex) */ +#define GRB_INT_ATTR_BARITERCOUNT \ + "BarIterCount" /* Iters performed (barrier) \ + */ +#define GRB_DBL_ATTR_NODECOUNT "NodeCount" /* Nodes explored (B&C) */ +#define GRB_DBL_ATTR_OPENNODECOUNT \ + "OpenNodeCount" /* Unexplored nodes (B&C) \ + */ +#define GRB_INT_ATTR_HASDUALNORM "HasDualNorm" /* 0, no basis, */ +#define GRB_DBL_ATTR_X "X" /* Solution value */ +#define GRB_DBL_ATTR_XN "Xn" /* Alternate MIP solution */ +#define GRB_DBL_ATTR_BARX "BarX" /* Best barrier iterate */ +#define GRB_DBL_ATTR_RC "RC" /* Reduced costs */ +#define GRB_DBL_ATTR_VDUALNORM "VDualNorm" /* Dual norm square */ +#define GRB_INT_ATTR_VBASIS "VBasis" /* Variable basis status */ +#define GRB_DBL_ATTR_PI "Pi" /* Dual value */ +#define GRB_DBL_ATTR_QCPI "QCPi" /* Dual value for QC */ +#define GRB_DBL_ATTR_SLACK "Slack" /* Constraint slack */ +#define GRB_DBL_ATTR_QCSLACK "QCSlack" /* QC Constraint slack */ +#define GRB_DBL_ATTR_CDUALNORM "CDualNorm" /* Dual norm square */ +#define GRB_INT_ATTR_CBASIS "CBasis" /* Constraint basis status */ +#define GRB_DBL_ATTR_BOUND_VIO "BoundVio" +#define GRB_DBL_ATTR_BOUND_SVIO "BoundSVio" +#define GRB_INT_ATTR_BOUND_VIO_INDEX "BoundVioIndex" +#define GRB_INT_ATTR_BOUND_SVIO_INDEX "BoundSVioIndex" +#define GRB_DBL_ATTR_BOUND_VIO_SUM "BoundVioSum" +#define GRB_DBL_ATTR_BOUND_SVIO_SUM "BoundSVioSum" +#define GRB_DBL_ATTR_CONSTR_VIO "ConstrVio" +#define GRB_DBL_ATTR_CONSTR_SVIO "ConstrSVio" +#define GRB_INT_ATTR_CONSTR_VIO_INDEX "ConstrVioIndex" +#define GRB_INT_ATTR_CONSTR_SVIO_INDEX "ConstrSVioIndex" +#define GRB_DBL_ATTR_CONSTR_VIO_SUM "ConstrVioSum" +#define GRB_DBL_ATTR_CONSTR_SVIO_SUM "ConstrSVioSum" +#define GRB_DBL_ATTR_CONSTR_RESIDUAL "ConstrResidual" +#define GRB_DBL_ATTR_CONSTR_SRESIDUAL "ConstrSResidual" +#define GRB_INT_ATTR_CONSTR_RESIDUAL_INDEX "ConstrResidualIndex" #define GRB_INT_ATTR_CONSTR_SRESIDUAL_INDEX "ConstrSResidualIndex" -#define GRB_DBL_ATTR_CONSTR_RESIDUAL_SUM "ConstrResidualSum" -#define GRB_DBL_ATTR_CONSTR_SRESIDUAL_SUM "ConstrSResidualSum" -#define GRB_DBL_ATTR_DUAL_VIO "DualVio" -#define GRB_DBL_ATTR_DUAL_SVIO "DualSVio" -#define GRB_INT_ATTR_DUAL_VIO_INDEX "DualVioIndex" -#define GRB_INT_ATTR_DUAL_SVIO_INDEX "DualSVioIndex" -#define GRB_DBL_ATTR_DUAL_VIO_SUM "DualVioSum" -#define GRB_DBL_ATTR_DUAL_SVIO_SUM "DualSVioSum" -#define GRB_DBL_ATTR_DUAL_RESIDUAL "DualResidual" -#define GRB_DBL_ATTR_DUAL_SRESIDUAL "DualSResidual" -#define GRB_INT_ATTR_DUAL_RESIDUAL_INDEX "DualResidualIndex" -#define GRB_INT_ATTR_DUAL_SRESIDUAL_INDEX "DualSResidualIndex" -#define GRB_DBL_ATTR_DUAL_RESIDUAL_SUM "DualResidualSum" -#define GRB_DBL_ATTR_DUAL_SRESIDUAL_SUM "DualSResidualSum" -#define GRB_DBL_ATTR_INT_VIO "IntVio" -#define GRB_INT_ATTR_INT_VIO_INDEX "IntVioIndex" -#define GRB_DBL_ATTR_INT_VIO_SUM "IntVioSum" -#define GRB_DBL_ATTR_COMPL_VIO "ComplVio" -#define GRB_INT_ATTR_COMPL_VIO_INDEX "ComplVioIndex" -#define GRB_DBL_ATTR_COMPL_VIO_SUM "ComplVioSum" -#define GRB_DBL_ATTR_KAPPA "Kappa" -#define GRB_DBL_ATTR_KAPPA_EXACT "KappaExact" -#define GRB_DBL_ATTR_N2KAPPA "N2Kappa" +#define GRB_DBL_ATTR_CONSTR_RESIDUAL_SUM "ConstrResidualSum" +#define GRB_DBL_ATTR_CONSTR_SRESIDUAL_SUM "ConstrSResidualSum" +#define GRB_DBL_ATTR_DUAL_VIO "DualVio" +#define GRB_DBL_ATTR_DUAL_SVIO "DualSVio" +#define GRB_INT_ATTR_DUAL_VIO_INDEX "DualVioIndex" +#define GRB_INT_ATTR_DUAL_SVIO_INDEX "DualSVioIndex" +#define GRB_DBL_ATTR_DUAL_VIO_SUM "DualVioSum" +#define GRB_DBL_ATTR_DUAL_SVIO_SUM "DualSVioSum" +#define GRB_DBL_ATTR_DUAL_RESIDUAL "DualResidual" +#define GRB_DBL_ATTR_DUAL_SRESIDUAL "DualSResidual" +#define GRB_INT_ATTR_DUAL_RESIDUAL_INDEX "DualResidualIndex" +#define GRB_INT_ATTR_DUAL_SRESIDUAL_INDEX "DualSResidualIndex" +#define GRB_DBL_ATTR_DUAL_RESIDUAL_SUM "DualResidualSum" +#define GRB_DBL_ATTR_DUAL_SRESIDUAL_SUM "DualSResidualSum" +#define GRB_DBL_ATTR_INT_VIO "IntVio" +#define GRB_INT_ATTR_INT_VIO_INDEX "IntVioIndex" +#define GRB_DBL_ATTR_INT_VIO_SUM "IntVioSum" +#define GRB_DBL_ATTR_COMPL_VIO "ComplVio" +#define GRB_INT_ATTR_COMPL_VIO_INDEX "ComplVioIndex" +#define GRB_DBL_ATTR_COMPL_VIO_SUM "ComplVioSum" +#define GRB_DBL_ATTR_KAPPA "Kappa" +#define GRB_DBL_ATTR_KAPPA_EXACT "KappaExact" +#define GRB_DBL_ATTR_N2KAPPA "N2Kappa" #define GRB_DBL_ATTR_SA_OBJLOW "SAObjLow" -#define GRB_DBL_ATTR_SA_OBJUP "SAObjUp" -#define GRB_DBL_ATTR_SA_LBLOW "SALBLow" -#define GRB_DBL_ATTR_SA_LBUP "SALBUp" -#define GRB_DBL_ATTR_SA_UBLOW "SAUBLow" -#define GRB_DBL_ATTR_SA_UBUP "SAUBUp" +#define GRB_DBL_ATTR_SA_OBJUP "SAObjUp" +#define GRB_DBL_ATTR_SA_LBLOW "SALBLow" +#define GRB_DBL_ATTR_SA_LBUP "SALBUp" +#define GRB_DBL_ATTR_SA_UBLOW "SAUBLow" +#define GRB_DBL_ATTR_SA_UBUP "SAUBUp" #define GRB_DBL_ATTR_SA_RHSLOW "SARHSLow" -#define GRB_DBL_ATTR_SA_RHSUP "SARHSUp" -#define GRB_INT_ATTR_IIS_MINIMAL "IISMinimal" /* Boolean: Is IIS Minimal? */ -#define GRB_INT_ATTR_IIS_LB "IISLB" /* Boolean: Is var LB in IIS? */ -#define GRB_INT_ATTR_IIS_UB "IISUB" /* Boolean: Is var UB in IIS? */ -#define GRB_INT_ATTR_IIS_CONSTR "IISConstr" /* Boolean: Is constr in IIS? */ -#define GRB_INT_ATTR_IIS_SOS "IISSOS" /* Boolean: Is SOS in IIS? */ -#define GRB_INT_ATTR_IIS_QCONSTR "IISQConstr" /* Boolean: Is QConstr in IIS? */ -#define GRB_INT_ATTR_IIS_GENCONSTR "IISGenConstr" /* Boolean: Is general constr in IIS? */ +#define GRB_DBL_ATTR_SA_RHSUP "SARHSUp" +#define GRB_INT_ATTR_IIS_MINIMAL "IISMinimal" /* Boolean: Is IIS Minimal? */ +#define GRB_INT_ATTR_IIS_LB "IISLB" /* Boolean: Is var LB in IIS? */ +#define GRB_INT_ATTR_IIS_UB "IISUB" /* Boolean: Is var UB in IIS? */ +#define GRB_INT_ATTR_IIS_CONSTR "IISConstr" /* Boolean: Is constr in IIS? */ +#define GRB_INT_ATTR_IIS_SOS "IISSOS" /* Boolean: Is SOS in IIS? */ +#define GRB_INT_ATTR_IIS_QCONSTR \ + "IISQConstr" /* Boolean: Is QConstr in IIS? \ + */ +#define GRB_INT_ATTR_IIS_GENCONSTR \ + "IISGenConstr" /* Boolean: Is general constr in IIS? */ #define GRB_INT_ATTR_TUNE_RESULTCOUNT "TuneResultCount" -#define GRB_DBL_ATTR_FARKASDUAL "FarkasDual" +#define GRB_DBL_ATTR_FARKASDUAL "FarkasDual" #define GRB_DBL_ATTR_FARKASPROOF "FarkasProof" -#define GRB_DBL_ATTR_UNBDRAY "UnbdRay" -#define GRB_INT_ATTR_INFEASVAR "InfeasVar" -#define GRB_INT_ATTR_UNBDVAR "UnbdVar" +#define GRB_DBL_ATTR_UNBDRAY "UnbdRay" +#define GRB_INT_ATTR_INFEASVAR "InfeasVar" +#define GRB_INT_ATTR_UNBDVAR "UnbdVar" #define GRB_INT_ATTR_VARPRESTAT "VarPreStat" -#define GRB_DBL_ATTR_PREFIXVAL "PreFixVal" -#define GRB_DBL_ATTR_OBJN "ObjN" /* ith objective */ -#define GRB_DBL_ATTR_OBJNVAL "ObjNVal" /* Solution objective for Multi-objectives */ -#define GRB_DBL_ATTR_OBJNCON "ObjNCon" /* constant term */ -#define GRB_DBL_ATTR_OBJNWEIGHT "ObjNWeight" /* weight */ +#define GRB_DBL_ATTR_PREFIXVAL "PreFixVal" +#define GRB_DBL_ATTR_OBJN "ObjN" /* ith objective */ +#define GRB_DBL_ATTR_OBJNVAL \ + "ObjNVal" /* Solution objective for Multi-objectives */ +#define GRB_DBL_ATTR_OBJNCON "ObjNCon" /* constant term */ +#define GRB_DBL_ATTR_OBJNWEIGHT "ObjNWeight" /* weight */ #define GRB_INT_ATTR_OBJNPRIORITY "ObjNPriority" /* priority */ -#define GRB_DBL_ATTR_OBJNRELTOL "ObjNRelTol" /* relative tolerance */ -#define GRB_DBL_ATTR_OBJNABSTOL "ObjNAbsTol" /* absolute tolerance */ -#define GRB_STR_ATTR_OBJNNAME "ObjNName" /* name */ -#define GRB_DBL_ATTR_SCENNLB "ScenNLB" /* lower bound in scenario i */ -#define GRB_DBL_ATTR_SCENNUB "ScenNUB" /* upper bound in scenario i */ -#define GRB_DBL_ATTR_SCENNOBJ "ScenNObj" /* objective in scenario i */ -#define GRB_DBL_ATTR_SCENNRHS "ScenNRHS" /* right hand side in scenario i */ -#define GRB_STR_ATTR_SCENNNAME "ScenNName" /* name of scenario i */ -#define GRB_DBL_ATTR_SCENNX "ScenNX" /* solution value in scenario i */ -#define GRB_DBL_ATTR_SCENNOBJBOUND "ScenNObjBound" /* objective bound for scenario i */ -#define GRB_DBL_ATTR_SCENNOBJVAL "ScenNObjVal" /* objective value for scenario i */ -#define GRB_INT_ATTR_NUMOBJ "NumObj" /* number of objectives */ +#define GRB_DBL_ATTR_OBJNRELTOL "ObjNRelTol" /* relative tolerance */ +#define GRB_DBL_ATTR_OBJNABSTOL "ObjNAbsTol" /* absolute tolerance */ +#define GRB_STR_ATTR_OBJNNAME "ObjNName" /* name */ +#define GRB_DBL_ATTR_SCENNLB "ScenNLB" /* lower bound in scenario i */ +#define GRB_DBL_ATTR_SCENNUB "ScenNUB" /* upper bound in scenario i */ +#define GRB_DBL_ATTR_SCENNOBJ "ScenNObj" /* objective in scenario i */ +#define GRB_DBL_ATTR_SCENNRHS "ScenNRHS" /* right hand side in scenario i */ +#define GRB_STR_ATTR_SCENNNAME "ScenNName" /* name of scenario i */ +#define GRB_DBL_ATTR_SCENNX "ScenNX" /* solution value in scenario i */ +#define GRB_DBL_ATTR_SCENNOBJBOUND \ + "ScenNObjBound" /* objective bound for scenario i */ +#define GRB_DBL_ATTR_SCENNOBJVAL \ + "ScenNObjVal" /* objective value for scenario i */ +#define GRB_INT_ATTR_NUMOBJ "NumObj" /* number of objectives */ #define GRB_INT_ATTR_NUMSCENARIOS "NumScenarios" /* number of scenarios */ -#define GRB_INT_ATTR_NUMSTART "NumStart" /* number of MIP starts */ +#define GRB_INT_ATTR_NUMSTART "NumStart" /* number of MIP starts */ #define GRB_DBL_ATTR_Xn "Xn" -#define GRB_GENCONSTR_MAX 0 -#define GRB_GENCONSTR_MIN 1 -#define GRB_GENCONSTR_ABS 2 -#define GRB_GENCONSTR_AND 3 -#define GRB_GENCONSTR_OR 4 -#define GRB_GENCONSTR_INDICATOR 5 -#define GRB_GENCONSTR_PWL 6 -#define GRB_GENCONSTR_POLY 7 -#define GRB_GENCONSTR_EXP 8 -#define GRB_GENCONSTR_EXPA 9 -#define GRB_GENCONSTR_LOG 10 -#define GRB_GENCONSTR_LOGA 11 -#define GRB_GENCONSTR_POW 12 -#define GRB_GENCONSTR_SIN 13 -#define GRB_GENCONSTR_COS 14 -#define GRB_GENCONSTR_TAN 15 -#define GRB_CB_POLLING 0 -#define GRB_CB_PRESOLVE 1 -#define GRB_CB_SIMPLEX 2 -#define GRB_CB_MIP 3 -#define GRB_CB_MIPSOL 4 -#define GRB_CB_MIPNODE 5 -#define GRB_CB_MESSAGE 6 -#define GRB_CB_BARRIER 7 -#define GRB_CB_MULTIOBJ 8 -#define GRB_CB_PRE_COLDEL 1000 -#define GRB_CB_PRE_ROWDEL 1001 -#define GRB_CB_PRE_SENCHG 1002 -#define GRB_CB_PRE_BNDCHG 1003 -#define GRB_CB_PRE_COECHG 1004 -#define GRB_CB_SPX_ITRCNT 2000 -#define GRB_CB_SPX_OBJVAL 2001 +#define GRB_GENCONSTR_MAX 0 +#define GRB_GENCONSTR_MIN 1 +#define GRB_GENCONSTR_ABS 2 +#define GRB_GENCONSTR_AND 3 +#define GRB_GENCONSTR_OR 4 +#define GRB_GENCONSTR_INDICATOR 5 +#define GRB_GENCONSTR_PWL 6 +#define GRB_GENCONSTR_POLY 7 +#define GRB_GENCONSTR_EXP 8 +#define GRB_GENCONSTR_EXPA 9 +#define GRB_GENCONSTR_LOG 10 +#define GRB_GENCONSTR_LOGA 11 +#define GRB_GENCONSTR_POW 12 +#define GRB_GENCONSTR_SIN 13 +#define GRB_GENCONSTR_COS 14 +#define GRB_GENCONSTR_TAN 15 +#define GRB_CB_POLLING 0 +#define GRB_CB_PRESOLVE 1 +#define GRB_CB_SIMPLEX 2 +#define GRB_CB_MIP 3 +#define GRB_CB_MIPSOL 4 +#define GRB_CB_MIPNODE 5 +#define GRB_CB_MESSAGE 6 +#define GRB_CB_BARRIER 7 +#define GRB_CB_MULTIOBJ 8 +#define GRB_CB_PRE_COLDEL 1000 +#define GRB_CB_PRE_ROWDEL 1001 +#define GRB_CB_PRE_SENCHG 1002 +#define GRB_CB_PRE_BNDCHG 1003 +#define GRB_CB_PRE_COECHG 1004 +#define GRB_CB_SPX_ITRCNT 2000 +#define GRB_CB_SPX_OBJVAL 2001 #define GRB_CB_SPX_PRIMINF 2002 #define GRB_CB_SPX_DUALINF 2003 -#define GRB_CB_SPX_ISPERT 2004 -#define GRB_CB_MIP_OBJBST 3000 -#define GRB_CB_MIP_OBJBND 3001 -#define GRB_CB_MIP_NODCNT 3002 -#define GRB_CB_MIP_SOLCNT 3003 -#define GRB_CB_MIP_CUTCNT 3004 -#define GRB_CB_MIP_NODLFT 3005 -#define GRB_CB_MIP_ITRCNT 3006 +#define GRB_CB_SPX_ISPERT 2004 +#define GRB_CB_MIP_OBJBST 3000 +#define GRB_CB_MIP_OBJBND 3001 +#define GRB_CB_MIP_NODCNT 3002 +#define GRB_CB_MIP_SOLCNT 3003 +#define GRB_CB_MIP_CUTCNT 3004 +#define GRB_CB_MIP_NODLFT 3005 +#define GRB_CB_MIP_ITRCNT 3006 #define GRB_CB_MIP_OBJBNDC 3007 -#define GRB_CB_MIPSOL_SOL 4001 -#define GRB_CB_MIPSOL_OBJ 4002 -#define GRB_CB_MIPSOL_OBJBST 4003 -#define GRB_CB_MIPSOL_OBJBND 4004 -#define GRB_CB_MIPSOL_NODCNT 4005 -#define GRB_CB_MIPSOL_SOLCNT 4006 +#define GRB_CB_MIPSOL_SOL 4001 +#define GRB_CB_MIPSOL_OBJ 4002 +#define GRB_CB_MIPSOL_OBJBST 4003 +#define GRB_CB_MIPSOL_OBJBND 4004 +#define GRB_CB_MIPSOL_NODCNT 4005 +#define GRB_CB_MIPSOL_SOLCNT 4006 #define GRB_CB_MIPSOL_OBJBNDC 4007 -#define GRB_CB_MIPNODE_STATUS 5001 -#define GRB_CB_MIPNODE_REL 5002 -#define GRB_CB_MIPNODE_OBJBST 5003 -#define GRB_CB_MIPNODE_OBJBND 5004 -#define GRB_CB_MIPNODE_NODCNT 5005 -#define GRB_CB_MIPNODE_SOLCNT 5006 -#define GRB_CB_MIPNODE_BRVAR 5007 +#define GRB_CB_MIPNODE_STATUS 5001 +#define GRB_CB_MIPNODE_REL 5002 +#define GRB_CB_MIPNODE_OBJBST 5003 +#define GRB_CB_MIPNODE_OBJBND 5004 +#define GRB_CB_MIPNODE_NODCNT 5005 +#define GRB_CB_MIPNODE_SOLCNT 5006 +#define GRB_CB_MIPNODE_BRVAR 5007 #define GRB_CB_MIPNODE_OBJBNDC 5008 -#define GRB_CB_MSG_STRING 6001 -#define GRB_CB_RUNTIME 6002 -#define GRB_CB_BARRIER_ITRCNT 7001 +#define GRB_CB_MSG_STRING 6001 +#define GRB_CB_RUNTIME 6002 +#define GRB_CB_BARRIER_ITRCNT 7001 #define GRB_CB_BARRIER_PRIMOBJ 7002 #define GRB_CB_BARRIER_DUALOBJ 7003 #define GRB_CB_BARRIER_PRIMINF 7004 #define GRB_CB_BARRIER_DUALINF 7005 -#define GRB_CB_BARRIER_COMPL 7006 -#define GRB_CB_MULTIOBJ_OBJCNT 8001 -#define GRB_CB_MULTIOBJ_SOLCNT 8002 -#define GRB_CB_MULTIOBJ_SOL 8003 -#define GRB_FEASRELAX_LINEAR 0 -#define GRB_FEASRELAX_QUADRATIC 1 +#define GRB_CB_BARRIER_COMPL 7006 +#define GRB_CB_MULTIOBJ_OBJCNT 8001 +#define GRB_CB_MULTIOBJ_SOLCNT 8002 +#define GRB_CB_MULTIOBJ_SOL 8003 +#define GRB_FEASRELAX_LINEAR 0 +#define GRB_FEASRELAX_QUADRATIC 1 #define GRB_FEASRELAX_CARDINALITY 2 -#define GRB_LOADED 1 -#define GRB_OPTIMAL 2 -#define GRB_INFEASIBLE 3 -#define GRB_INF_OR_UNBD 4 -#define GRB_UNBOUNDED 5 -#define GRB_CUTOFF 6 +#define GRB_LOADED 1 +#define GRB_OPTIMAL 2 +#define GRB_INFEASIBLE 3 +#define GRB_INF_OR_UNBD 4 +#define GRB_UNBOUNDED 5 +#define GRB_CUTOFF 6 #define GRB_ITERATION_LIMIT 7 -#define GRB_NODE_LIMIT 8 -#define GRB_TIME_LIMIT 9 +#define GRB_NODE_LIMIT 8 +#define GRB_TIME_LIMIT 9 #define GRB_SOLUTION_LIMIT 10 -#define GRB_INTERRUPTED 11 -#define GRB_NUMERIC 12 -#define GRB_SUBOPTIMAL 13 -#define GRB_INPROGRESS 14 +#define GRB_INTERRUPTED 11 +#define GRB_NUMERIC 12 +#define GRB_SUBOPTIMAL 13 +#define GRB_INPROGRESS 14 #define GRB_USER_OBJ_LIMIT 15 -#define GRB_BASIC 0 +#define GRB_BASIC 0 #define GRB_NONBASIC_LOWER -1 #define GRB_NONBASIC_UPPER -2 -#define GRB_SUPERBASIC -3 -#define GRB_INT_PAR_BARITERLIMIT "BarIterLimit" -#define GRB_DBL_PAR_CUTOFF "Cutoff" +#define GRB_SUPERBASIC -3 +#define GRB_INT_PAR_BARITERLIMIT "BarIterLimit" +#define GRB_DBL_PAR_CUTOFF "Cutoff" #define GRB_DBL_PAR_ITERATIONLIMIT "IterationLimit" -#define GRB_DBL_PAR_NODELIMIT "NodeLimit" -#define GRB_INT_PAR_SOLUTIONLIMIT "SolutionLimit" -#define GRB_DBL_PAR_TIMELIMIT "TimeLimit" -#define GRB_DBL_PAR_BESTOBJSTOP "BestObjStop" -#define GRB_DBL_PAR_BESTBDSTOP "BestBdStop" +#define GRB_DBL_PAR_NODELIMIT "NodeLimit" +#define GRB_INT_PAR_SOLUTIONLIMIT "SolutionLimit" +#define GRB_DBL_PAR_TIMELIMIT "TimeLimit" +#define GRB_DBL_PAR_BESTOBJSTOP "BestObjStop" +#define GRB_DBL_PAR_BESTBDSTOP "BestBdStop" #define GRB_DBL_PAR_FEASIBILITYTOL "FeasibilityTol" -#define GRB_DBL_PAR_INTFEASTOL "IntFeasTol" -#define GRB_DBL_PAR_MARKOWITZTOL "MarkowitzTol" -#define GRB_DBL_PAR_MIPGAP "MIPGap" -#define GRB_DBL_PAR_MIPGAPABS "MIPGapAbs" -#define GRB_DBL_PAR_OPTIMALITYTOL "OptimalityTol" -#define GRB_DBL_PAR_PSDTOL "PSDTol" -#define GRB_INT_PAR_METHOD "Method" -#define GRB_DBL_PAR_PERTURBVALUE "PerturbValue" -#define GRB_DBL_PAR_OBJSCALE "ObjScale" -#define GRB_INT_PAR_SCALEFLAG "ScaleFlag" +#define GRB_DBL_PAR_INTFEASTOL "IntFeasTol" +#define GRB_DBL_PAR_MARKOWITZTOL "MarkowitzTol" +#define GRB_DBL_PAR_MIPGAP "MIPGap" +#define GRB_DBL_PAR_MIPGAPABS "MIPGapAbs" +#define GRB_DBL_PAR_OPTIMALITYTOL "OptimalityTol" +#define GRB_DBL_PAR_PSDTOL "PSDTol" +#define GRB_INT_PAR_METHOD "Method" +#define GRB_DBL_PAR_PERTURBVALUE "PerturbValue" +#define GRB_DBL_PAR_OBJSCALE "ObjScale" +#define GRB_INT_PAR_SCALEFLAG "ScaleFlag" #define GRB_INT_PAR_SIMPLEXPRICING "SimplexPricing" -#define GRB_INT_PAR_QUAD "Quad" -#define GRB_INT_PAR_NORMADJUST "NormAdjust" -#define GRB_INT_PAR_SIFTING "Sifting" -#define GRB_INT_PAR_SIFTMETHOD "SiftMethod" -#define GRB_DBL_PAR_BARCONVTOL "BarConvTol" -#define GRB_INT_PAR_BARCORRECTORS "BarCorrectors" +#define GRB_INT_PAR_QUAD "Quad" +#define GRB_INT_PAR_NORMADJUST "NormAdjust" +#define GRB_INT_PAR_SIFTING "Sifting" +#define GRB_INT_PAR_SIFTMETHOD "SiftMethod" +#define GRB_DBL_PAR_BARCONVTOL "BarConvTol" +#define GRB_INT_PAR_BARCORRECTORS "BarCorrectors" #define GRB_INT_PAR_BARHOMOGENEOUS "BarHomogeneous" -#define GRB_INT_PAR_BARORDER "BarOrder" -#define GRB_DBL_PAR_BARQCPCONVTOL "BarQCPConvTol" -#define GRB_INT_PAR_CROSSOVER "Crossover" +#define GRB_INT_PAR_BARORDER "BarOrder" +#define GRB_DBL_PAR_BARQCPCONVTOL "BarQCPConvTol" +#define GRB_INT_PAR_CROSSOVER "Crossover" #define GRB_INT_PAR_CROSSOVERBASIS "CrossoverBasis" -#define GRB_INT_PAR_BRANCHDIR "BranchDir" -#define GRB_INT_PAR_DEGENMOVES "DegenMoves" -#define GRB_INT_PAR_DISCONNECTED "Disconnected" -#define GRB_DBL_PAR_HEURISTICS "Heuristics" -#define GRB_DBL_PAR_IMPROVESTARTGAP "ImproveStartGap" -#define GRB_DBL_PAR_IMPROVESTARTTIME "ImproveStartTime" +#define GRB_INT_PAR_BRANCHDIR "BranchDir" +#define GRB_INT_PAR_DEGENMOVES "DegenMoves" +#define GRB_INT_PAR_DISCONNECTED "Disconnected" +#define GRB_DBL_PAR_HEURISTICS "Heuristics" +#define GRB_DBL_PAR_IMPROVESTARTGAP "ImproveStartGap" +#define GRB_DBL_PAR_IMPROVESTARTTIME "ImproveStartTime" #define GRB_DBL_PAR_IMPROVESTARTNODES "ImproveStartNodes" -#define GRB_INT_PAR_MINRELNODES "MinRelNodes" -#define GRB_INT_PAR_MIPFOCUS "MIPFocus" -#define GRB_STR_PAR_NODEFILEDIR "NodefileDir" -#define GRB_DBL_PAR_NODEFILESTART "NodefileStart" -#define GRB_INT_PAR_NODEMETHOD "NodeMethod" -#define GRB_INT_PAR_NORELHEURISTIC "NoRelHeuristic" -#define GRB_INT_PAR_PUMPPASSES "PumpPasses" -#define GRB_INT_PAR_RINS "RINS" -#define GRB_STR_PAR_SOLFILES "SolFiles" -#define GRB_INT_PAR_STARTNODELIMIT "StartNodeLimit" -#define GRB_INT_PAR_SUBMIPNODES "SubMIPNodes" -#define GRB_INT_PAR_SYMMETRY "Symmetry" -#define GRB_INT_PAR_VARBRANCH "VarBranch" -#define GRB_INT_PAR_SOLUTIONNUMBER "SolutionNumber" -#define GRB_INT_PAR_ZEROOBJNODES "ZeroObjNodes" -#define GRB_INT_PAR_CUTS "Cuts" -#define GRB_INT_PAR_CLIQUECUTS "CliqueCuts" -#define GRB_INT_PAR_COVERCUTS "CoverCuts" -#define GRB_INT_PAR_FLOWCOVERCUTS "FlowCoverCuts" -#define GRB_INT_PAR_FLOWPATHCUTS "FlowPathCuts" -#define GRB_INT_PAR_GUBCOVERCUTS "GUBCoverCuts" -#define GRB_INT_PAR_IMPLIEDCUTS "ImpliedCuts" +#define GRB_INT_PAR_MINRELNODES "MinRelNodes" +#define GRB_INT_PAR_MIPFOCUS "MIPFocus" +#define GRB_STR_PAR_NODEFILEDIR "NodefileDir" +#define GRB_DBL_PAR_NODEFILESTART "NodefileStart" +#define GRB_INT_PAR_NODEMETHOD "NodeMethod" +#define GRB_INT_PAR_NORELHEURISTIC "NoRelHeuristic" +#define GRB_INT_PAR_PUMPPASSES "PumpPasses" +#define GRB_INT_PAR_RINS "RINS" +#define GRB_STR_PAR_SOLFILES "SolFiles" +#define GRB_INT_PAR_STARTNODELIMIT "StartNodeLimit" +#define GRB_INT_PAR_SUBMIPNODES "SubMIPNodes" +#define GRB_INT_PAR_SYMMETRY "Symmetry" +#define GRB_INT_PAR_VARBRANCH "VarBranch" +#define GRB_INT_PAR_SOLUTIONNUMBER "SolutionNumber" +#define GRB_INT_PAR_ZEROOBJNODES "ZeroObjNodes" +#define GRB_INT_PAR_CUTS "Cuts" +#define GRB_INT_PAR_CLIQUECUTS "CliqueCuts" +#define GRB_INT_PAR_COVERCUTS "CoverCuts" +#define GRB_INT_PAR_FLOWCOVERCUTS "FlowCoverCuts" +#define GRB_INT_PAR_FLOWPATHCUTS "FlowPathCuts" +#define GRB_INT_PAR_GUBCOVERCUTS "GUBCoverCuts" +#define GRB_INT_PAR_IMPLIEDCUTS "ImpliedCuts" #define GRB_INT_PAR_PROJIMPLIEDCUTS "ProjImpliedCuts" -#define GRB_INT_PAR_MIPSEPCUTS "MIPSepCuts" -#define GRB_INT_PAR_MIRCUTS "MIRCuts" -#define GRB_INT_PAR_STRONGCGCUTS "StrongCGCuts" -#define GRB_INT_PAR_MODKCUTS "ModKCuts" -#define GRB_INT_PAR_ZEROHALFCUTS "ZeroHalfCuts" -#define GRB_INT_PAR_NETWORKCUTS "NetworkCuts" -#define GRB_INT_PAR_SUBMIPCUTS "SubMIPCuts" -#define GRB_INT_PAR_INFPROOFCUTS "InfProofCuts" -#define GRB_INT_PAR_RLTCUTS "RLTCuts" -#define GRB_INT_PAR_RELAXLIFTCUTS "RelaxLiftCuts" -#define GRB_INT_PAR_BQPCUTS "BQPCuts" -#define GRB_INT_PAR_CUTAGGPASSES "CutAggPasses" -#define GRB_INT_PAR_CUTPASSES "CutPasses" -#define GRB_INT_PAR_GOMORYPASSES "GomoryPasses" -#define GRB_STR_PAR_WORKERPOOL "WorkerPool" -#define GRB_STR_PAR_WORKERPASSWORD "WorkerPassword" -#define GRB_STR_PAR_COMPUTESERVER "ComputeServer" -#define GRB_STR_PAR_TOKENSERVER "TokenServer" -#define GRB_STR_PAR_SERVERPASSWORD "ServerPassword" -#define GRB_INT_PAR_SERVERTIMEOUT "ServerTimeout" -#define GRB_STR_PAR_CSROUTER "CSRouter" -#define GRB_STR_PAR_CSGROUP "CSGroup" -#define GRB_DBL_PAR_CSQUEUETIMEOUT "CSQueueTimeout" -#define GRB_INT_PAR_CSPRIORITY "CSPriority" -#define GRB_INT_PAR_CSIDLETIMEOUT "CSIdleTimeout" -#define GRB_INT_PAR_CSTLSINSECURE "CSTLSInsecure" -#define GRB_INT_PAR_TSPORT "TSPort" -#define GRB_STR_PAR_CLOUDACCESSID "CloudAccessID" -#define GRB_STR_PAR_CLOUDSECRETKEY "CloudSecretKey" -#define GRB_STR_PAR_CLOUDPOOL "CloudPool" -#define GRB_STR_PAR_CLOUDHOST "CloudHost" -#define GRB_STR_PAR_CSMANAGER "CSManager" -#define GRB_STR_PAR_CSAUTHTOKEN "CSAuthToken" -#define GRB_STR_PAR_CSAPIACCESSID "CSAPIAccessID" -#define GRB_STR_PAR_CSAPISECRET "CSAPISecret" -#define GRB_INT_PAR_CSBATCHMODE "CSBatchMode" -#define GRB_STR_PAR_USERNAME "Username" -#define GRB_STR_PAR_CSAPPNAME "CSAppName" -#define GRB_INT_PAR_CSCLIENTLOG "CSClientLog" -#define GRB_INT_PAR_AGGREGATE "Aggregate" -#define GRB_INT_PAR_AGGFILL "AggFill" -#define GRB_INT_PAR_CONCURRENTMIP "ConcurrentMIP" -#define GRB_INT_PAR_CONCURRENTJOBS "ConcurrentJobs" -#define GRB_INT_PAR_DISPLAYINTERVAL "DisplayInterval" +#define GRB_INT_PAR_MIPSEPCUTS "MIPSepCuts" +#define GRB_INT_PAR_MIRCUTS "MIRCuts" +#define GRB_INT_PAR_STRONGCGCUTS "StrongCGCuts" +#define GRB_INT_PAR_MODKCUTS "ModKCuts" +#define GRB_INT_PAR_ZEROHALFCUTS "ZeroHalfCuts" +#define GRB_INT_PAR_NETWORKCUTS "NetworkCuts" +#define GRB_INT_PAR_SUBMIPCUTS "SubMIPCuts" +#define GRB_INT_PAR_INFPROOFCUTS "InfProofCuts" +#define GRB_INT_PAR_RLTCUTS "RLTCuts" +#define GRB_INT_PAR_RELAXLIFTCUTS "RelaxLiftCuts" +#define GRB_INT_PAR_BQPCUTS "BQPCuts" +#define GRB_INT_PAR_CUTAGGPASSES "CutAggPasses" +#define GRB_INT_PAR_CUTPASSES "CutPasses" +#define GRB_INT_PAR_GOMORYPASSES "GomoryPasses" +#define GRB_STR_PAR_WORKERPOOL "WorkerPool" +#define GRB_STR_PAR_WORKERPASSWORD "WorkerPassword" +#define GRB_STR_PAR_COMPUTESERVER "ComputeServer" +#define GRB_STR_PAR_TOKENSERVER "TokenServer" +#define GRB_STR_PAR_SERVERPASSWORD "ServerPassword" +#define GRB_INT_PAR_SERVERTIMEOUT "ServerTimeout" +#define GRB_STR_PAR_CSROUTER "CSRouter" +#define GRB_STR_PAR_CSGROUP "CSGroup" +#define GRB_DBL_PAR_CSQUEUETIMEOUT "CSQueueTimeout" +#define GRB_INT_PAR_CSPRIORITY "CSPriority" +#define GRB_INT_PAR_CSIDLETIMEOUT "CSIdleTimeout" +#define GRB_INT_PAR_CSTLSINSECURE "CSTLSInsecure" +#define GRB_INT_PAR_TSPORT "TSPort" +#define GRB_STR_PAR_CLOUDACCESSID "CloudAccessID" +#define GRB_STR_PAR_CLOUDSECRETKEY "CloudSecretKey" +#define GRB_STR_PAR_CLOUDPOOL "CloudPool" +#define GRB_STR_PAR_CLOUDHOST "CloudHost" +#define GRB_STR_PAR_CSMANAGER "CSManager" +#define GRB_STR_PAR_CSAUTHTOKEN "CSAuthToken" +#define GRB_STR_PAR_CSAPIACCESSID "CSAPIAccessID" +#define GRB_STR_PAR_CSAPISECRET "CSAPISecret" +#define GRB_INT_PAR_CSBATCHMODE "CSBatchMode" +#define GRB_STR_PAR_USERNAME "Username" +#define GRB_STR_PAR_CSAPPNAME "CSAppName" +#define GRB_INT_PAR_CSCLIENTLOG "CSClientLog" +#define GRB_INT_PAR_AGGREGATE "Aggregate" +#define GRB_INT_PAR_AGGFILL "AggFill" +#define GRB_INT_PAR_CONCURRENTMIP "ConcurrentMIP" +#define GRB_INT_PAR_CONCURRENTJOBS "ConcurrentJobs" +#define GRB_INT_PAR_DISPLAYINTERVAL "DisplayInterval" #define GRB_INT_PAR_DISTRIBUTEDMIPJOBS "DistributedMIPJobs" -#define GRB_INT_PAR_DUALREDUCTIONS "DualReductions" -#define GRB_DBL_PAR_FEASRELAXBIGM "FeasRelaxBigM" -#define GRB_INT_PAR_IISMETHOD "IISMethod" -#define GRB_INT_PAR_INFUNBDINFO "InfUnbdInfo" -#define GRB_INT_PAR_JSONSOLDETAIL "JSONSolDetail" -#define GRB_INT_PAR_LAZYCONSTRAINTS "LazyConstraints" -#define GRB_STR_PAR_LOGFILE "LogFile" -#define GRB_INT_PAR_LOGTOCONSOLE "LogToConsole" -#define GRB_INT_PAR_MIQCPMETHOD "MIQCPMethod" -#define GRB_INT_PAR_NONCONVEX "NonConvex" -#define GRB_INT_PAR_NUMERICFOCUS "NumericFocus" -#define GRB_INT_PAR_OUTPUTFLAG "OutputFlag" -#define GRB_INT_PAR_PRECRUSH "PreCrush" -#define GRB_INT_PAR_PREDEPROW "PreDepRow" -#define GRB_INT_PAR_PREDUAL "PreDual" -#define GRB_INT_PAR_PREPASSES "PrePasses" -#define GRB_INT_PAR_PREQLINEARIZE "PreQLinearize" -#define GRB_INT_PAR_PRESOLVE "Presolve" -#define GRB_DBL_PAR_PRESOS1BIGM "PreSOS1BigM" -#define GRB_DBL_PAR_PRESOS2BIGM "PreSOS2BigM" -#define GRB_INT_PAR_PRESPARSIFY "PreSparsify" -#define GRB_INT_PAR_PREMIQCPFORM "PreMIQCPForm" -#define GRB_INT_PAR_QCPDUAL "QCPDual" -#define GRB_INT_PAR_RECORD "Record" -#define GRB_STR_PAR_RESULTFILE "ResultFile" -#define GRB_INT_PAR_SEED "Seed" -#define GRB_INT_PAR_THREADS "Threads" -#define GRB_DBL_PAR_TUNETIMELIMIT "TuneTimeLimit" -#define GRB_INT_PAR_TUNERESULTS "TuneResults" -#define GRB_INT_PAR_TUNECRITERION "TuneCriterion" -#define GRB_INT_PAR_TUNETRIALS "TuneTrials" -#define GRB_INT_PAR_TUNEOUTPUT "TuneOutput" -#define GRB_INT_PAR_TUNEJOBS "TuneJobs" -#define GRB_INT_PAR_UPDATEMODE "UpdateMode" -#define GRB_INT_PAR_OBJNUMBER "ObjNumber" -#define GRB_INT_PAR_MULTIOBJMETHOD "MultiObjMethod" -#define GRB_INT_PAR_MULTIOBJPRE "MultiObjPre" -#define GRB_INT_PAR_SCENARIONUMBER "ScenarioNumber" -#define GRB_INT_PAR_POOLSOLUTIONS "PoolSolutions" -#define GRB_DBL_PAR_POOLGAP "PoolGap" -#define GRB_INT_PAR_POOLSEARCHMODE "PoolSearchMode" -#define GRB_INT_PAR_IGNORENAMES "IgnoreNames" -#define GRB_INT_PAR_STARTNUMBER "StartNumber" -#define GRB_INT_PAR_PARTITIONPLACE "PartitionPlace" -#define GRB_INT_PAR_FUNCPIECES "FuncPieces" -#define GRB_DBL_PAR_FUNCPIECELENGTH "FuncPieceLength" -#define GRB_DBL_PAR_FUNCPIECEERROR "FuncPieceError" -#define GRB_DBL_PAR_FUNCPIECERATIO "FuncPieceRatio" -#define GRB_DBL_PAR_FUNCMAXVAL "FuncMaxVal" -#define GRB_STR_PAR_DUMMY "Dummy" -#define GRB_STR_PAR_JOBID "JobID" -#define GRB_CUTS_AUTO -1 -#define GRB_CUTS_OFF 0 -#define GRB_CUTS_CONSERVATIVE 1 -#define GRB_CUTS_AGGRESSIVE 2 +#define GRB_INT_PAR_DUALREDUCTIONS "DualReductions" +#define GRB_DBL_PAR_FEASRELAXBIGM "FeasRelaxBigM" +#define GRB_INT_PAR_IISMETHOD "IISMethod" +#define GRB_INT_PAR_INFUNBDINFO "InfUnbdInfo" +#define GRB_INT_PAR_JSONSOLDETAIL "JSONSolDetail" +#define GRB_INT_PAR_LAZYCONSTRAINTS "LazyConstraints" +#define GRB_STR_PAR_LOGFILE "LogFile" +#define GRB_INT_PAR_LOGTOCONSOLE "LogToConsole" +#define GRB_INT_PAR_MIQCPMETHOD "MIQCPMethod" +#define GRB_INT_PAR_NONCONVEX "NonConvex" +#define GRB_INT_PAR_NUMERICFOCUS "NumericFocus" +#define GRB_INT_PAR_OUTPUTFLAG "OutputFlag" +#define GRB_INT_PAR_PRECRUSH "PreCrush" +#define GRB_INT_PAR_PREDEPROW "PreDepRow" +#define GRB_INT_PAR_PREDUAL "PreDual" +#define GRB_INT_PAR_PREPASSES "PrePasses" +#define GRB_INT_PAR_PREQLINEARIZE "PreQLinearize" +#define GRB_INT_PAR_PRESOLVE "Presolve" +#define GRB_DBL_PAR_PRESOS1BIGM "PreSOS1BigM" +#define GRB_DBL_PAR_PRESOS2BIGM "PreSOS2BigM" +#define GRB_INT_PAR_PRESPARSIFY "PreSparsify" +#define GRB_INT_PAR_PREMIQCPFORM "PreMIQCPForm" +#define GRB_INT_PAR_QCPDUAL "QCPDual" +#define GRB_INT_PAR_RECORD "Record" +#define GRB_STR_PAR_RESULTFILE "ResultFile" +#define GRB_INT_PAR_SEED "Seed" +#define GRB_INT_PAR_THREADS "Threads" +#define GRB_DBL_PAR_TUNETIMELIMIT "TuneTimeLimit" +#define GRB_INT_PAR_TUNERESULTS "TuneResults" +#define GRB_INT_PAR_TUNECRITERION "TuneCriterion" +#define GRB_INT_PAR_TUNETRIALS "TuneTrials" +#define GRB_INT_PAR_TUNEOUTPUT "TuneOutput" +#define GRB_INT_PAR_TUNEJOBS "TuneJobs" +#define GRB_INT_PAR_UPDATEMODE "UpdateMode" +#define GRB_INT_PAR_OBJNUMBER "ObjNumber" +#define GRB_INT_PAR_MULTIOBJMETHOD "MultiObjMethod" +#define GRB_INT_PAR_MULTIOBJPRE "MultiObjPre" +#define GRB_INT_PAR_SCENARIONUMBER "ScenarioNumber" +#define GRB_INT_PAR_POOLSOLUTIONS "PoolSolutions" +#define GRB_DBL_PAR_POOLGAP "PoolGap" +#define GRB_INT_PAR_POOLSEARCHMODE "PoolSearchMode" +#define GRB_INT_PAR_IGNORENAMES "IgnoreNames" +#define GRB_INT_PAR_STARTNUMBER "StartNumber" +#define GRB_INT_PAR_PARTITIONPLACE "PartitionPlace" +#define GRB_INT_PAR_FUNCPIECES "FuncPieces" +#define GRB_DBL_PAR_FUNCPIECELENGTH "FuncPieceLength" +#define GRB_DBL_PAR_FUNCPIECEERROR "FuncPieceError" +#define GRB_DBL_PAR_FUNCPIECERATIO "FuncPieceRatio" +#define GRB_DBL_PAR_FUNCMAXVAL "FuncMaxVal" +#define GRB_STR_PAR_DUMMY "Dummy" +#define GRB_STR_PAR_JOBID "JobID" +#define GRB_CUTS_AUTO -1 +#define GRB_CUTS_OFF 0 +#define GRB_CUTS_CONSERVATIVE 1 +#define GRB_CUTS_AGGRESSIVE 2 #define GRB_CUTS_VERYAGGRESSIVE 3 -#define GRB_PRESOLVE_AUTO -1 -#define GRB_PRESOLVE_OFF 0 +#define GRB_PRESOLVE_AUTO -1 +#define GRB_PRESOLVE_OFF 0 #define GRB_PRESOLVE_CONSERVATIVE 1 -#define GRB_PRESOLVE_AGGRESSIVE 2 -#define GRB_METHOD_AUTO -1 -#define GRB_METHOD_PRIMAL 0 -#define GRB_METHOD_DUAL 1 -#define GRB_METHOD_BARRIER 2 -#define GRB_METHOD_CONCURRENT 3 -#define GRB_METHOD_DETERMINISTIC_CONCURRENT 4 +#define GRB_PRESOLVE_AGGRESSIVE 2 +#define GRB_METHOD_AUTO -1 +#define GRB_METHOD_PRIMAL 0 +#define GRB_METHOD_DUAL 1 +#define GRB_METHOD_BARRIER 2 +#define GRB_METHOD_CONCURRENT 3 +#define GRB_METHOD_DETERMINISTIC_CONCURRENT 4 #define GRB_METHOD_DETERMINISTIC_CONCURRENT_SIMPLEX 5 #define GRB_BARHOMOGENEOUS_AUTO -1 -#define GRB_BARHOMOGENEOUS_OFF 0 -#define GRB_BARHOMOGENEOUS_ON 1 -#define GRB_MIPFOCUS_BALANCED 0 +#define GRB_BARHOMOGENEOUS_OFF 0 +#define GRB_BARHOMOGENEOUS_ON 1 +#define GRB_MIPFOCUS_BALANCED 0 #define GRB_MIPFOCUS_FEASIBILITY 1 -#define GRB_MIPFOCUS_OPTIMALITY 2 -#define GRB_MIPFOCUS_BESTBOUND 3 -#define GRB_BARORDER_AUTOMATIC -1 -#define GRB_BARORDER_AMD 0 +#define GRB_MIPFOCUS_OPTIMALITY 2 +#define GRB_MIPFOCUS_BESTBOUND 3 +#define GRB_BARORDER_AUTOMATIC -1 +#define GRB_BARORDER_AMD 0 #define GRB_BARORDER_NESTEDDISSECTION 1 -#define GRB_SIMPLEXPRICING_AUTO -1 -#define GRB_SIMPLEXPRICING_PARTIAL 0 -#define GRB_SIMPLEXPRICING_STEEPEST_EDGE 1 -#define GRB_SIMPLEXPRICING_DEVEX 2 -#define GRB_SIMPLEXPRICING_STEEPEST_QUICK 3 -#define GRB_VARBRANCH_AUTO -1 +#define GRB_SIMPLEXPRICING_AUTO -1 +#define GRB_SIMPLEXPRICING_PARTIAL 0 +#define GRB_SIMPLEXPRICING_STEEPEST_EDGE 1 +#define GRB_SIMPLEXPRICING_DEVEX 2 +#define GRB_SIMPLEXPRICING_STEEPEST_QUICK 3 +#define GRB_VARBRANCH_AUTO -1 #define GRB_VARBRANCH_PSEUDO_REDUCED 0 -#define GRB_VARBRANCH_PSEUDO_SHADOW 1 -#define GRB_VARBRANCH_MAX_INFEAS 2 -#define GRB_VARBRANCH_STRONG 3 -#define GRB_PARTITION_EARLY 16 +#define GRB_VARBRANCH_PSEUDO_SHADOW 1 +#define GRB_VARBRANCH_MAX_INFEAS 2 +#define GRB_VARBRANCH_STRONG 3 +#define GRB_PARTITION_EARLY 16 #define GRB_PARTITION_ROOTSTART 8 -#define GRB_PARTITION_ROOTEND 4 -#define GRB_PARTITION_NODES 2 -#define GRB_PARTITION_CLEANUP 1 +#define GRB_PARTITION_ROOTEND 4 +#define GRB_PARTITION_NODES 2 +#define GRB_PARTITION_CLEANUP 1 #define GRB_BATCH_STATUS_UNKNOWN 0 -#define GRB_BATCH_CREATED 1 -#define GRB_BATCH_SUBMITTED 2 -#define GRB_BATCH_ABORTED 3 -#define GRB_BATCH_FAILED 4 -#define GRB_BATCH_COMPLETED 5 +#define GRB_BATCH_CREATED 1 +#define GRB_BATCH_SUBMITTED 2 +#define GRB_BATCH_ABORTED 3 +#define GRB_BATCH_FAILED 4 +#define GRB_BATCH_COMPLETED 5 } // namespace operations_research #endif // OR_TOOLS_LINEAR_SOLVER_GUROBI_ENVIRONMENT_H_ diff --git a/ortools/linear_solver/gurobi_proto_solver.cc b/ortools/linear_solver/gurobi_proto_solver.cc index 5ae32556cf..2dde7394c2 100644 --- a/ortools/linear_solver/gurobi_proto_solver.cc +++ b/ortools/linear_solver/gurobi_proto_solver.cc @@ -523,4 +523,3 @@ absl::StatusOr GurobiSolveProto( } } // namespace operations_research - diff --git a/ortools/linear_solver/linear_solver.cc b/ortools/linear_solver/linear_solver.cc index 67ffb068f0..51bc7d0d98 100644 --- a/ortools/linear_solver/linear_solver.cc +++ b/ortools/linear_solver/linear_solver.cc @@ -1512,10 +1512,10 @@ bool MPSolver::ExportModelAsLpFormat(bool obfuscate, bool MPSolver::ExportModelAsMpsFormat(bool fixed_format, bool obfuscate, std::string* model_str) const { -// if (fixed_format) { -// LOG_EVERY_N_SEC(WARNING, 10) -// << "Fixed format is deprecated. Using free format instead."; -// + // if (fixed_format) { + // LOG_EVERY_N_SEC(WARNING, 10) + // << "Fixed format is deprecated. Using free format instead."; + // MPModelProto proto; ExportModelToProto(&proto); diff --git a/ortools/linear_solver/linear_solver.h b/ortools/linear_solver/linear_solver.h index fc80d36ebd..7f678a84ea 100644 --- a/ortools/linear_solver/linear_solver.h +++ b/ortools/linear_solver/linear_solver.h @@ -590,7 +590,7 @@ class MPSolver { */ bool ExportModelAsLpFormat(bool obfuscate, std::string* model_str) const; bool ExportModelAsMpsFormat(bool fixed_format, bool obfuscate, - std::string* model_str) const; + std::string* model_str) const; /** * Sets the number of threads to use by the underlying solver. @@ -795,7 +795,7 @@ class MPSolver { // Supports search and loading Gurobi shared library. static bool LoadGurobiSharedLibrary(); - static void SetGurobiLibraryPath(const std::string &full_library_path); + static void SetGurobiLibraryPath(const std::string& full_library_path); friend class GLPKInterface; friend class CLPInterface; diff --git a/ortools/linear_solver/samples/bin_packing_mip.cc b/ortools/linear_solver/samples/bin_packing_mip.cc index 241015a7ee..9449561066 100644 --- a/ortools/linear_solver/samples/bin_packing_mip.cc +++ b/ortools/linear_solver/samples/bin_packing_mip.cc @@ -41,8 +41,7 @@ void BinPackingMip() { // [START solver] // Create the mip solver with the CBC backend. - MPSolver solver("bin_packing_mip", - MPSolver::CBC_MIXED_INTEGER_PROGRAMMING); + MPSolver solver("bin_packing_mip", MPSolver::CBC_MIXED_INTEGER_PROGRAMMING); // [END solver] // [START program_part2] diff --git a/ortools/linear_solver/samples/integer_programming_example.cc b/ortools/linear_solver/samples/integer_programming_example.cc index 8ffe27e851..721a908707 100644 --- a/ortools/linear_solver/samples/integer_programming_example.cc +++ b/ortools/linear_solver/samples/integer_programming_example.cc @@ -14,6 +14,7 @@ // [START program] // [START import] #include + #include "ortools/linear_solver/linear_solver.h" // [END import] diff --git a/ortools/linear_solver/samples/linear_programming_example.cc b/ortools/linear_solver/samples/linear_programming_example.cc index e0f6d230df..91fce13002 100644 --- a/ortools/linear_solver/samples/linear_programming_example.cc +++ b/ortools/linear_solver/samples/linear_programming_example.cc @@ -14,6 +14,7 @@ // [START program] // [START import] #include + #include "ortools/linear_solver/linear_solver.h" // [END import] diff --git a/ortools/linear_solver/scip_interface.cc b/ortools/linear_solver/scip_interface.cc index 1950340f18..cb6e7c0048 100644 --- a/ortools/linear_solver/scip_interface.cc +++ b/ortools/linear_solver/scip_interface.cc @@ -206,12 +206,12 @@ void SCIPInterface::DeleteSCIP() { scip_ = nullptr; } -#define RETURN_IF_ALREADY_IN_ERROR_STATE \ - do { \ - if (!status_.ok()) { \ +#define RETURN_IF_ALREADY_IN_ERROR_STATE \ + do { \ + if (!status_.ok()) { \ LOG_EVERY_N(INFO, 10) << "Early abort: SCIP is in error state."; \ - return; \ - } \ + return; \ + } \ } while (false) #define RETURN_AND_STORE_IF_SCIP_ERROR(x) \ @@ -807,7 +807,8 @@ void SCIPInterface::SetPrimalTolerance(double value) { // setting numerics/lpfeastol first we avoid this unwanted log. // double current_lpfeastol = 0.0; // CHECK_EQ(SCIP_OKAY, - // SCIPgetRealParam(scip_, "numerics/lpfeastol", ¤t_lpfeastol)); + // SCIPgetRealParam(scip_, "numerics/lpfeastol", + // ¤t_lpfeastol)); // if (value < current_lpfeastol) { // // See the NOTE on SetRelativeMipGap(). // const auto status = diff --git a/ortools/linear_solver/xpress_interface.cc b/ortools/linear_solver/xpress_interface.cc index 876a3c8d8f..00abeb2889 100644 --- a/ortools/linear_solver/xpress_interface.cc +++ b/ortools/linear_solver/xpress_interface.cc @@ -16,9 +16,9 @@ #if defined(USE_XPRESS) #include -#include #include #include +#include #include "absl/strings/str_format.h" #include "ortools/base/integral_types.h" @@ -259,7 +259,7 @@ class XpressInterface : public MPSolverInterface { int init_xpress_env(int xpress_oem_license_key = 0) { int code; - const char* xpress_from_env = getenv("XPRESS"); + const char *xpress_from_env = getenv("XPRESS"); std::string xpresspath; if (xpress_from_env == nullptr) { @@ -272,13 +272,13 @@ int init_xpress_env(int xpress_oem_license_key = 0) { // need to remove the enclosing '\"' from the string itself. path.erase(std::remove(path.begin(), path.end(), '\"'), path.end()); xpresspath = path + "\\bin"; -#else // _MSC_VER +#else // _MSC_VER xpresspath = path + "/bin"; #endif // _MSC_VER #else - LOG(WARNING) - << "XpressInterface Error : Environment variable XPRESS undefined.\n"; - return -1; + LOG(WARNING) + << "XpressInterface Error : Environment variable XPRESS undefined.\n"; + return -1; #endif } else { xpresspath = xpress_from_env; @@ -297,7 +297,7 @@ int init_xpress_env(int xpress_oem_license_key = 0) { XPRSgetbanner(banner); LOG(WARNING) << "XpressInterface : Xpress banner :\n" - << banner << std::endl; + << banner << std::endl; return 0; } else { char errmsg[256]; diff --git a/ortools/lp_data/mps_reader.h b/ortools/lp_data/mps_reader.h index 3daede6489..de88fd6c3c 100644 --- a/ortools/lp_data/mps_reader.h +++ b/ortools/lp_data/mps_reader.h @@ -35,7 +35,6 @@ #include "absl/strings/numbers.h" #include "absl/strings/str_cat.h" #include "absl/strings/str_split.h" -#include "ortools/base/protobuf_util.h" #include "ortools/base/commandlineflags.h" #include "ortools/base/filelineiter.h" #include "ortools/base/hash.h" @@ -44,6 +43,7 @@ #include "ortools/base/logging.h" #include "ortools/base/macros.h" // for DISALLOW_COPY_AND_ASSIGN, NULL #include "ortools/base/map_util.h" +#include "ortools/base/protobuf_util.h" #include "ortools/base/status_macros.h" #include "ortools/base/statusor.h" #include "ortools/linear_solver/linear_solver.pb.h" diff --git a/ortools/sat/cp_model_solver.cc b/ortools/sat/cp_model_solver.cc index 442f455511..f745d0b2a4 100644 --- a/ortools/sat/cp_model_solver.cc +++ b/ortools/sat/cp_model_solver.cc @@ -3104,7 +3104,7 @@ CpSolverResponse SolveCpModel(const CpModelProto& model_proto, Model* model) { #if defined(__PORTABLE_PLATFORM__) if (/* DISABLES CODE */ (false)) { // We ignore the multithreading parameter in this case. -#else // __PORTABLE_PLATFORM__ +#else // __PORTABLE_PLATFORM__ if (params.num_search_workers() > 1 || params.interleave_search()) { SolveCpModelParallel(new_cp_model_proto, &shared_response_manager, &shared_time_limit, &wall_timer, model); diff --git a/ortools/sat/encoding.h b/ortools/sat/encoding.h index 77aff9b162..23ee1c678f 100644 --- a/ortools/sat/encoding.h +++ b/ortools/sat/encoding.h @@ -128,7 +128,8 @@ class EncodingNode { #if defined(_M_X64) && defined(_DEBUG) // In debug std::Vector is 32 -static_assert(sizeof(EncodingNode) == 72, "ERROR_EncodingNode_is_not_well_compacted"); +static_assert(sizeof(EncodingNode) == 72, + "ERROR_EncodingNode_is_not_well_compacted"); #else // Note that we use <= because on 32 bits architecture, the size will actually // be smaller than 64 bytes. diff --git a/ortools/sat/optimization.cc b/ortools/sat/optimization.cc index 5390af10b8..4637edf391 100644 --- a/ortools/sat/optimization.cc +++ b/ortools/sat/optimization.cc @@ -1960,7 +1960,7 @@ SatSolver::Status MinimizeWithHittingSetAndLazyEncoding( } return result; -#else // !__PORTABLE_PLATFORM__ && USE_SCIP +#else // !__PORTABLE_PLATFORM__ && USE_SCIP LOG(FATAL) << "Not supported."; #endif // !__PORTABLE_PLATFORM__ && USE_SCIP } diff --git a/ortools/sat/restart.cc b/ortools/sat/restart.cc index a530bc39fc..355f561275 100644 --- a/ortools/sat/restart.cc +++ b/ortools/sat/restart.cc @@ -63,7 +63,7 @@ void RestartPolicy::Reset() { << string_value << "'."; continue; } -#else // __PORTABLE_PLATFORM__ +#else // __PORTABLE_PLATFORM__ if (!SatParameters::RestartAlgorithm_Parse(string_value, &tmp)) { LOG(WARNING) << "Couldn't parse the RestartAlgorithm name: '" << string_value << "'."; diff --git a/ortools/sat/samples/stop_after_n_solutions_sample_sat.cc b/ortools/sat/samples/stop_after_n_solutions_sample_sat.cc index 49d2875dc3..87468bf30b 100644 --- a/ortools/sat/samples/stop_after_n_solutions_sample_sat.cc +++ b/ortools/sat/samples/stop_after_n_solutions_sample_sat.cc @@ -11,7 +11,6 @@ // See the License for the specific language governing permissions and // limitations under the License. - #include #include "ortools/sat/cp_model.h" diff --git a/ortools/sat/swig_helper.h b/ortools/sat/swig_helper.h index b575ef1dbd..774360f482 100644 --- a/ortools/sat/swig_helper.h +++ b/ortools/sat/swig_helper.h @@ -185,11 +185,10 @@ class SatHelper { } // Write the model proto to file. - static bool - WriteModelToFile(const operations_research::sat::CpModelProto &model_proto, - const std::string &filename) { - return file::SetTextProto(filename, model_proto, file::Defaults()) - .ok(); + static bool WriteModelToFile( + const operations_research::sat::CpModelProto& model_proto, + const std::string& filename) { + return file::SetTextProto(filename, model_proto, file::Defaults()).ok(); } }; diff --git a/ortools/util/zvector.h b/ortools/util/zvector.h index 60ab555e30..c9c6b6a12c 100644 --- a/ortools/util/zvector.h +++ b/ortools/util/zvector.h @@ -14,7 +14,7 @@ #ifndef OR_TOOLS_UTIL_ZVECTOR_H_ #define OR_TOOLS_UTIL_ZVECTOR_H_ -#if ( defined(__APPLE__) || defined(__FreeBSD__) ) && defined(__GNUC__) +#if (defined(__APPLE__) || defined(__FreeBSD__)) && defined(__GNUC__) #include #elif !defined(_MSC_VER) #include