21 MPModelProto* output) {
23 output->set_name(
input.name());
24 output->set_maximize(
input.IsMaximizationProblem());
25 output->set_objective_offset(
input.objective_offset());
27 MPVariableProto* variable = output->add_variable();
28 variable->set_lower_bound(
input.variable_lower_bounds()[
col]);
29 variable->set_upper_bound(
input.variable_upper_bounds()[
col]);
30 variable->set_name(
input.GetVariableName(
col));
31 variable->set_is_integer(
input.IsVariableInteger(
col));
32 variable->set_objective_coefficient(
input.objective_coefficients()[
col]);
39 MPConstraintProto* constraint = output->add_constraint();
40 constraint->set_lower_bound(
input.constraint_lower_bounds()[
row]);
41 constraint->set_upper_bound(
input.constraint_upper_bounds()[
row]);
42 constraint->set_name(
input.GetConstraintName(
row));
44 constraint->add_var_index(e.row().value());
45 constraint->add_coefficient(e.coefficient());
58 for (
int i = 0; i <
input.variable_size(); ++i) {
59 const MPVariableProto&
var =
input.variable(i);
64 if (
var.is_integer()) {
68 for (
int j = 0; j <
input.constraint_size(); ++j) {
69 const MPConstraintProto& cst =
input.constraint(j);
75 CHECK_EQ(cst.var_index_size(), cst.coefficient_size());
76 for (
int k = 0; k < cst.var_index_size(); ++k) {