From f83ca7d1c234b83107b90ff26a54ea77d9f14778 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Sat, 3 May 2025 18:36:58 +0200 Subject: [PATCH 1/3] Remove unnecessary compare implementations --- src/comparison.jl | 23 ++++++++++++++++------- src/default_polynomial.jl | 8 ++++---- src/sequences.jl | 2 +- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/comparison.jl b/src/comparison.jl index cfa9cb9f..322a7d1c 100644 --- a/src/comparison.jl +++ b/src/comparison.jl @@ -311,18 +311,16 @@ Base.@pure function Base.cmp(v1::AbstractVariable, v2::AbstractVariable) return -cmp(name(v1), name(v2)) end -function Base.cmp(m1::AbstractMonomial, m2::AbstractMonomial) - s1, s2 = promote_variables(m1, m2) - return cmp(ordering(m1)(), exponents(s1), exponents(s2)) +function Base.:(==)(m1::AbstractMonomialLike, m2::AbstractMonomialLike) + return iszero(cmp(m1, m2)) end -function compare( +function Base.cmp( m1::AbstractMonomial, m2::AbstractMonomial, - ::Type{O}, -) where {O<:AbstractMonomialOrdering} +) s1, s2 = promote_variables(m1, m2) - return cmp(O(), exponents(s1), exponents(s2)) + return cmp(ordering(m1)(), exponents(s1), exponents(s2)) end # Implement this to make coefficients be compared with terms. @@ -336,7 +334,14 @@ end # less than `b`, they are considered sort of equal. _cmp_coefficient(a, b) = 0 +<<<<<<< HEAD function Base.cmp(t1::AbstractTermLike, t2::AbstractTermLike) +======= +function Base.cmp( + t1::AbstractTermLike, + t2::AbstractTermLike, +) +>>>>>>> e84a75b (Remove unnecessary compare implementations) Δ = cmp(monomial(t1), monomial(t2)) if iszero(Δ) return _cmp_coefficient(coefficient(t1), coefficient(t2)) @@ -344,7 +349,11 @@ function Base.cmp(t1::AbstractTermLike, t2::AbstractTermLike) return Δ end +<<<<<<< HEAD Base.isless(t1::AbstractTermLike, t2::AbstractTermLike) = compare(t1, t2) < 0 +======= +Base.isless(t1::AbstractTermLike, t2::AbstractTermLike) = cmp(t1, t2) < 0 +>>>>>>> e84a75b (Remove unnecessary compare implementations) """ struct ExponentsIterator{M}( diff --git a/src/default_polynomial.jl b/src/default_polynomial.jl index a7b45bf6..a02c1130 100644 --- a/src/default_polynomial.jl +++ b/src/default_polynomial.jl @@ -93,7 +93,7 @@ Base.one(p::Polynomial) = one(typeof(p)) Base.zero(::Type{Polynomial{C,T,A}}) where {C,T,A} = Polynomial{C,T,A}(A()) Base.zero(t::Polynomial) = zero(typeof(t)) -compare_monomials(a, b) = compare(monomial(a), monomial(b)) +compare_monomials(a, b) = cmp(monomial(a), monomial(b)) function join_terms( terms1::AbstractArray{<:Term}, @@ -294,7 +294,7 @@ function __polynomial_merge!( if tp isa Int && j isa Int tp = get1(tp) end - compare(monomial(*(monomials(q)[j], monomial.(t)...)), monomial(tp)) + cmp(monomial(*(monomials(q)[j], monomial.(t)...)), monomial(tp)) end end get2 = let t = t, q = q @@ -385,7 +385,7 @@ function __polynomial_merge!( if tp isa Int && j isa Int tp = get1(tp) end - compare(monomial(monomial(t) * monomials(q)[j]), monomial(tp)) + cmp(monomial(monomial(t) * monomials(q)[j]), monomial(tp)) end end get2 = let t = t, q = q @@ -460,7 +460,7 @@ function __polynomial_merge!( if t isa Int && j isa Int t = get1(t) end - compare(monomials(q)[j], monomial(t)) + cmp(monomials(q)[j], monomial(t)) end end get2 = let q = q diff --git a/src/sequences.jl b/src/sequences.jl index deee5c12..6106e65c 100644 --- a/src/sequences.jl +++ b/src/sequences.jl @@ -18,7 +18,7 @@ function merge_sorted!( while i1 <= lastindex(v1) && i2 <= lastindex(v2) x1 = v1[i1] x2 = v2[i2] - Δ = compare(x1, x2) + Δ = cmp(x1, x2) if Δ < 0 if filter(x1) result[i] = x1 From ca0554ecdc2b910acf8c66dbe674f6b579f3ed52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Fri, 16 May 2025 14:41:45 +0200 Subject: [PATCH 2/3] Fix merge --- src/comparison.jl | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/comparison.jl b/src/comparison.jl index 322a7d1c..65255af6 100644 --- a/src/comparison.jl +++ b/src/comparison.jl @@ -334,14 +334,7 @@ end # less than `b`, they are considered sort of equal. _cmp_coefficient(a, b) = 0 -<<<<<<< HEAD function Base.cmp(t1::AbstractTermLike, t2::AbstractTermLike) -======= -function Base.cmp( - t1::AbstractTermLike, - t2::AbstractTermLike, -) ->>>>>>> e84a75b (Remove unnecessary compare implementations) Δ = cmp(monomial(t1), monomial(t2)) if iszero(Δ) return _cmp_coefficient(coefficient(t1), coefficient(t2)) @@ -349,11 +342,7 @@ function Base.cmp( return Δ end -<<<<<<< HEAD -Base.isless(t1::AbstractTermLike, t2::AbstractTermLike) = compare(t1, t2) < 0 -======= Base.isless(t1::AbstractTermLike, t2::AbstractTermLike) = cmp(t1, t2) < 0 ->>>>>>> e84a75b (Remove unnecessary compare implementations) """ struct ExponentsIterator{M}( From eac3c485ca7d89a87756509722f6efcfddd44a53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Sun, 18 May 2025 11:06:08 +0200 Subject: [PATCH 3/3] Fix format --- src/comparison.jl | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/comparison.jl b/src/comparison.jl index 65255af6..430533a8 100644 --- a/src/comparison.jl +++ b/src/comparison.jl @@ -315,10 +315,7 @@ function Base.:(==)(m1::AbstractMonomialLike, m2::AbstractMonomialLike) return iszero(cmp(m1, m2)) end -function Base.cmp( - m1::AbstractMonomial, - m2::AbstractMonomial, -) +function Base.cmp(m1::AbstractMonomial, m2::AbstractMonomial) s1, s2 = promote_variables(m1, m2) return cmp(ordering(m1)(), exponents(s1), exponents(s2)) end