On Wed, 30 Dec 2020 at 19:47, אוריאל מליחי <[email protected]> wrote: > > > Okay, well if you want this to be included in sympy I suggest to begin. > > by making some specific proposals either here or in github issues. We > > should agree the basic ideas before too much work is done. Of course > > you don't have to implement all the proposals but we should agree what > > makes sense as part of sympy even if your project is only a part of > > what we would want. > > > Where possible it is best to improve the implementation of existing > > API functions rather than introduce new ones but there certainly are > > reasons for wanting some new functions for working with inequalities: > > exactly what those new functions would be is the part that needs to be > > agreed if this is to be included in sympy. > > > I would say that eliminating one or more variables from a system of > > inequalities is very useful and there is e.g. Fourier-Motzkin > > elimination > > https://en.wikipedia.org/wiki/Fourier%E2%80%93Motzkin_elimination > > as well as linear programming: > > https://en.wikipedia.org/wiki/Linear_programming > > > Actually one of the most useful things at least for internal use in > > sympy would be being able to ask whether an inequality is implied by a > > collection of inequalities. A simple example is that x > 0 implies > > that x > 1 > > I think you meant that x > 1 implies that x > 0, but I get the point. > > > but we would like to pose more complicated questions like: > > > Given that x > y, y > 0, x + y > z is it the case that 2*x > 0 > > > The possible answers to a problem like this are "yes", "no" or "maybe". > > I see. Well I believe I can implement this function using the Linear > Programing technique. > > if that is okay with you, I would like to start working on it right after my > semester exams (in 3 weeks). > > Is there anything more I need to know/do before I start coding?
I think the main thing is that if you are looking to contribute this to sympy then you should specify whether you are hoping to change existing public functions (which functions and how would they change?) or whether you are introducing new public API and if so what that API would be. It's not possible for me to say on behalf of sympy that any work would likely be included in sympy without knowing what the expected output is. The other thing I would say is that it's important to consider the symbolic case in sympy. Algorithms in the symbolic case are different from algorithms intended for an explicit numeric representation. As an example of what I mean the wikipedia article describes Fourier-Motzkin elimination as something that generates an exponentially growing number of cases and therefore is computationally awkward. That isn't true in sympy though because we can represent limits symbolically using something like `Max(a, b)` where `a` and `b` are symbols and that is a useful representation in situations where it isn't known which symbol is greater. It isn't clear to me how easily the linear programming techniques can apply in a situation where the coefficients in the inequalities are symbolic. Oscar -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAHVvXxSTyrCiCT7e65PTxwk0epKi1jhvEL_GA-to4kgBSO5-ww%40mail.gmail.com.
