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.