Cythonize LatticePolytope.normal_form(algorithm='palp_native'), change to default, add as a Polyhedron method#36031
Merged
vbraun merged 36 commits intosagemath:developfrom Dec 6, 2023
Conversation
5 tasks
…ut from .lattice_polytope
fchapoton
reviewed
Nov 3, 2023
fchapoton
reviewed
Nov 3, 2023
fchapoton
reviewed
Nov 3, 2023
Contributor
Author
|
All taken care of; any other comments? |
dimpase
reviewed
Nov 22, 2023
dimpase
suggested changes
Nov 22, 2023
Member
dimpase
left a comment
There was a problem hiding this comment.
apart from that missing trivial test, no problems
Contributor
Author
|
Thanks |
Contributor
Author
|
Marking this as a blocker in the hope it can sneak into 10.2 with the other open blocker |
vbraun
pushed a commit
to vbraun/sage
that referenced
this pull request
Nov 27, 2023
sagemathgh-36031: Cythonize `LatticePolytope.normal_form(algorithm='palp_native')`, change to default, add as a `Polyhedron` method <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes sagemath#1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> <!-- Why is this change required? What problem does it solve? --> The current default algorithm, using the external, unmaintained `palp` package, is unreliable. Here, as a follow-up on sagemath#35997, we make the reimplementation of the PALP algorithm in Python (`palp_native`) suitable as the new default by speeding it up. We also fix a bug in introduced in sagemath#35997. We also make it available as a method of `Polyhedron` (for base ring `ZZ`). @xuluze <!-- If this PR resolves an open issue, please link to it here. For example "Fixes sagemath#12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - sagemath#12345: short description why this is a dependency - sagemath#34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: sagemath#36031 Reported by: Matthias Köppe Reviewer(s): Dima Pasechnik, Frédéric Chapoton, Matthias Köppe
Member
Why is this more worthy of "sneaking in" than e.g. #36551 ? |
This was referenced Nov 27, 2023
Member
|
Fails on 32-bit |
Contributor
Author
|
Sorry about this; I've disabled this example now (it's also too long on 64 bit even for |
|
Documentation preview for this PR (built with commit f9aeca5; changes) is ready! 🎉 |
vbraun
pushed a commit
to vbraun/sage
that referenced
this pull request
Dec 4, 2023
sagemathgh-36031: Cythonize `LatticePolytope.normal_form(algorithm='palp_native')`, change to default, add as a `Polyhedron` method <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes sagemath#1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> <!-- Why is this change required? What problem does it solve? --> The current default algorithm, using the external, unmaintained `palp` package, is unreliable. Here, as a follow-up on sagemath#35997, we make the reimplementation of the PALP algorithm in Python (`palp_native`) suitable as the new default by speeding it up. We also fix a bug in introduced in sagemath#35997. We also make it available as a method of `Polyhedron` (for base ring `ZZ`). @xuluze <!-- If this PR resolves an open issue, please link to it here. For example "Fixes sagemath#12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - sagemath#12345: short description why this is a dependency - sagemath#34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: sagemath#36031 Reported by: Matthias Köppe Reviewer(s): Dima Pasechnik, Frédéric Chapoton, Matthias Köppe
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The current default algorithm, using the external, unmaintained
palppackage, is unreliable.Here, as a follow-up on #35997, we make the reimplementation of the PALP algorithm in Python (
palp_native) suitable as the new default by speeding it up.We also fix a bug in introduced in #35997.
We also make it available as a method of
Polyhedron(for base ringZZ).@xuluze
📝 Checklist
⌛ Dependencies