GENG(1)
π GENG π
okay bestie, gather round, because this one is the graph-generating queen and she is iconic. this is the manual page for geng version 2.9.3, and by the end of this you're gonna be generating every graph of a specified class like it's nothing. no cap. π¦
β¨ SYNOPSIS β¨
geng [-cCmtfkbd#D#] [-kTSPF] [-uygsnh] [-lvq] [-x#X#] n [mine[:maxe]]
[res/mod] [file]
like, look at her. so many little flags. she's giving main character energy fr fr. π
πΈ DESCRIPTION πΈ
Generate all graphs of a specified class. that's it, that's the whole vibe. she just... makes graphs. all of them. every single one in the class you asked for. π
here's the rundown of the arguments, and i'm keeping them exactly as they are because details are sacred:
nβ the number of verticesmine:maxeβ a range for the number of edges#:0β means '# or more' except in the case0:0res/modβ only generate subsetresout of subsets0..mod-1(see below)
π the options, bestie π
one bullet per flag, no skipping, no summarizing, we respect the source material here:
-cβ only write connected graphs-Cβ only write biconnected graphs-tβ only generate triangle-free graphs-fβ only generate 4-cycle-free graphs-pβ only generate 5-cycle-free graphs-kβ only generate K4-free graphs-Tβ only generate chordal graphs-Sβ only generate split graphs-Pβ only generate perfect graphs-Fβ only generate claw-free graphs-bβ only generate bipartite graphs
okay so real talk about that cluster: (-t, -f and -b can be used in any combination). the combination -bT gives bipartite graphs with no induced cycles longer than 4-cycles. iykyk. β¨
-mβ save memory at the expense of time (only makes a difference in the absence of-b,-t,-fandn <= 28).-d#β a lower bound for the minimum degree-D#β an upper bound for the maximum degree-vβ display counts by number of edges-lβ canonically label output graphs-uβ do not output any graphs, just generate and count them-gβ use graph6 output (default)-sβ use sparse6 output-hβ for graph6 or sparse6 format, write a header too-qβ suppress auxiliary output (except from-v)
π§ the res/mod splitting tea π§
so res/mod splitting is controlled by two parameters, -X# and -x#, whose default values are displayed when splitting is used. π«
increasing them will make the division into parts more even at the expense of more overhead, but you must use the same values for all parts. must. same values. all parts. no mix-and-matching, bestie, that's the rule. π
splitting obeys the laws of modular arithmetic, for example 3/7 is the union of 3/14 and 10/14, but when subdividing like this you must manually provide the same -X and -x values to the smaller parts.
β οΈ like literally don't forget that part. the arithmetic will not be nice to you if you do. π
and that's the whole page!! go forth and generate, you absolute graph gremlin. π
cute lil sign-off time: this whole thing is geng 2.9.3, dated September 2026. so if you're reading this from the future, hi, hope the graphs are graphing. π«Άπβ
π¦ where this page comes from
- fedora 43: nauty 2.9.3-3.fc43 Β· Apache-2.0 AND LicenseRef-Fedora-Public-Domain AND Knuth-CTAN AND GPL-1.0-or-later
- fedora 44: nauty 2.9.3-4.fc44 Β· Apache-2.0 AND LicenseRef-Fedora-Public-Domain AND Knuth-CTAN AND GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms