Skip to content
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

Matroid serialisation and matroid encodings #3886

Merged
merged 19 commits into from
Jul 17, 2024

Conversation

Sequenzer
Copy link
Collaborator

@Sequenzer Sequenzer commented Jun 25, 2024

This adds the ability to save matroids using the mrdi file format. Currently this only allows you to save matroids whose groundset is of type Vector{Int}, arbitrary groundsets are not possible with this implementation. Maybe something for @antonydellavecchia to look into.

This also adds a functions, matroid_hex, which is a way of encoding a matroid into a string using revlex_bases_encoding.

matroid_hex is an encoding used in the paper Quantum automorphisms of matroids.

The encoding style also gets a function to retrieve the matroid from the encoded string matroid_from_matroid_hex. Suggestions for the names of the functions are welcome :)

This is part of the step-by-step merge of the QuantumAutomorphismGroups.jl package.

@danteluber Please Look at this!

Copy link

codecov bot commented Jun 25, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 84.01%. Comparing base (686a746) to head (d37a44c).
Report is 14 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3886      +/-   ##
==========================================
+ Coverage   83.99%   84.01%   +0.02%     
==========================================
  Files         591      592       +1     
  Lines       81386    81750     +364     
==========================================
+ Hits        68359    68683     +324     
- Misses      13027    13067      +40     
Files Coverage Δ
src/Combinatorics/Matroids/properties.jl 99.17% <100.00%> (+0.06%) ⬆️
src/Serialization/Combinatorics.jl 86.48% <100.00%> (+6.48%) ⬆️
src/Serialization/containers.jl 87.74% <100.00%> (+0.08%) ⬆️

... and 16 files with indirect coverage changes

thx Benjamin

Co-authored-by: Benjamin Lorenz <benlorenz@users.noreply.github.com>
Co-authored-by: antonydellavecchia <antonydellavecchia@gmail.com>
Co-authored-by: antonydellavecchia <antonydellavecchia@gmail.com>
@thofma
Copy link
Collaborator

thofma commented Jul 15, 2024

I am not sure if the "draft" status means that more comments are welcome, but here is a minor comment. The function signatures are sometimes annotated with an explicit convert on the return type, e.g.,

function matroid_hex(M::Matroid)::String

We usually don't do this and I think in none of the cases here it is necessary.

@Sequenzer Sequenzer marked this pull request as ready for review July 17, 2024 12:11
@benlorenz benlorenz closed this Jul 17, 2024
@benlorenz benlorenz reopened this Jul 17, 2024
@benlorenz benlorenz enabled auto-merge (squash) July 17, 2024 13:26
@benlorenz benlorenz merged commit 8b6d3c3 into oscar-system:master Jul 17, 2024
39 of 56 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants