From fa864e196df8a0b8cb6b5c8342750b493b963b09 Mon Sep 17 00:00:00 2001 From: n0rbed Date: Wed, 14 Aug 2024 20:40:25 +0300 Subject: [PATCH] groebner bug and correct solve_for deprecation --- ext/SymbolicsGroebnerExt.jl | 10 ++++++++++ src/linear_algebra.jl | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ext/SymbolicsGroebnerExt.jl b/ext/SymbolicsGroebnerExt.jl index ea6c0579d..9d3c0ee0a 100644 --- a/ext/SymbolicsGroebnerExt.jl +++ b/ext/SymbolicsGroebnerExt.jl @@ -91,7 +91,13 @@ function Symbolics.solve_multivar(eqs::Vector, vars::Vector{Num}; dropmultiplici for i = 1:(old_len) eq += BigInt(rand(-n_iterations:n_iterations))*vars[i] end + + if isequal(eq, new_var) + continue + end + push!(new_eqs, eq) + new_eqs = convert(Vector{Any}, Symbolics.groebner_basis(new_eqs, ordering=Lex(vars))) if length(new_eqs) <= length(vars) @@ -102,6 +108,10 @@ function Symbolics.solve_multivar(eqs::Vector, vars::Vector{Num}; dropmultiplici generating |= all(Symbolics.degree(var) > 1 for var in Symbolics.get_variables(new_eqs[i])) end + if isequal(new_eqs[1], new_var) + generating = true + end + n_iterations += 1 end diff --git a/src/linear_algebra.jl b/src/linear_algebra.jl index 4ea268265..a91e5c8f9 100644 --- a/src/linear_algebra.jl +++ b/src/linear_algebra.jl @@ -67,7 +67,7 @@ function A_b(eqs::AbstractArray, vars::AbstractArray, check) A, b end -function solve_for(eq::Any, var::Any) +function solve_for(eq::Any, var::Any; simplify=false, check=true) Base.depwarn("solve_for is deprecated, please use symbolic_linear_solve instead.", :solve_for, force=true) return symbolic_linear_solve(eq, var) end