-
-
Notifications
You must be signed in to change notification settings - Fork 479
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add cmr
(Combinatorial Matrix Recognition library) and Cython interface
#35801
base: develop
Are you sure you want to change the base?
Conversation
Does not build yet; discopt/cmr#29 |
In
|
cmr
(Combinatorial Matrix Recognition library) and Cython interface
5e0d744
to
80641a4
Compare
Documentation preview for this PR (built with commit 8341677; changes) is ready! 🎉 |
…-buster` and `fedora-29` <!-- Please provide a concise, informative and self-explanatory title. --> <!-- Don't put issue numbers in the title. Put it in the Description below. --> <!-- For example, instead of "Fixes sagemath#12345", use "Add a new method to multiply two integers" --> ### 📚 Description <!-- Describe your changes here in detail. --> <!-- Why is this change required? What problem does it solve? --> Prerequisite of: - sagemath#34816 - sagemath#35703 - sagemath#35801 See also: - sagemath#32074 Instead of fully dropping `debian-buster` (LTS until 2024-06) in the CI, we replace it by `debian-buster-gcc_spkg` to verify that users on this platform have the recourse of installing a newer GCC. We also remove `linuxmint-19.3-gcc_8-python3.8` and change `fedora-30-python3.8` to `fedora-30` (which builds python from spkg), to prevent a merge conflict with sagemath#35404 We also add `debian-trixie` (= current testing). <!-- 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. It should be `[x]` not `[x ]`. --> - [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#35810 Reported by: Matthias Köppe Reviewer(s): Dima Pasechnik
…-buster` and `fedora-29` <!-- Please provide a concise, informative and self-explanatory title. --> <!-- Don't put issue numbers in the title. Put it in the Description below. --> <!-- For example, instead of "Fixes sagemath#12345", use "Add a new method to multiply two integers" --> ### 📚 Description <!-- Describe your changes here in detail. --> <!-- Why is this change required? What problem does it solve? --> Prerequisite of: - sagemath#34816 - sagemath#35703 - sagemath#35801 See also: - sagemath#32074 Instead of fully dropping `debian-buster` (LTS until 2024-06) in the CI, we replace it by `debian-buster-gcc_spkg` to verify that users on this platform have the recourse of installing a newer GCC. We also remove `linuxmint-19.3-gcc_8-python3.8` and change `fedora-30-python3.8` to `fedora-30` (which builds python from spkg), to prevent a merge conflict with sagemath#35404 We also add `debian-trixie` (= current testing). <!-- 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. It should be `[x]` not `[x ]`. --> - [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#35810 Reported by: Matthias Köppe Reviewer(s): Dima Pasechnik
Rebased away from the boost upgrade, updated CMR to latest |
I've adapted the interface to the new CMR version. There are a few doctest failures that I don't understand
|
Also I haven't done anything yet on the Python side about the new terminology "equimodular" that CMR now uses. |
I have encountered the following underflow issue in the
Any ideas for how to fix it? Thank you! |
I see the same on my machine |
I'll can have a look. At least I cannot reproduce it standalone by reading from a file. |
this number is uint64_t(-1) |
This is exactly the issue of the 3-sum: the submatrix indexed by these rows and columns is (excluding the last one):
The
The second matrix has a
I'm very open to changing this behavior, so we can have a discussion offline. |
a08c3e4
to
28aeba0
Compare
📚 Description
https://discopt.github.io/cmr/, and dependencies
sage.libs.cmr
Matrix_cmr_chr_sparse
CMR_DEC_...
)Matrix_integer_dense
along the lines of the existing methodssmith_form
etc.; delegate toMatrix_cmr_chr_sparse
methodsbreathe
- Sphinx plugin for project documentation using Doxygen #37577)Matroid
corresponding node types of the Seymour decompositionsage.graphs.connectivity.spqr_tree
?DecompositionNode
Follow-ups:
sage.tensor.modules
: Add methodsis_unimodular
etc. #38139📝 Checklist
⌛ Dependencies
cmr/dec.h
API cannot distinguishCMR_DEC_IRREGULAR
,CMR_DEC_UNKNOWN
,CMR_DEC_SERIES_PARALLEL
discopt/cmr#32MatrixSpace
: Support constructingHom(CombinatorialFreeModule)
#37514matrix
,Graph.incidence_matrix
,LinearMatroid.representation
: Support constructingHom(CombinatorialFreeModule)
elements #37692@xuluze @jsantillan3 @discopt