TOPCOM(7)

✨ NAME ✨

TOPCOM β€” Triangulations Of Point Configurations and Oriented Matroids


πŸ’… COMMANDS πŸ’…

Okay bestie, here's the whole roster. The following commands are provided. In Debian, each command is prefixed by topcom-. So if you're on Debian, just imagine a tiny topcom- bow on every single one. πŸŽ€

  • points2prettyprint β€” Displays the point and their symmetry generators in a more readable form. πŸ’–
  • points2chiro β€” Computes the chirotope of a point configuration. ✨
  • chiro2dual β€” Computes the dual of a chirotope. πŸ¦‹
  • chiro2circuits β€” Computes the circuits of a chirotope. πŸ”₯
  • points2circuits β€” Dto. (ditto) for point configurations (using a faster method). ⚑
  • chiro2cocircuits β€” Computes the cocircuits of a chirotope. πŸ’œ
  • points2cocircuits β€” Dto. (ditto) for point configurations (using a faster method). ⚑
  • cocircuits2facets β€” Computes the facets of a set of cocircuits. 🌸
  • points2facets β€” Computes the facets of a point configuration. ⭐
  • points2gale β€” Computes a Gale transform of a point configuration. 🌈
  • chiro2circuits β€” Computes the circuits of a point configuration. πŸ”₯
  • chiro2cocircuits β€” Computes the cocircuits of a point configuration. πŸ’œ
  • points2facets β€” Computes the facets of a point configuration. ⭐
  • points2nflips β€” Computes the number of flips of a point configurations and the seed triangulation. πŸ’€
  • points2flips β€” Computes all flips of a point configurations and the seed triangulation. πŸ’€
  • chiro2placingtriang β€” Computes the placing triangulation of a chirotope given by the numbering of the elements. πŸ‘‘
  • points2placingtriang β€” Dto. (ditto) for point configurations. πŸŽ€
  • chiro2finetriang β€” Computes a fine (i.e., using all vertices) triangulation by placing and pushing. ✨
  • points2finetriang β€” Dto. (ditto) for point configurations. πŸŽ€
  • chiro2triangs β€” Computes all triangulations of a chirotope that are connected by bistellar flips to the seed, which is a regular triangulation if no seed is given in the input file. πŸ¦‹
  • points2triangs β€” Dto. (ditto) for point configurations. πŸŽ€
  • chiro2ntriangs β€” Computes the number of all triangulations of a chirotope that are connected by bistellar flips to the seed, which is a regular triangulation if no seed is given in the input file. πŸ”’
  • points2ntriangs β€” Dto. (ditto) for point configurations. πŸŽ€
  • chiro2finetriangs β€” Computes all fine triangulations (the ones that use all the points sometimes called β€œfull”) of a chirotope that are connected by bistellar flips to a fine seed triangulation. ✨
  • points2finetriangs β€” Dto. (ditto) for point configurations. πŸŽ€
  • chiro2nfinetriangs β€” Computes the number of all fine triangulations of a chirotope that are connected by bistellar flips to a fine seed triangulation. πŸ”’
  • points2nfinetriangs β€” Dto. (ditto) for point configurations. πŸŽ€
  • chiro2alltriangs β€” Computes all triangulations of a chirotope. 🌟
  • points2alltriangs β€” Dto. (ditto) for point configurations. πŸŽ€
  • chiro2nalltriangs β€” Computes the number of all triangulations of a chirotope. πŸ”’
  • points2nalltriangs β€” Dto. (ditto) for point configurations. πŸŽ€
  • chiro2allfinetriangs β€” Computes all fine triangulations (sometimes called β€œfull”) of a chirotope. ✨
  • points2allfinetriangs β€” Dto. (ditto) for point configurations. πŸŽ€
  • chiro2nallfinetriangs β€” Computes the number of all fine triangulations of a chirotope. πŸ”’
  • points2nallfinetriangs β€” Dto. (ditto) for point configurations. πŸŽ€
  • chiro2mintriang β€” Computes a triangulation of a chirotope with a minimum number of simplices. πŸ‘‘
  • points2mintriang β€” Dto. (ditto) for point configurations. πŸŽ€
  • B_S n β€” Computes the vertices and symmetry generators of the permutation polytope of the symmetric group of degree n, also known as the Birkhoff polytope. πŸ‘‘
  • B_A n β€” Computes the vertices and symmetry generators of the permutation polytope of the alternating group of degree n, also known as the even Birkhoff polytope. πŸ‘‘
  • B_D n β€” Computes the vertices and symmetry generators of the permutation polytope of the dihedral group of degree n. πŸ‘‘
  • B_S_center n β€” Computes B_S n with an additional center point. 🎯
  • B_A_center n β€” Computes B_A n with an additional center point. 🎯
  • B_D_center n β€” Computes B_D n with an additional center point. 🎯
  • cube d β€” Computes the vertices and symmetry generators of a d-cube. 🧊
  • cyclic n d β€” Computes the vertices and symmetry generators of the cyclic d-polytope with n vertices. πŸ”„
  • cross d β€” Computes the vertices and symmetry generators of the d-dimensional crosspolytope. ⭐
  • lattice n m β€” Computes the nm two-dimensional lattice points with non-negative coordinates at most (nβˆ’1,mβˆ’1) and their symmetry generators. 🌐
  • hypersimplex d k [l] β€” Computes the vertices and symmetry generators of the k-th hypersimplex in dimension d. A third parameter makes it the S-hypersimplex with coordinate sums equal to k or l. πŸ’œ
  • santos_triang β€” Computes the point configuration, the symmetry, and the Santos triangulation (without flips). πŸ’…

