@@ -1150,19 +1150,11 @@ function MOI.set(
1150
1150
return
1151
1151
end
1152
1152
1153
- function MOI. get (
1154
- model:: Optimizer ,
1155
- :: MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}} ,
1156
- )
1157
- if model. objective_type == _SCALAR_QUADRATIC
1158
- error (
1159
- " Unable to get objective function. Currently: " *
1160
- " $(model. objective_type) ." ,
1161
- )
1162
- end
1153
+ function _get_affine_objective (model:: Optimizer ; is_multiobjective:: Bool )
1163
1154
_update_if_necessary (model)
1164
1155
dest = zeros (length (model. variable_info))
1165
- ret = GRBgetdblattrarray (model, " Obj" , 0 , length (dest), dest)
1156
+ name = is_multiobjective ? " ObjN" : " Obj"
1157
+ ret = GRBgetdblattrarray (model, name, 0 , length (dest), dest)
1166
1158
_check_ret (model, ret)
1167
1159
terms = MOI. ScalarAffineTerm{Float64}[]
1168
1160
for (index, info) in model. variable_info
@@ -1171,11 +1163,25 @@ function MOI.get(
1171
1163
push! (terms, MOI. ScalarAffineTerm (coefficient, index))
1172
1164
end
1173
1165
constant = Ref {Cdouble} ()
1174
- ret = GRBgetdblattr (model, " ObjCon" , constant)
1166
+ name = is_multiobjective ? " ObjNCon" : " ObjCon"
1167
+ ret = GRBgetdblattr (model, name, constant)
1175
1168
_check_ret (model, ret)
1176
1169
return MOI. ScalarAffineFunction (terms, constant[])
1177
1170
end
1178
1171
1172
+ function MOI. get (
1173
+ model:: Optimizer ,
1174
+ :: MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}} ,
1175
+ )
1176
+ if model. objective_type == _SCALAR_QUADRATIC
1177
+ error (
1178
+ " Unable to get objective function. Currently: " *
1179
+ " $(model. objective_type) ." ,
1180
+ )
1181
+ end
1182
+ return _get_affine_objective (model; is_multiobjective = false )
1183
+ end
1184
+
1179
1185
function MOI. set (
1180
1186
model:: Optimizer ,
1181
1187
:: MOI.ObjectiveFunction{F} ,
0 commit comments