Open linwaytin opened 3 years ago
Welcome @linwaytin. The rule your suggesting was proposed in this PR: https://github.com/JuliaSymbolics/SymbolicUtils.jl/pull/55 that never got finished. Would you be interested in trying to help get that PR moving again?
If you'd like, we can arrange a time to talk sometime and I can try to help show you the basics of what's required to get it mergeable.
I think a nice way to do https://github.com/JuliaSymbolics/SymbolicUtils.jl/pull/55 is to have general polynomial factorization rather than to use rules... Although that's not an easy beginner issue, it is an interesting one if you're looking for a challenge.
Another big-ish project is to implement integration https://dspace.mit.edu/handle/1721.1/11997 -- this phd thesis is actually very fun to read, and spends a lot of time introducing and building up a symbolic algebra system.
Hi @MasonProtter and @shashi
I didn't notice there has been a ongoing work on this issue. It's a good idea to finish #55. However, after reading the code in #55, listing all rules for powers seems not a good idea to me know. As @shashi said, probably we should consider a general factorization scheme, instead of listing all possible rules (I don't even know if they are finite.) The above are my naive thoughts.
@shashi I gave a quick look at the thesis. Is the idea similar to the rule-based-integration?
After doing some search, I can see a general factorization algorithm is not easy, so it may be a good idea to implement some simple things first.
RUBI is useful, but you need something like what's in the thesis first. Then you can plug in RUBI rules to make it do more.
Is RUBI based on the heuristic method proposed in the thesis?
I think this is an interesting approach to do symbolic integrals, but it seems advanced and I think I should not try this at the beginning.
Also, since SymbolicUtils.jl
is meant for facilitating a full CAS, I would like to focus on the basic functions like simplify
first.
I think a good approach getting started would be to just try and cook up simplifications that you know Sympy and Mathematica can do and then see if there are simple, cheap rules you can introduce that will fix the issue.
@shashi I think general factorization utility would be great, but it might actually be worth special casing binomial factorization, at least for the time being as it might be cheaper than calling out to a more general factorization routine. But yeah, maybe this isn't the best place to start.
I think trigonometric rules are a great place to look for places to contribute. Maybe you could help out with https://github.com/JuliaSymbolics/SymbolicUtils.jl/pull/158 ?
Hi community,
This project and the related
Symbolics.jl
are promising! I would like to give some help and also learn some computer algebra. How should I get started?I noticed the
simplify
function in bothSymbolicUtils
andSymbolics
cannot handlex^2+y^2+2xy=(x+y)^2
by default, but this can be fixed easily by the powerful rewriting system. Is there a reason to leave it in that state?Thanks.