On Sun, Jun 5, 2011 at 6:02 PM, Ronan Lamy <[email protected]> wrote: > 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.
Anywhere that uses the polys domains (like the matrices) should use them in the same way that the polys uses them. But I do agree that it would be useful to have some kind of "set of integers" object, and that it would be convenient to give it the name ZZ. I wonder what the best way around this would be. Aaron Meurer > >> > >> >> > 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. > > -- 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.
