Dear all,

I'm currently on holidays and have started or writing a commutative algebra / algebraic geometry module, something I have been wanting to do for quite a long time. This will be quite a body of code, and I'm afraid I don't know the proper etiquette in getting so much code into sympy, outside the "gsoc cycle". I have been doing my best to break up everything into manageble chunks, and to make pull requests at the smallest possible size that seemed sensible to me - this turns out to typically be about 800 LOC changed. There are currently three pull requests wating:

- [1] implements low-level groebner basis code
- [2] extends the polys DMP and DMF types, and implements a domain
      for generalized polynomial rings
- [3] starts the commutative algebra module proper: it implements
      finitely generated free modules over generalized polynomial rings
      and their submodules.

There is also a tiny pull request [0] which may seem somewhat random, but I believe it will come in handy when free resolutions are implemented.

I would be glad for any reviews. I believe there should be "something for everybody": do you consider yourself an expert in groebner bases - take a look at [1]. Are you worried about where the polys module is going - take [2]. Do you want to critizise a new class structure - go to [3]. Fancy to spare only a few minutes - look at [0].

I may be sounding a little pushy here, but the problem is that I am just barely getting towards mathematics that I find interesting (homological algebra), with what I actually want to do (algebraic geometry) still far in the future. I have some amount of time over the next month or so and I feel like I want to write a lot of code, but this is difficult if I cannot get it pushed. I understand that this is a strain on everyone doing the reviewing, and I'm obviously glad to "tit-for-tat" ("I review yours, you review mine"). In fact I have been trying to increase my reviewing work so as to encourage others to look at my code ;). (I am aware of one large pull request [4], but each time I try I see that this mostly changes parts of the core I am not really comfortable with.)

To give an idea of how much more there is to come, unless someone decisively tells me to stop or convincingly argues that it is not going to be merged (approx. one pull request per bullet point)

- ideals, quotient rings, free modules over quotient rings
- module homomorphisms, kernels, images
- quotient modules
- ideal operations: quotient, saturation, intersection
- chain complexes, free resolutions
- tensor and hom modules, Tor and Ext functors

Probably more than one PR each:
- radical of an ideal
- primary decomposition

This is what I see as the basics of commutative algebra. We are talking about "naive" algorithms here (that is, obvious groebner basis computations, no particular optimizations). After that I would start on algebraic geometry.

Thanks,
Tom

[0] https://github.com/sympy/sympy/pull/1192
[1] https://github.com/sympy/sympy/pull/1190
[2] https://github.com/sympy/sympy/pull/1199
[3] https://github.com/sympy/sympy/pull/1209
[4] https://github.com/sympy/sympy/pull/1162

--
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