Symbolics.jl icon indicating copy to clipboard operation
Symbolics.jl copied to clipboard

Tracking issue for Gruntz's limit algorithm's dependencies

Open LilithHafner opened this issue 4 months ago • 1 comments

The symbolic limit algorithm described here has a couple components/dependencies that are useful as standalone functionality. This issue tracks support of those components

  • [ ] Zero equivalence testing (is this expression equal to zero) (maybe iszero(simplify(_, expand=true))?)
  • [ ] Series expansion
  • [ ] The Gruntz limit algorithm itself

I suspect that this functionality can be (and therefore probably should be) implemented with dependence only on SymbolicUtils, not Symbolics itself and therefore defined in a separate package that Symbolics re-exports.

LilithHafner avatar Feb 28 '24 14:02 LilithHafner

iszero and simplify do not successfully perform zero equivalence testing. For example

julia> @syms x::Real
(x,)

julia> expr = exp((x+1)*x - x*x-x)-1
-1 + exp(-x - (x^2) + (1 + x)*x)

julia> simpl1 = simplify(expr, expand=false)
-1 + exp(0)

julia> simpl2 = simplify(expr, expand=true)
-1 + exp(0)

julia> iszero(simpl1)
(-1 + exp(0)) == 0

LilithHafner avatar Feb 28 '24 20:02 LilithHafner