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.

Reply via email to