What are your thoughts on multivariate domains? Is this just a composition of Contains objects and boolean operators? Or would we have objects like Contains((x, y), Set) ?
On Wed, Jul 24, 2013 at 11:17 AM, Aaron Meurer <[email protected]> wrote: > You can already write inequalities, and combine them using And and Or: > > In [25]: x > 0 > Out[25]: x > 0 > > In [26]: Or(x > 0, x < 1) > Out[26]: x > 0 ∨ x < 1 > > In [27]: Or(x > 0, x < 1).subs(x, 2) > Out[27]: True > > If all you care about is getting it to work mathematically (i.e., with > subs), then you can get pretty far with this. It won't work with the > assumptions system, though, and it can get messy fast, especially if > you do care about printing. > > I think what we need is just a Contains object, subclassing from > Boolean, which would work like Contains(x, Set), where Set is any set > from the sets module. It shouldn't be too hard to write something like > this. Basic functionality just needs to check set.contains for > evaluation, and implement basic pretty printing with ∈. > > One issue is that there still isn't a very clear separation between > boolean and symbolic objects > (https://code.google.com/p/sympy/issues/detail?id=1887). And there are > of course issues with the assumptions system in general. > > Aaron Meurer > > > On Wed, Jul 24, 2013 at 6:34 AM, Stefan Krastanov > <[email protected]> wrote: > > It depends what exactly you want to do. > > > > If you need it just for typography purposes (e.g. writing something in > > IPython notebook and wanting to print the expression) you are using sympy > > incorrectly. SymPy is not a typography library. (if you insists there are > > hacks to do it) > > > > On the other hand quite frequently you need this for meaningful > mathematics. > > > > - if you want to work on polynomials and do certain operations (finding > > roots, etc) over a given field, you do this by specifying the field > during > > the creation of the polynomial. > > > > - there is some work in progress to be able to do the same for matrices, > but > > it is not ready. > > > > - in general, there is the assumption module. It is a bit of a mess, > because > > we have an old and a new assumption module and we try to move to the new > > one. If all that you want is for abs(x) to automatically return x (or > > something similar) it suffices to define x as `x=Symbol('x', > > positive=True)`. There are a few other handles like `real` and `integer`. > > > > - if you need something more general or more fancy, we may have it in > some > > (possibly unfinished, mostly unused) form, but it goes deeper in SymPy > so a > > more precise question will help us give you a more precise answer. > > > > > > On 24 July 2013 13:10, Ben Lucato <[email protected]> wrote: > >> > >> We can represent domains on paper quite easily - for instance we can > write > >> x < 0, or alternatively x (epsilon symbol) R-, or even x (epsilon > symbol) > >> (-infinity, 0) > >> > >> I looked around but couldn't really find that - is there a canonical way > >> to be writing domains in SymPy? > >> > >> -- > >> 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 post to this group, send email to [email protected]. > >> Visit this group at http://groups.google.com/group/sympy. > >> For more options, visit https://groups.google.com/groups/opt_out. > >> > >> > > > > > > -- > > 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 post to this group, send email to [email protected]. > > Visit this group at http://groups.google.com/group/sympy. > > For more options, visit https://groups.google.com/groups/opt_out. > > > > > > -- > 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 post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/sympy. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- 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 post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
