Skip to content
This repository was archived by the owner on Jun 14, 2020. It is now read-only.

Commit 3a7ef89

Browse files
committed
Implements ObjectiveFunctionType
1 parent db4ddde commit 3a7ef89

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

src/objective.jl

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,21 @@ function MOI.supports(model::LinQuadOptimizer, ::MOI.ObjectiveFunction{F}) where
9999
return F in supported_objectives(model)
100100
end
101101

102+
function MOI.get(model::LinQuadOptimizer, ::MOI.ObjectiveFunctionType)
103+
if model.obj_type == SingleVariableObjective
104+
return MOI.SingleVariable
105+
elseif model.obj_type == AffineObjective
106+
return MOI.ScalarAffineFunction{Float64}
107+
else
108+
@assert model.obj_type == QuadraticObjective
109+
return MOI.ScalarQuadraticFunction{Float64}
110+
end
111+
end
112+
102113
function MOI.get(model::LinQuadOptimizer, ::MOI.ObjectiveFunction{MOI.SingleVariable})
103114
if model.obj_type != SingleVariableObjective
104115
if VERSION >= v"0.7-"
105-
throw(InexactError(:convert, SingleVariableObjective, model.obj_type))
116+
throw(InexactError(:convert, SingleVariableObjective, model.obj_type))
106117
else
107118
throw(InexactError())
108119
end
@@ -140,7 +151,7 @@ function MOI.get(model::LinQuadOptimizer, ::MOI.ObjectiveFunction{Quad})
140151
if model.obj_type == QuadraticObjective
141152
Q = get_quadratic_terms_objective(model)
142153
rows = rowvals(Q)
143-
coefficients = nonzeros(Q)
154+
coefficients = nonzeros(Q)
144155
sizehint!(quadratic_terms, length(coefficients))
145156
for (column, variable) in enumerate(model.variable_references)
146157
for j in nzrange(Q, column)

0 commit comments

Comments
 (0)