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

Implemented several infinite families of named graphs #415

Merged
merged 1 commit into from
Sep 22, 2021

Conversation

bspiers
Copy link
Contributor

@bspiers bspiers commented Feb 24, 2021

Implemented some new graph families and added 'wrappers' for some existing named graphs to preserve backwards compatibility.

gap/examples.gi Outdated Show resolved Hide resolved
@james-d-mitchell james-d-mitchell added the new-feature A label for new features. label Mar 1, 2021
flsmith
flsmith previously requested changes Mar 3, 2021
Copy link
Collaborator

@flsmith flsmith left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lots of good stuff.

After a while I stopped adding comments about IsPosInt, but imagine they continue.
All of these new graphs now need documentation (:grimacing:)
In the immutable constructors it would be nice to add any obvious properties that the graphs have.

gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated
if k > n then
Error("the argument <n> must be greater than or equal to <k>,");
fi;
permList := PermutationsList([1 .. n]);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be clearer to just take the symmetric group and get its Cayley graph with respect to all of the transpositions (similar to what is done in #403). You would need the extra functionality for Cayley graphs in #403 to do this, and I haven't thought about the efficiency

gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated Show resolved Hide resolved
@wilfwilson wilfwilson added this to Doing in Named graphs Mar 11, 2021
@digraphs digraphs deleted a comment from codecov bot Mar 11, 2021
@wilfwilson

This comment has been minimized.

@bspiers

This comment has been minimized.

@codecov

This comment has been minimized.

doc/examples.xml Outdated Show resolved Hide resolved
@wilfwilson wilfwilson mentioned this pull request May 22, 2021
@wilfwilson wilfwilson force-pushed the ben/name-graph-fusene branch 2 times, most recently from c5e2f03 to a60a4c3 Compare May 23, 2021 15:20
Copy link
Collaborator

@wilfwilson wilfwilson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for doing all of this! I have recently squashed and rebased all of your commits, and resolved the many (many!) merge conflicts in the process. It should therefore now be easy to make further changes to this, and to see what is failing on the tests.

(I recommend in the future to do a larger number of smaller PRs; each one is quick and easier to create, review, and get merged, and there is a smaller scope for merge conflicts.)

Since this PR is very large, I haven't given it a completely thorough review, but I note that @flsmith has also given this a bit of a review, and perhaps other people are going to, as well. But I've given it a bit of a skim and added some specific comments.

Unfortunately, if other PRs are merged before this one, it's likely that there will be more merge conflicts. If you need help resolving these, just let one of us know. (Note that my resolution of the previous conflicts evidently didn't go perfectly, since now there are some methods which are no longer adjacent in the file, even though they presumably used to be).

gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated Show resolved Hide resolved
gap/examples.gi Outdated Show resolved Hide resolved
doc/examples.xml Outdated Show resolved Hide resolved
@wilfwilson
Copy link
Collaborator

Thanks for your further work on this @bspiers, sorry for the further delay in reviewing.

I've now squashed and rebased and resolved merge conflicts, and organised the new contributions into (internal) alphabetical order. Let's see if the tests pass now.

I haven't looked at the implementations in detail, but I'll give the code a quick look again soon (but on the whole your implementations certainly seem reasonable).

Copy link
Collaborator

@wilfwilson wilfwilson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I started making suggestions in the GitHub interface about tagging named arguments in the documentation with <A> tags, both when they are freestanding, and when they are in code/maths (which requires using <C> tags rather than <M> in these cases).

I will do the rest directly in the code, it's much easier.

doc/examples.xml Outdated Show resolved Hide resolved
doc/examples.xml Outdated Show resolved Hide resolved
doc/examples.xml Outdated Show resolved Hide resolved
doc/examples.xml Outdated Show resolved Hide resolved
doc/examples.xml Outdated Show resolved Hide resolved
doc/examples.xml Outdated Show resolved Hide resolved
doc/examples.xml Outdated Show resolved Hide resolved
doc/examples.xml Outdated Show resolved Hide resolved
doc/examples.xml Outdated Show resolved Hide resolved
doc/examples.xml Outdated Show resolved Hide resolved
* AndrasfaiGraph
* BinomialTreeGraph
* BondyGraph
* CirculantGraph
* CycleGraph
* GearGraph
* HalvedCubeGraph
* HanoiGraph
* HelmGraph
* HypercubeGraph
* KellerGraph
* KneserGraph
* LindgrenSousselierGraph
* MobiusLadderGraph
* MycielskiGraph
* OddGraph
* PathGraph
* PermutationStarGraph
* PrismGraph
* StackedPrismGraph
* WalshHadamardGraph
* WebGraph
* WheelGraph
* WindmillGraph
Copy link
Collaborator

@wilfwilson wilfwilson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm happy to approve at this point (assuming the tests pass), thanks for all your hard work @bspiers

There are further suggestions that I could make in the documentation to make it more "Digraphs-like", such as adding references to related functions, and perhaps using slightly different language. But that's quite a subtle thing to do right, so I'm happy for a more experienced Digraphs contributor take that on in the future, if we ever feel like it.

@wilfwilson wilfwilson dismissed flsmith’s stale review September 22, 2021 15:32

I think there's been reasonable changes.

@wilfwilson wilfwilson merged commit 317d713 into digraphs:master Sep 22, 2021
Named graphs automation moved this from Doing to Done Sep 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-feature A label for new features.
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

5 participants