@@ -237,7 +237,7 @@ function Base.write(io::IO, model::Model)
237
237
write_rhs (io, model, obj_const)
238
238
write_ranges (io, model)
239
239
write_bounds (io, model, var_to_column)
240
- write_quadobj (io, model, var_to_column)
240
+ write_quadobj (io, model, flip_obj, var_to_column)
241
241
if options. quadratic_format != kQuadraticFormatCPLEX
242
242
# Gurobi needs qcons _after_ quadobj and _before_ SOS.
243
243
write_quadcons (io, model, var_to_column)
805
805
# QUADRATIC OBJECTIVE
806
806
# ==============================================================================
807
807
808
- function write_quadobj (io:: IO , model:: Model , var_to_column)
808
+ function write_quadobj (io:: IO , model:: Model , flip_obj :: Bool , var_to_column)
809
809
f = _get_objective (model)
810
810
if isempty (f. quadratic_terms)
811
811
return
@@ -822,6 +822,7 @@ function write_quadobj(io::IO, model::Model, var_to_column)
822
822
_write_q_matrix (
823
823
io,
824
824
model,
825
+ flip_obj,
825
826
f,
826
827
var_to_column;
827
828
duplicate_off_diagonal = options. quadratic_format ==
833
834
function _write_q_matrix (
834
835
io:: IO ,
835
836
model:: Model ,
837
+ flip_obj:: Bool ,
836
838
f,
837
839
var_to_column;
838
840
duplicate_off_diagonal:: Bool ,
@@ -861,15 +863,13 @@ function _write_q_matrix(
861
863
)
862
864
x_name = _var_name (model, x, var_to_column[x], options. generic_names)
863
865
y_name = _var_name (model, y, var_to_column[y], options. generic_names)
864
- println (
865
- io,
866
- Card (f2 = x_name, f3 = y_name, f4 = _to_string (terms[(x, y)])),
867
- )
866
+ coef = terms[(x, y)]
867
+ if flip_obj
868
+ coef *= - 1
869
+ end
870
+ println (io, Card (f2 = x_name, f3 = y_name, f4 = _to_string (coef)))
868
871
if x != y && duplicate_off_diagonal
869
- println (
870
- io,
871
- Card (f2 = y_name, f3 = x_name, f4 = _to_string (terms[(x, y)])),
872
- )
872
+ println (io, Card (f2 = y_name, f3 = x_name, f4 = _to_string (coef)))
873
873
end
874
874
end
875
875
return
@@ -899,6 +899,7 @@ function write_quadcons(io::IO, model::Model, var_to_column)
899
899
_write_q_matrix (
900
900
io,
901
901
model,
902
+ false , # flip_obj
902
903
f,
903
904
var_to_column;
904
905
duplicate_off_diagonal = options. quadratic_format !=
0 commit comments