Skip to content

Commit 8f4faec

Browse files
authored
Merge pull request #1081 from mewilhel/master
Fix is_canonical for SQF, VQF
2 parents f65912f + 5eef18c commit 8f4faec

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

src/Utilities/functions.jl

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -364,17 +364,29 @@ function unsafe_add(t1::VT, t2::VT) where VT <: Union{MOI.VectorAffineTerm,
364364
end
365365

366366
"""
367-
is_canonical(f::Union{ScalarAffineFunction, ScalarQuadraticFunction
368-
VectorAffineFunction, VectorQuadraticTerm})
367+
is_canonical(f::Union{ScalarAffineFunction, VectorAffineFunction})
369368
370369
Returns a Bool indicating whether the function is in canonical form.
371370
See [`canonical`](@ref).
372371
"""
373-
function is_canonical(f::Union{SAF, VAF, SQF, VQF})
372+
function is_canonical(f::Union{SAF, VAF})
374373
is_strictly_sorted(f.terms, MOI.term_indices,
375374
t -> !iszero(MOI.coefficient(t)))
376375
end
377376

377+
"""
378+
is_canonical(f::Union{ScalarQuadraticFunction, VectorQuadraticFunction})
379+
380+
Returns a Bool indicating whether the function is in canonical form.
381+
See [`canonical`](@ref).
382+
"""
383+
function is_canonical(f::Union{SQF, VQF})
384+
v = is_strictly_sorted(f.affine_terms, MOI.term_indices,
385+
t -> !iszero(MOI.coefficient(t)))
386+
v &= is_strictly_sorted(f.quadratic_terms, MOI.term_indices,
387+
t -> !iszero(MOI.coefficient(t)))
388+
end
389+
378390
"""
379391
is_strictly_sorted(x::AbstractVector, by, filter)
380392

0 commit comments

Comments
 (0)