This pull request may look like a bit of a mixture of stuff. It probably looks 
more sensible if you think of it as setting the stage for an alternative 
implementation of `ratsimpmodprime` (which I have written, and will present in 
a later pull request together with additions to trigsimp). As such this PR 
provides both new functionality, and several optimizations. In particular:

- new functionality: intersection and quotient of submodules
- optimizations: more efficient/careful conversion
- optimizations: rewritten groebner basis code, implement the "sugar cube" 
strategy
- new functionality/optimizations: implement extended groebner algorithm (with 
transition matrices provided)
- new functionality: reduced and non-reduced buchberger normal forms
- new functionality/optimization: implement, and use by default, 
term-over-position (non-elimination) orders for modules

While the new functionality is nice, I think the most crucial part of this PR 
is the optimizations ... improving speed by orders of magnitude in some cases.

You can merge this Pull Request by running:

  git pull https://github.com/ness01/sympy agca9

Or you can view, comment on it, or merge it online at:

  https://github.com/sympy/sympy/pull/1392

-- Commit Summary --

* [polys/agca] More efficient conversion operations.
* [polys/agca] Implement intersection of submodules for poly rings.
* [polys/agca] Implement module quotient for poly rings.
* [polys/agca] Some support/convenience infrastructure.
* [polys] Implement the "sugar cube" strategy for sdm_groebner.
* [polys/distributedmodules] Implement extended buchberger algorithm.
* [polys/agca] Improve module quotient.
* [polys/agca] Implement buchberger normal forms.
* [polys/agca] Make TOP=True default.

-- File Changes --

M sympy/polys/agca/ideals.py (41)
M sympy/polys/agca/modules.py (190)
M sympy/polys/agca/tests/test_ideals.py (24)
M sympy/polys/agca/tests/test_modules.py (46)
M sympy/polys/distributedmodules.py (289)
M sympy/polys/tests/test_distributedmodules.py (21)

-- Patch Links --

  https://github.com/sympy/sympy/pull/1392.patch
  https://github.com/sympy/sympy/pull/1392.diff

---
Reply to this email directly or view it on GitHub:
https://github.com/sympy/sympy/pull/1392

-- 
You received this message because you are subscribed to the Google Groups 
"sympy-patches" group.
To post to this group, send email to sympy-patches@googlegroups.com.
To unsubscribe from this group, send email to 
sympy-patches+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sympy-patches?hl=en.

Reply via email to