And a big thank you to you for submitting it in the first place!

Aaron Meurer

On Jun 29, 2012, at 3:05 AM, Tom Bachmann <e_mc...@web.de> wrote:

> Heya,
>
> my biggest pull request got green light and was merged a few minutes ago. A 
> very big *thank you* to everyone (in particular aaron) who reviewed this huge 
> pile of code.
>
> Tom
>
> On 10.06.2012 10:34, Tom Bachmann wrote:
>> Hi,
>>
>> first of all I'd like to apologize for being slightly unresponsive
>> during the last couple of weeks ... it's been exam time.
>>
>> Partly as a result of this, my pull requests have been sitting around
>> for a rather long time now. As a reminder, there is a trigsimp extension
>> [1], and various commutative algebra related pull requests [2]. As far
>> as I am aware, these pull requests are fully rebased and pass tests in
>> all python versions from 2.5 to 3.2. This applies in particular to the
>> trigsimp PR - could anyone give this a final once-over and decide if it
>> can be committed?
>>
>> Regarding the AGCA pull requests, I have to (embarrasedly) say that
>> while I hope the many smallish PRs made reviewing easier, I have
>> somewhat lost track of which of these are commit-ready and which not. As
>> far as I can tell I have addressed all comments, with exception of those
>> elaborated on below:
>>
>> - naming of the implementation classes
>>
>> In my system, there are "abstract" base classes implementing user-facing
>> functionality, and "concrete" subclasses supplying vital methods used by
>> the abstract code. For example, there is an "abstract" class for
>> submodules (called SubModule), which implements all the niceties, and
>> there is a "concrete" subclass which implements core functionality, like
>> element membership and syzygy computation. It is currently named
>> SubModulePolyRing. This is because while the concept of submodules makes
>> sense over arbitrary rings, this implementation uses groebner basis
>> computations, which only work for polynomial rings.
>>
>> In fact, the implementation only works with polynomial rings over
>> *fields*. It has been suggested that if (or when) this code might be
>> extended to work in more general cases (there certainly are groebner
>> basis algorithms for various more general cases), the name
>> "FreeModulePolyRing" might turn out to be too general - i.e. what should
>> the new class be called?
>>
>> I see I'm not managing to explain this simple issue in a concise way. So
>> let me put it like this: what should the naming convention be for the
>> concrete subclasses? Should I rename SubModulePolyRing to
>> SubModulePolyRingField, or perhaps SubModulePolyField? Or might
>> SubModulePolyRing do, and the new class might be called SubModulePolyPID?
>>
>> - printing of matrices
>>
>> As discussed in issue 2865, matrix 'str' printing should not produce 2D
>> pictures. The same goes for my homomorphism class. However the
>> homomorphism class actually *uses* the matrix printing. So my question
>> is: is anyone working on fixing the matrix printing problem? Because if
>> not I will do it (and then my homomorphism printing will be fixed
>> automatically - except for a few doctests it will break).
>>
>> - coercion in equality testing
>>
>> This is a bit of a conceptual issue. In the module classes, I'm allowing
>> expressions like
>>
>> module_element == [x, y, z].
>>
>> Here the __eq__ function of module_element automatically tries to coerce
>> [x, y, z]. Functions like __add__ etc also do this. I found it handy,
>> because otherwise one always has to write
>>
>> module_element = my_module.convert([x, y, z]).
>>
>> I guess my general question is: is this a good idea? Does the gained
>> syntactic flexiblity outweigh the risks? (what risks/problems are
>> there?) A related issue is that I implemented similar automatic coercion
>> in the new QuotientRing class. Again, I think this is quite handy, since
>> it allows writing
>>
>> foo == 1
>>
>> instead of writing "foo = my_ring.convert(1)" or "foo == 1 + my_ideal".
>> On the other hand the last notation can be fairly short if used
>> consistently. The problem with this automatic coercion in QuotientRing
>> is that no other polys/domains classes do it, so it's somewhat
>> inconsistent.
>>
>>
>> Ok. I think I have woffled for long enough. Please let me know what you
>> think.
>>
>> Best,
>> Tom
>>
>> [1] https://github.com/sympy/sympy/pull/1258
>> [2] https://github.com/sympy/sympy/pull/1209
>> https://github.com/sympy/sympy/pull/1218
>> etc
>>
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sympy" group.
> To post to this group, send email to sympy@googlegroups.com.
> To unsubscribe from this group, send email to 
> sympy+unsubscr...@googlegroups.com.
> 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 sympy@googlegroups.com.
To unsubscribe from this group, send email to 
sympy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to