Skip to content

Commit

Permalink
Update for changes discussed in JuliaAlgebra/DynamicPolynomials.jl#121
Browse files Browse the repository at this point in the history
- Macro for complex variables is now called `@complex_polyvar`
- DP does not support partial substitutions, so disable the tests
  • Loading branch information
projekter committed May 13, 2024
1 parent 05574bb commit 348c351
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 5 deletions.
4 changes: 3 additions & 1 deletion src/complex.jl
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,9 @@ for fun in [:real, :imag]
iszero(x) &&
return zero(polynomial_type(x, real(coefficient_type(x))))
# We replace every complex variable by its decomposition into real and imaginary part
subst_vars = filter(Base.:! isreal, variables(x))
subst_vars = unique(
ordinary_variable(v) for v in variables(x) if !isreal(v)
)
# To avoid a stack overflow on promote_type, we'll handle the empty case separately
full_version =
isempty(subst_vars) ? polynomial(x) :
Expand Down
2 changes: 1 addition & 1 deletion test/commutativetests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ include("polynomial.jl")
include("det.jl")

include("rational.jl")
isdefined(Mod, Symbol("@polycvar")) && include("complex.jl")
isdefined(Mod, Symbol("@complex_polyvar")) && include("complex.jl")

include("promote.jl")
include("hash.jl")
Expand Down
6 changes: 3 additions & 3 deletions test/complex.jl
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
@test isreal(a^3 + 5a^2 + 4a)
@test !isreal(a^3 + 5im * a^2 + 4a)

Mod.@polycvar x y
Mod.@complex_polyvar x y
@test !isreal(x)
@test !isrealpart(x) &&
!isrealpart(conj(x)) &&
Expand Down Expand Up @@ -73,9 +73,9 @@

@test subs(4x + 8y^2 - 6x^3, [x, y] => [2 + 4im, 9 - im]) ==
(1176 - 32im) * x^0
@test subs(4x + 8y^2 - 6x^3, [x, conj(y)] => [2 + 4im, 9 - im]) ==
@test_broken subs(4x + 8y^2 - 6x^3, [x, conj(y)] => [2 + 4im, 9 - im]) ==
(1176 + 256im) * x^0
@test_broken subs(4x + 8y^2 - 6x^3, [x, real(y)] => [2 + 4im, 9])
@test subs(4x + 8y^2 - 6x^3, [x, real(y)] => [2 + 4im, 9 + 0 * x^0]) ==
@test_broken subs(4x + 8y^2 - 6x^3, [x, real(y)] => [2 + 4im, 9 + 0 * x^0]) ==
1184 + 112im + 144im * imag(y) - 8imag(y)^2
end

0 comments on commit 348c351

Please sign in to comment.