-
Notifications
You must be signed in to change notification settings - Fork 94
Closed
Description
is_canonical is currently references a terms field in it's definition which doesn't exist for quadratic functions. See below:
"""
is_canonical(f::Union{ScalarAffineFunction, ScalarQuadraticFunction
VectorAffineFunction, VectorQuadraticTerm})
Returns a Bool indicating whether the function is in canonical form.
See [`canonical`](@ref).
"""
function is_canonical(f::Union{SAF, VAF, SQF, VQF})
is_strictly_sorted(f.terms, MOI.term_indices,
t -> !iszero(MOI.coefficient(t)))
end
Probably need to split the function definition as follows:
function is_canonical(f::Union{SAF, VAF})
is_strictly_sorted(f.terms, MOI.term_indices,
t -> !iszero(MOI.coefficient(t)))
end
function is_canonical(f::Union{SQF, VQF})
v = is_strictly_sorted(f.affine_terms, MOI.term_indices, t -> !iszero(MOI.coefficient(t)))
v && is_strictly_sorted(f.quadratic_terms, MOI.term_indices, t -> !iszero(MOI.coefficient(t)))
end