From 501bfcf61d8a3bb4c42ba3f83123dffbe6a9655e Mon Sep 17 00:00:00 2001 From: Aayush Sabharwal Date: Wed, 27 Aug 2025 12:02:50 +0530 Subject: [PATCH] fix: fix GCD of complex coefficient polynomials --- src/gcd.jl | 7 +++++++ test/commutative/gcd.jl | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/src/gcd.jl b/src/gcd.jl index 1d615355..793b69e1 100644 --- a/src/gcd.jl +++ b/src/gcd.jl @@ -959,6 +959,13 @@ function primitive_part( ) return p end +function primitive_part( + p::_APL{<:Complex{<:AbstractFloat}}, + ::AbstractUnivariateGCDAlgorithm, + ::MA.MutableTrait, +) + return p +end """ primitive_part_content(poly::AbstractPolynomialLike{T}, algo::AbstractUnivariateGCDAlgorithm) where {T} diff --git a/test/commutative/gcd.jl b/test/commutative/gcd.jl index 0b791639..c5c43a00 100644 --- a/test/commutative/gcd.jl +++ b/test/commutative/gcd.jl @@ -305,5 +305,10 @@ end p2 = MP.polynomial(p * q, ComplexF64) g = @inferred gcd(p1, p2) @test isone(g) + + p1 = p - 2.5im + p2 = 2.0p - 5.0im + g = @inferred gcd(p1, p2) + @test isequal(p1, g) || isequal(p2, g) end end