✨ OPTIONS ✨

okay bestie, here's the part where we get into the flags. The following command line options are supported. Note that not all options are sensible for all clients. Like, read the room, not every client wants every flag. πŸ’…


🌸 OPTIONS CONCERNING INPUT/OUTPUT FROM FILES 🌸

  • -I [filename] β€” read input from [filename] instead of stdin. Slay, no more piping if you don't want to. 🫢

πŸ”₯ OPTIONS CONCERNING OUTPUT OF INFORMATION πŸ”₯

  • -h or --help β€” Print a usage message. Your little "what do I even type" bestie. ✨
  • -d β€” Debug. It's giving detective mode. πŸ•΅οΈβ€β™€οΈ
  • -v β€” Verbose. It's giving yapper mode, but for your program. πŸ’¬
  • --heights β€” Output a height vector for every regular triangulation (implies --regular). So yes, it also turns on regular vibes. πŸ‘‘
  • --flips β€” Output all flips in terms of IDs of adjacent triangulations. (Can be used to generate the flip graph.) Literally the flip graph generator, iykyk. πŸ”
  • --asy β€” Write asymptote graphics commands into file (in rank-3 triangulations, points are drawn as well). The graphics contains a view of the point configuration (only in rank 3), the enumeration tree with a classification of enumeration nodes into solutions, non-canonical nodes, deadends, and early detected deadends, as well a statistics file showing a histogram of enumeration node types. The output file has to be processed by the computer graphics compiler asy (https://asymptote.sourceforge.io) using the asy-library Combinatorial_Geometry.asy and the LATEX-macroes in triangbook_macroes.sty inside share/asy/. A whole art project, no cap. 🎨

🧐 OPTIONS FOR CHECKING INPUT 🧐

  • --checktriang β€” Check seed triangulation. Gotta make sure your seed is valid before you grow the whole garden. 🌱

πŸ“Š OPTIONS FOR REPORTING PROPERTIES OF DISCOVERED TRIANGULATIONS πŸ“Š

  • --flipdeficiency β€” Check triangulations for flip deficiency during flip-graph exploration.
  • --findregular [k] β€” Check every k-th triangulation for regularity and stop if a regular one is found during flip-graph exploration. It's giving "stop when you find the one." πŸ’–

πŸŽ€ OPTIONS CONCERNING WHICH TRIANGULATIONS ARE OUTPUT (NO INFLUENCE ON FLIP-GRAPH EXPLORATION) πŸŽ€

  • --noorbitcount β€” Only count symmetry classes, not the total number.
  • --cardinality [k] β€” Count/output only triangulations with exactly k simplices.
  • --maxcardinality [k] β€” Count/output only triangulations with at most k simplices.
  • --unimodular β€” Output unimodular triangulations only; while this does not reduce the effort of flip graph exploration, since unimodular triangulations are in general not connected by themselves, it does reduce the effort of extension graph exploration like in points2nalltriangs. So it's a glow-up for extension graph exploration specifically. ✨
  • --nonregular β€” Output non-regular triangulations only; note that this does not reduce the effort of flip-graph exploration, since non-regular triangulations are in general not connected by themselves. Important: it does not make flip-graph exploration cheaper. Periodt. πŸ’€

πŸ¦‹ OPTIONS CONCERNING WHICH TRIANGULATIONS ARE EXPLORED πŸ¦‹

  • --regular β€” Search for regular triangulations only (checked liftings are w.r.t. the last homogeneous coordinate, e.g., last coordinates all ones is fine); note that this may reduce the effort of exploration, since regular triangulations are connected by themselves. So this one can save effort. πŸ”₯
  • --noinsertion β€” Never flip-in a point that is unused in the seed triangulation.
  • --reducepoints β€” Try to greedily minimize the number of vertices used while flipping; keep a global upper bound on the current minimal number of vertices and do not accept triangulations with more vertices.
  • --keepcard β€” Never change the cardinality of triangulations by flipping.

🌈 OPTIONS CONCERNING SYMMETRIES 🌈

  • --affinesymmetries β€” Assume that the symmetries are affine, in particular, that they conserve regularity.
  • --isometricsymmetries β€” Assume that the symmetries are isometric, in particular, that they preserve volume.
  • --nosymmetries β€” Ignore the symmetries. Bye symmetry, not today. πŸ™ˆ

🧚 OPTIONS CONTROLLING THE INTERNALS OF THE CLIENTS 🧚

  • --memopt β€” Save memory by using caching techniques. Memory queen. πŸ‘‘
  • --usegkz β€” Use GKZ vectors as a finger print in symmetry handling (only for points with isometric symmetries).
  • --usenaivesymmetries β€” Use naive full traversal of all symmetries for symmetry handling.
  • --useswitchtables β€” Use Jordan-Joswig-Kastner switch tables for symmetry handling.
  • --usesymmetrytables β€” Use tables of classified symmetries for symmetry handling. Obsolete, since slower than the other options. Bestie, it's obsolete and slower. Skip it unless you're feeling nostalgic. πŸ’€
  • --symtables [n] β€” Use [n] symtables for preprocessing symmetries. Obsolete, since slower than the other options. Same energy: obsolete and slower. 🫠
  • --preprocesschiro β€” Preprocess the chirotope (default for points2[n]alltriangs).
  • --preprocesspoints β€” Heuristically transform points (only relevant for (co)circuit enumeration). Yes, this option shows up again later with a different description. The original did that, and we're keeping both. πŸ’…
  • --simpidxsymmetries β€” Preprocess a representation of the symmetry group on simplex indices (only relevant for triangulation enumeration).
  • --userandomorder β€” Sort simplices in preprocessed index table randomly (only for points with isometric symmetries).
  • --usevolumeorder β€” Sort simplices in preprocessed index table by volume (only for points with isometric symmetries).
  • --usevolumes β€” Use volumes to check extendability of partial triangulations (only for points with isometric symmetries).
  • --fullextensioncheck β€” Put more effort in the check of extendability of a partial triangulation.
  • --noextensioncheck β€” Skip the check of extendability of a partial triangulation.
  • --extensioncheckfirst β€” Check extendability prior to symmetry.
  • --preprocesspoints β€” Preprocess the coordinate matrix of the points (slightly useful for (co-)circuit enumeration). Yep, second time. Still valid. πŸ“
  • --chirocache [n] β€” Set the chirotope cache to n elements.
  • --localcache [n] β€” Set the cache for local operations.
  • --qsopt_ex β€” Use QSopt_ex for regularity checks (not thread-safe). ⚠️ Not thread-safe, so don't come for me if you parallelize it.
  • --soplex β€” Use soplex for regularity checks (requires separate installation of soplex). You gotta install soplex separately, bestie. No default slay. πŸ› οΈ

πŸ’… OPTIONS CONCERNING MULTI-THREADING πŸ’…

  • --parallelenumeration β€” Use multiple threads for enumeration.
  • --workbuffercontrol β€” Control the interrupt of workers by size of the current workbuffer.
  • --parallelsymmetries β€” Use multiple threads only locally for symmetry checks.
  • --threads [n] β€” Use [n] threads (if possible).
  • --minnodebudget [n] β€” Let each thread process at least [n] nodes (to avoid multithreading overhead).
  • --maxnodebudget [n] β€” Let each thread process at most [n] nodes (to avoid thread starving).
  • --scalenodebudget [n] β€” Scale the default node budget by [n] percent (n integer).
  • --minworkbuffer [n] β€” (Currently unused.) Try to keep the work buffer above [n] nodes (to balance overhead and thread starving). Note: currently unused.
  • --maxworkbuffer [n] β€” (Currently unused.) Try to keep the work buffer below [n] node (to balance overhead and thread starving). Also currently unused. 🫢

🌟 OPTIONS FOR WARM STARTS FROM PREVIOUS CALCULATIONS 🌟

These options currently only work for an interrupted flip graph exploration. Like, if you stopped mid-flip-graph and want to come back. πŸ’–

  • --dump β€” Write intermediate results into a file.
  • --dumpfile [dumpfilename] β€” Write intermediate results into file dumpfilename (default: TOPCOM.dump).
  • --dumpfrequency [k] β€” Dump the results of each *k*th BFS round.
  • --dumprotations [k] β€” Dump into k different rotating files.
  • --read β€” Read intermediate results from a file.
  • --readfile [readfilename] β€” Read intermediate results from file dumpfilename (default: TOPCOM.dump.[rotationnumber]).

πŸ‘‘ AUTHOR πŸ‘‘

This manpage was adapted from sections 4 and 5 of the TOPCOM Manual by Jârg Rambau. See https://www.wm.uni-bayreuth.de/de/team/rambau_joerg/TOPCOM-Manual/. Shoutout to Jârg for the source material. 🫢


And that's the whole vibe, bestie. This page is from version 1.1.2, dated 01 April 2024, and it's the TOPCOM(7) manual page. Bye, ily, go enumerate something iconic. πŸ’–βœ¨

πŸ“¦ where this page comes from