Le dimanche 05 juin 2011 à 17:06 -0600, Aaron Meurer a écrit : > On Sun, Jun 5, 2011 at 12:38 PM, Ronan Lamy <[email protected]> wrote: > > Le dimanche 05 juin 2011 à 06:13 -0700, Vinzent Steinberg a écrit : > >> On 4 Jun., 18:24, Ronan Lamy <[email protected]> wrote: > >> > No, it shouldn't, because ZZ isn't a set. That's indeed the problem with > >> > using the name of an abstract mathematical set to designate a concrete > >> > type. > >> > >> If I understand it correctly, ZZ is the implementation of the ring of > >> integers, so mathematically it is nothing but a set with some special > >> elements and a few mappings, satisfying some axioms. For convenience, > >> you refer to the set only, even if you mean the ring. So I think the > >> implementation is fine. > >> > > Your understanding seems to contradict Aaron's. ZZ can't be > > simultaneously a proxy for a concrete type and a representation of an an > > abstract mathematical concept. > > > >> > "Symbol('n', integer=True) in ZZ" looks like something that should > >> > obviously be True, but actually it doesn't make sense. > >> > >> Well, in polys this would be rather ZZ[n], because ZZ means concrete > >> integers and not symbolic ones. > > > > But we need symbolic integers if we want to do any symbolic manipulation > > on integers. In the main core, there's .is_integer and .is_Integer, they > > are different and we need both. Why change the rules in the polynomial > > core? > > Because you can't really work with symbolic integers, or at least not > in the way that you can work with actual ones. It would be awesome if > you could. But what is quo(x**n - 1, x - 1)? Or factor(x**n - 1)? > (these are actually a nice questions because it's not to difficult to > represent the answer using a summation, but you can imagine how > difficult it can be in general)? > > That's symbolic powers, but the same thing applies to symbolic > coefficients. For example, what is quo(x**2 + n*x + m, x - 1)? Maybe > you could generate a general answer, but how that's actually > relatively simple. How about determining if x**3 + n*x**2 + m*x + k > is irreducible over the rationals, where n, m, and k are all > rationals. If n, m, and k are given, it can be determined, but for > symbolic n, m, and k an answer would involve all kinds of crazy number > theory functions, if an answer can even be expressed at all.
Yes, I understand why the polynomials are implemented the way they are. What I'm trying to understand is, given this implementation, why claim that "domains" have a symbolic meaning they don't have? If domains are to be extracted from sympy.polys and used elsewhere, this needs to be clarified. > > > >> > So 'isinstance(a, > >> > int_type)' isn't just more readable, it also prevents dangerous > >> > misunderstandings. > >> > >> > BTW, ZZ.__contains__ does exist and does something different from > >> > ZZ.of_type. > >> > >> The difference is subtle, ZZ.__contains__ tries to convert the type, > >> but ZZ.of_type only checks the type. It is like '==' vs. 'is'. > >> > >> Vinzent > >> > > > > > > -- > > You received this message because you are subscribed to the Google Groups > > "sympy" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group at > > http://groups.google.com/group/sympy?hl=en. > > > > > -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
