M2
M2 copied to clipboard
Update AbstractSimplicialComplexes.m2
Added options to random simplicial complex
Hi,
Yes, perhaps some additional modifications can be done along these lines—especially in light of the new randomSubsets function. However, in either case the method works well “as is” and it is able to treat both cases (at most m) vs. exactly m. This was the intent of the original method (to generically treat the at most m). Yes, if there is already a symbol “Verify” then that might be better than “Seed”. (It’s one less symbol to export.) Let me try to make some small along these lines. I’ll push these changes to the development branch again soon.
Best, Nathan
On May 16, 2025, at 10:50 PM, Doug Torrance @.***> wrote:
@d-torrance commented on this pull request.
In M2/Macaulay2/packages/AbstractSimplicialComplexes.m2 https://github.com/Macaulay2/M2/pull/3821#discussion_r2093847804:
L := for i from 1 to n list i;dDimlSubsets := subsets(L,d+1);
rdmFaces := for i from 1 to m list (dDimlSubsets#(random(binomial(n,d+1))));append(append(rdmFaces,{L}),subsets(L,d));abstractSimplicialComplex(rdmFaces))
rdmFaces := unique(for i from 1 to m list (dDimlSubsets#(random(binomial(n,d+1)))));I think you could use randomSubset(dDimlSubsets, m) here to guarantee that you get m distinct faces. Even better than that would be randomSubset(n, m) and use the results with an unranking algorithm to generate only the subsets you need without having to call subsets to generate a bunch of subsets you won't use.
Also, why Seed? If the option is meant to spend a bit of extra effort to verify that the output satisfies some condition, then maybe Verify would be more appropriate.
— Reply to this email directly, view it on GitHub https://github.com/Macaulay2/M2/pull/3821#pullrequestreview-2847886514, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABC62JEMABK5665RFBXKNYL262PXLAVCNFSM6AAAAAB5F3Z742VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDQNBXHA4DMNJRGQ. You are receiving this because you authored the thread.
Hi,
I’ve pushed the changes now. Do let me know what you think. Once these are approved are you able to push these to the latest release or will this have to what until the next release? Thanks so much for these helpful comments.
Best, Nathan
On May 17, 2025, at 8:57 AM, Nathan Grieve @.***> wrote:
Hi,
Yes, perhaps some additional modifications can be done along these lines—especially in light of the new randomSubsets function. However, in either case the method works well “as is” and it is able to treat both cases (at most m) vs. exactly m. This was the intent of the original method (to generically treat the at most m). Yes, if there is already a symbol “Verify” then that might be better than “Seed”. (It’s one less symbol to export.) Let me try to make some small along these lines. I’ll push these changes to the development branch again soon.
Best, Nathan
On May 16, 2025, at 10:50 PM, Doug Torrance @.***> wrote:
@d-torrance commented on this pull request.
In M2/Macaulay2/packages/AbstractSimplicialComplexes.m2 https://github.com/Macaulay2/M2/pull/3821#discussion_r2093847804:
L := for i from 1 to n list i;dDimlSubsets := subsets(L,d+1);
rdmFaces := for i from 1 to m list (dDimlSubsets#(random(binomial(n,d+1))));append(append(rdmFaces,{L}),subsets(L,d));abstractSimplicialComplex(rdmFaces))
rdmFaces := unique(for i from 1 to m list (dDimlSubsets#(random(binomial(n,d+1)))));I think you could use randomSubset(dDimlSubsets, m) here to guarantee that you get m distinct faces. Even better than that would be randomSubset(n, m) and use the results with an unranking algorithm to generate only the subsets you need without having to call subsets to generate a bunch of subsets you won't use.
Also, why Seed? If the option is meant to spend a bit of extra effort to verify that the output satisfies some condition, then maybe Verify would be more appropriate.
— Reply to this email directly, view it on GitHub https://github.com/Macaulay2/M2/pull/3821#pullrequestreview-2847886514, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABC62JEMABK5665RFBXKNYL262PXLAVCNFSM6AAAAAB5F3Z742VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDQNBXHA4DMNJRGQ. You are receiving this because you authored the thread.
Hi,
Not sure why one check failed. Here is the install on my machine:
-- i1 : restart Macaulay2, version 1.25.05 Type "help" to see useful commands
i1 : uninstallPackage "AbstractSimplicialComplexes"
i2 : installPackage("AbstractSimplicialComplexes", RemakeAllDocumentation => true) -- making example results for "AbstractSimplicialComplex == AbstractSimplicialComplex" -- .678518s elapsed -- making example results for "dim(AbstractSimplicialComplex)" -- .675227s elapsed -- making example results for "abstractSimplicialComplexFacets" -- .667991s elapsed -- making example results for "randomAbstractSimplicialComplex" -- 1.20696s elapsed -- making example results for "How to make abstract simplicial complexes" -- .66915s elapsed -- making example results for "abstractSimplicialComplex" -- .668315s elapsed -- making example results for "randomSubSimplicialComplex" -- .66798s elapsed -- making example results for "ambientAbstractSimplicialComplex" -- .66994s elapsed -- making example results for "How to make reduced and non-reduced simplicial chain complexes" -- .675977s elapsed -- making example results for "ambientAbstractSimplicialComplexSize" -- .673752s elapsed -- making example results for "inducedReducedSimplicialChainComplexMap" -- .669635s elapsed -- making example results for "reducedSimplicialChainComplex" -- .672168s elapsed -- making example results for "How to make subsimplical complexes and induced simplicial chain complex maps" -- .673662s elapsed -- making example results for "simplicialChainComplex" -- .676869s elapsed -- making example results for "AbstractSimplicialComplex _ ZZ" -- .670998s elapsed -- making example results for "inducedSimplicialChainComplexMap" -- .670094s elapsed -- making example results for "Calculations with random simplicial complexes" -- .69596s elapsed -- warning: symbol "GradedModuleMap" in OldChainComplexes.Dictionary is shadowed by a symbol in Complexes.Dictionary -- use the synonym OldChainComplexes$GradedModuleMap -- warning: symbol "GradedModule" in OldChainComplexes.Dictionary is shadowed by a symbol in Complexes.Dictionary -- use the synonym OldChainComplexes$GradedModule -- warning: symbol "res" in OldChainComplexes.Dictionary is shadowed by a symbol in Complexes.Dictionary -- use one of the synonyms OldChainComplexes$res, OldChainComplexes$resolution -- warning: symbol "resolution" in OldChainComplexes.Dictionary is shadowed by a symbol in Complexes.Dictionary -- use one of the synonyms OldChainComplexes$res, OldChainComplexes$resolution -- warning: symbol "yonedaProduct" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym yonedaProduct$0 -- warning: symbol "resolutionMap" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym resolutionMap$0 -- warning: symbol "horseshoeResolution" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym horseshoeResolution$0 -- warning: symbol "tensorCommutativity" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym tensorCommutativity$0 -- warning: symbol "torSymmetry" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym torSymmetry$0 -- warning: symbol "freeResolution" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym freeResolution$0 -- warning: symbol "connectingExtMap" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym connectingExtMap$0 -- warning: symbol "connectingTorMap" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym connectingTorMap$0 -- warning: symbol "yonedaMap" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym yonedaMap$0 -- warning: symbol "connectingMap" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym connectingMap$0 -- warning: symbol "isShortExactSequence" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym isShortExactSequence$0 -- warning: symbol "Complex" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym Complex$0 -- warning: symbol "ComplexMap" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym ComplexMap$0 -- warning: symbol "koszulComplex" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym koszulComplex$0 -- warning: symbol "complex" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym complex$0 -- warning: symbol "augmentationMap" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym augmentationMap$0 -- warning: symbol "isComplexMorphism" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym isComplexMorphism$0 -- warning: symbol "yonedaExtension" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym yonedaExtension$0 -- warning: symbol "yonedaExtension'" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym yonedaExtension'$0 -- warning: symbol "yonedaMap'" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym yonedaMap'$0 -- warning: symbol "component" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym component$0 -- warning: missing node: randomAbstractSimplicialComplex(...,Verify=>...) cited by randomAbstractSimplicialComplex
o2 = AbstractSimplicialComplexes
o2 : Package
i3 : check "AbstractSimplicialComplexes" -- capturing check(0, "AbstractSimplicialComplexes") -- .141646s elapsed
Here are two examples to illustrate the improved functionality:
--
i4 : tally apply(1000, i -> #(randomAbstractSimplicialComplex(5,3,2))_2)
o4 = Tally{1 => 11 } 2 => 252 3 => 737
o4 : Tally
i5 : tally apply(1000, i -> #(randomAbstractSimplicialComplex(5,3,2,Verify=>true))_2)
o5 = Tally{3 => 1000}
o5 : Tally
Thanks. I’ll change that.
Best, Nathan
On May 17, 2025, at 2:19 PM, Doug Torrance @.***> wrote:
@d-torrance commented on this pull request.
In M2/Macaulay2/packages/AbstractSimplicialComplexes.m2 https://github.com/Macaulay2/M2/pull/3821#discussion_r2094181632:
-- chosen at random from all binomial(binomial(n,d+1),m) possibilities. -- Such random complexes appear in lots of different contexts including in the article -- Cohen-Lenstra heuristics for torsion in homology of random complexes -- (Kahle, M. and Lutz, F. H. and Newman, A. and Parsons, K.).
-randomAbstractSimplicialComplex(ZZ,ZZ,ZZ) := AbstractSimplicialComplex => (n,m,d) -> (
L := for i from 1 to n list i;dDimlSubsets := subsets(L,d+1);rdmFaces := for i from 1 to m list (dDimlSubsets#(random(binomial(n,d+1))));append(append(rdmFaces,{L}),subsets(L,d));abstractSimplicialComplex(rdmFaces))+randomAbstractSimplicialComplex(ZZ,ZZ,ZZ) := AbstractSimplicialComplex => o -> (n,m,d) -> (
x := toList(1..n);rdmFaces := unique(for i from 1 to m list randomSubset(x, d+1));if o.Verify == false then abstractSimplicialComplex(rdmFaces|subsets(x,d))o.Verify is a boolean, so there's no need to use == here. You could just do if not o.Verify then ...
— Reply to this email directly, view it on GitHub https://github.com/Macaulay2/M2/pull/3821#pullrequestreview-2848367871, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABC62JC3AT3VLB27MHJS23L2654UBAVCNFSM6AAAAAB5F3Z742VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDQNBYGM3DOOBXGE. You are receiving this because you authored the thread.
Many thanks. I will correct this!
Best, Nathan
On May 18, 2025, at 1:38 PM, Doug Torrance @.***> wrote:
@d-torrance requested changes on this pull request.
In M2/Macaulay2/packages/AbstractSimplicialComplexes.m2 https://github.com/Macaulay2/M2/pull/3821#discussion_r2094585612:
@@ -653,17 +670,20 @@ doc /// L = randomAbstractSimplicialComplex(6,3) Text Create the random complex $Y_d(n,m)$ which has vertex set
$[n]$ and $(d − 1)$-skeleton, and has $m$ $d$-dimensional faces,
$[n]$ and complete $(d − 1)$-skeleton, and has exactly m d-dimensional faces,I think this line was accidentally reverted.
In M2/Macaulay2/packages/AbstractSimplicialComplexes.m2 https://github.com/Macaulay2/M2/pull/3821#discussion_r2094585703:
@@ -653,17 +670,20 @@ doc /// L = randomAbstractSimplicialComplex(6,3) Text Create the random complex $Y_d(n,m)$ which has vertex set
$[n]$ and $(d − 1)$-skeleton, and has $m$ $d$-dimensional faces,
$[n]$ and complete $(d − 1)$-skeleton, and has exactly m d-dimensional faces, chosen at random from all $\binom{\binom{n}{d+1}{m}$ possibilities.The TeX for this binomial coefficient isn't rendering correctly -- I think you need an extra closing curly brace
— Reply to this email directly, view it on GitHub https://github.com/Macaulay2/M2/pull/3821#pullrequestreview-2849050869, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABC62JAXMLUONFGLIYTEKVT27DASDAVCNFSM6AAAAAB5F3Z742VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDQNBZGA2TAOBWHE. You are receiving this because you authored the thread.
Yes, I decided to change the wording back to my original wording especially since there is the added functionality with the option added. I trust that is OK. Everything is entirely clear from the examples. If you truly insist, then I can make that change.
Best, Nathan
On May 19, 2025, at 7:42 PM, Doug Torrance @.***> wrote:
@d-torrance commented on this pull request.
In M2/Macaulay2/packages/AbstractSimplicialComplexes.m2 https://github.com/Macaulay2/M2/pull/3821#discussion_r2096614175:
@@ -653,17 +670,20 @@ doc /// L = randomAbstractSimplicialComplex(6,3) Text Create the random complex $Y_d(n,m)$ which has vertex set
$[n]$ and $(d − 1)$-skeleton, and has $m$ $d$-dimensional faces,
$[n]$ and complete $(d − 1)$-skeleton, and has exactly m d-dimensional faces,I think this line still needs to be fixed. The "exactly" was removed since there might be fewer than m d-dimensional faces (unless the new Verify option is set to true), but now it's back.
— Reply to this email directly, view it on GitHub https://github.com/Macaulay2/M2/pull/3821#discussion_r2096614175, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABC62JBNREF5T7UNIIBK3WT27JT6LAVCNFSM6AAAAAB5F3Z742VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDQNJSGE4DOOBTGE. You are receiving this because you authored the thread.
I do trust that this last change will be OK. Do let me know if any additional items are needed.
Is there a reason that this last workflow failed? Please close this pull request and merge the files. Many thanks.
Not to bother, but now that the build has passed, is it possible to approve the pull request and resolve the related issues/questions that were asked and motivated the implementation of this increased functionality? Many thanks in advance. Of course, it will be great if this improved functionality will appear in the next mini-M2-release. Many thanks again for your efforts with all of this.
As I have mentioned this PR can be closed and merge. Here are a few examples to illustrate the current version of the code in the pull request to illustrate the new functionality. Just let me know if you have any additional questions.
--
i2 : tally apply(1000,i->length(randomAbstractSimplicialComplex(5,3,2))_2)
o2 = Tally{1 => 8 } 2 => 287 3 => 705
o2 : Tally
i3 : tally apply(1000,i->length(randomAbstractSimplicialComplex(5,3,2,Verify=>true))_2)
o3 = Tally{3 => 1000}
o3 : Tally
i4 : tally apply(1000,i->length(randomAbstractSimplicialComplex(5,3,2))_1)
o4 = Tally{10 => 1000}
o4 : Tally
--
Hi,
Just to follow-up again, are you able to merge the PR? Do let me know if you have any additional questions and/or discussions about the newly added functionality. Many thanks.
Best, Nathan
Hi,
Many thanks for your follow-up with this. Let me update the file one last time again! I will do this now.
Best, Nathan
On Jun 20, 2025, at 10:01 AM, Doug Torrance @.***> wrote:
@d-torrance requested changes on this pull request.
Thanks for the updates! I have a few small suggestions for the documentation/comments.
In M2/Macaulay2/packages/AbstractSimplicialComplexes.m2 https://github.com/Macaulay2/M2/pull/3821#discussion_r2158930759:
@@ -17,7 +17,7 @@
-- The code that follows is mostly formatted to max line length of 80 and in some -- special cases (like method definition) to max line length of 110. --- The code that follows is designed to run on Macaulay2, version 1.24.11. +-- The code that follows is designed to run on Macaulay2, version 1.25.02. Minor quibble: there is no Macaulay2 1.25.02. I suppose you probably meant 1.25.05.
In M2/Macaulay2/packages/AbstractSimplicialComplexes.m2 https://github.com/Macaulay2/M2/pull/3821#discussion_r2158933086:
@@ -159,43 +172,45 @@ abstractSimplicialComplex(ZZ,ZZ) := AbstractSimplicialComplex => (n,r) -> (
-- What follows are simple minded (yet still seemingly practical) --- methods for producing random simplicial complexes. +-- methods for producing random subsets and random simplicial complexes. I think this version of the comment is old, from before randomSubset was moved to Core.
In M2/Macaulay2/packages/AbstractSimplicialComplexes.m2 https://github.com/Macaulay2/M2/pull/3821#discussion_r2158950973:
Such random simplicial complexes appear in lots of differentcontexts including in the article @HREF("https://www.tandfonline.com/doi/abs/10.1080/10586458.2018.1473821", "Cohen-Lenstra heuristics for torsion in homology of random complexes")@ by M. Kahle, F. H. Lutz, A. Newman, and K. Parsons [Exp. Math. vol. 29, no. 3 (2020)].
The output of the method may produce, in some cases, complexes which have fewer than$m$ faces of dimension $d$. Further, not all $d-1$ skeletons will be complete.
When the option Verify is set to true, the output of the method will produce complexes which have exactly$m$ faces of dimension $d$.Why was the previous sentence removed? It seems like old sentence and the new sentence complement each other. By default, there's a chance we may have fewer than m faces. To avoid this, use the Verify option.
— Reply to this email directly, view it on GitHub https://github.com/Macaulay2/M2/pull/3821#pullrequestreview-2946077409, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABC62JAXHPOVK45EPVVDW3T3EQH4BAVCNFSM6AAAAAB5F3Z742VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDSNBWGA3TONBQHE. You are receiving this because you modified the open/close state.
Hi,
These have been implemented now. Do let me know if there is anything else. Thanks so much again for your interest and assistance with all of this!
Best, Nathan
On Jun 20, 2025, at 10:09 AM, Nathan Grieve @.***> wrote:
Hi,
Many thanks for your follow-up with this. Let me update the file one last time again! I will do this now.
Best, Nathan
On Jun 20, 2025, at 10:01 AM, Doug Torrance @.***> wrote:
@d-torrance requested changes on this pull request.
Thanks for the updates! I have a few small suggestions for the documentation/comments.
In M2/Macaulay2/packages/AbstractSimplicialComplexes.m2 https://github.com/Macaulay2/M2/pull/3821#discussion_r2158930759:
@@ -17,7 +17,7 @@
-- The code that follows is mostly formatted to max line length of 80 and in some -- special cases (like method definition) to max line length of 110. --- The code that follows is designed to run on Macaulay2, version 1.24.11. +-- The code that follows is designed to run on Macaulay2, version 1.25.02. Minor quibble: there is no Macaulay2 1.25.02. I suppose you probably meant 1.25.05.
In M2/Macaulay2/packages/AbstractSimplicialComplexes.m2 https://github.com/Macaulay2/M2/pull/3821#discussion_r2158933086:
@@ -159,43 +172,45 @@ abstractSimplicialComplex(ZZ,ZZ) := AbstractSimplicialComplex => (n,r) -> (
-- What follows are simple minded (yet still seemingly practical) --- methods for producing random simplicial complexes. +-- methods for producing random subsets and random simplicial complexes. I think this version of the comment is old, from before randomSubset was moved to Core.
In M2/Macaulay2/packages/AbstractSimplicialComplexes.m2 https://github.com/Macaulay2/M2/pull/3821#discussion_r2158950973:
Such random simplicial complexes appear in lots of differentcontexts including in the article @HREF("https://www.tandfonline.com/doi/abs/10.1080/10586458.2018.1473821", "Cohen-Lenstra heuristics for torsion in homology of random complexes")@ by M. Kahle, F. H. Lutz, A. Newman, and K. Parsons [Exp. Math. vol. 29, no. 3 (2020)].
The output of the method may produce, in some cases, complexes which have fewer than$m$ faces of dimension $d$. Further, not all $d-1$ skeletons will be complete.
When the option Verify is set to true, the output of the method will produce complexes which have exactly$m$ faces of dimension $d$.Why was the previous sentence removed? It seems like old sentence and the new sentence complement each other. By default, there's a chance we may have fewer than m faces. To avoid this, use the Verify option.
— Reply to this email directly, view it on GitHub https://github.com/Macaulay2/M2/pull/3821#pullrequestreview-2946077409, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABC62JAXHPOVK45EPVVDW3T3EQH4BAVCNFSM6AAAAAB5F3Z742VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDSNBWGA3TONBQHE. You are receiving this because you modified the open/close state.
Hi, Is there a reason why the above doesn't compile (see the session below)? Everything works OK on my machine:
-- i1 : restart Macaulay2, version 1.25.05 Type "help" to see useful commands
i1 : uninstallPackage "AbstractSimplicialComplexes"
i2 : installPackage("AbstractSimplicialComplexes", RemakeAllDocumentation => true) -- making example results for "AbstractSimplicialComplex == AbstractSimplicialComplex" -- .658997s elapsed -- making example results for "dim(AbstractSimplicialComplex)" -- .65491s elapsed -- making example results for "abstractSimplicialComplexFacets" -- .655703s elapsed -- making example results for "randomAbstractSimplicialComplex" -- 1.19296s elapsed -- making example results for "How to make abstract simplicial complexes" -- .664949s elapsed -- making example results for "abstractSimplicialComplex" -- .660134s elapsed -- making example results for "randomSubSimplicialComplex" -- .663303s elapsed -- making example results for "ambientAbstractSimplicialComplex" -- .664055s elapsed -- making example results for "How to make reduced and non-reduced simplicial chain complexes" -- .668539s elapsed -- making example results for "ambientAbstractSimplicialComplexSize" -- .670208s elapsed -- making example results for "inducedReducedSimplicialChainComplexMap" -- .66459s elapsed -- making example results for "reducedSimplicialChainComplex" -- .668508s elapsed -- making example results for "How to make subsimplical complexes and induced simplicial chain complex maps" -- .670094s elapsed -- making example results for "simplicialChainComplex" -- .663898s elapsed -- making example results for "AbstractSimplicialComplex _ ZZ" -- .664161s elapsed -- making example results for "inducedSimplicialChainComplexMap" -- .664729s elapsed -- making example results for "Calculations with random simplicial complexes" -- .685508s elapsed -- warning: symbol "GradedModuleMap" in OldChainComplexes.Dictionary is shadowed by a symbol in Complexes.Dictionary -- use the synonym OldChainComplexes$GradedModuleMap -- warning: symbol "GradedModule" in OldChainComplexes.Dictionary is shadowed by a symbol in Complexes.Dictionary -- use the synonym OldChainComplexes$GradedModule -- warning: symbol "res" in OldChainComplexes.Dictionary is shadowed by a symbol in Complexes.Dictionary -- use one of the synonyms OldChainComplexes$res, OldChainComplexes$resolution -- warning: symbol "resolution" in OldChainComplexes.Dictionary is shadowed by a symbol in Complexes.Dictionary -- use one of the synonyms OldChainComplexes$res, OldChainComplexes$resolution -- warning: symbol "yonedaProduct" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym yonedaProduct$0 -- warning: symbol "resolutionMap" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym resolutionMap$0 -- warning: symbol "horseshoeResolution" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym horseshoeResolution$0 -- warning: symbol "tensorCommutativity" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym tensorCommutativity$0 -- warning: symbol "torSymmetry" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym torSymmetry$0 -- warning: symbol "freeResolution" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym freeResolution$0 -- warning: symbol "connectingExtMap" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym connectingExtMap$0 -- warning: symbol "connectingTorMap" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym connectingTorMap$0 -- warning: symbol "yonedaMap" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym yonedaMap$0 -- warning: symbol "connectingMap" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym connectingMap$0 -- warning: symbol "isShortExactSequence" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym isShortExactSequence$0 -- warning: symbol "Complex" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym Complex$0 -- warning: symbol "ComplexMap" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym ComplexMap$0 -- warning: symbol "koszulComplex" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym koszulComplex$0 -- warning: symbol "complex" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym complex$0 -- warning: symbol "augmentationMap" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym augmentationMap$0 -- warning: symbol "isComplexMorphism" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym isComplexMorphism$0 -- warning: symbol "yonedaExtension" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym yonedaExtension$0 -- warning: symbol "yonedaExtension'" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym yonedaExtension'$0 -- warning: symbol "yonedaMap'" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym yonedaMap'$0 -- warning: symbol "component" in User#"private dictionary" is shadowed by a symbol in Complexes.Dictionary -- use the synonym component$0 -- warning: missing node: randomAbstractSimplicialComplex(...,Verify=>...) cited by randomAbstractSimplicialComplex
o2 = AbstractSimplicialComplexes
o2 : Package
The failing builds are unrelated to your package
OK. That’s good to know! I’ll leave it up to you to merge and close the PR (and the related “Issue”) at your complete leisure. Just let me know if you need anything additional on my end!
Best, Nathan
On Jun 20, 2025, at 12:33 PM, Doug Torrance @.***> wrote:
d-torrance left a comment (Macaulay2/M2#3821) https://github.com/Macaulay2/M2/pull/3821#issuecomment-2992210268 The failing builds are unrelated to your package
— Reply to this email directly, view it on GitHub https://github.com/Macaulay2/M2/pull/3821#issuecomment-2992210268, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABC62JAX463ISNCB3B2WLW33EQZW3AVCNFSM6AAAAAB5F3Z742VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDSOJSGIYTAMRWHA. You are receiving this because you modified the open/close state.
Thanks. Done.
On Jun 20, 2025, at 2:40 PM, Doug Torrance @.***> wrote:
@d-torrance commented on this pull request.
In M2/Macaulay2/packages/AbstractSimplicialComplexes.m2 https://github.com/Macaulay2/M2/pull/3821#discussion_r2159505351:
@@ -677,8 +672,8 @@ doc /// @HREF("https://www.tandfonline.com/doi/abs/10.1080/10586458.2018.1473821", "Cohen-Lenstra heuristics for torsion in homology of random complexes")@ by M. Kahle, F. H. Lutz, A. Newman, and K. Parsons [Exp. Math. vol. 29, no. 3 (2020)].
When the option Verify is set to true, the output of the method will produce complexes which have exactly$m$ faces of dimension $d$.
By default, there is a chance that the putoput may have fewer than m faces. To avoid this, setthe Verify option to true.putoput -> output
You may also want to use dollar signs around the "m" so it's TeX-ified like the surrounding docs.
— Reply to this email directly, view it on GitHub https://github.com/Macaulay2/M2/pull/3821#pullrequestreview-2947029246, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABC62JFMEAZ44RUUOVK62A33ERIQ5AVCNFSM6AAAAAB5F3Z742VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDSNBXGAZDSMRUGY. You are receiving this because you modified the open/close state.
Thanks!
On Jun 21, 2025, at 6:26 AM, Doug Torrance @.***> wrote:
Merged #3821 https://github.com/Macaulay2/M2/pull/3821 into development.
— Reply to this email directly, view it on GitHub https://github.com/Macaulay2/M2/pull/3821#event-18256732365, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABC62JCLSVGNYS3DKD3G6233EUXMJAVCNFSM6AAAAAB5F3Z742VHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJYGI2TMNZTGIZTMNI. You are receiving this because you modified the open/close state.