sympol(1)

πŸ“¦ version 0.1.9, in arch rolling, opensuse-leap 16.0

🌸 SYMPOL πŸ’…

okay so real talk, bestie β€” this is sympol, section 1 of the manual, and it's literally the symmetric polyhedra tool. Like, that's the whole vibe. Buckle up πŸŽ€


✨ SYNOPSIS ✨

sympol [OPTIONS] [INPUT_FILE]

πŸ¦‹ DESCRIPTION πŸ¦‹

SymPol computes restricted automorphisms of polyhedra, and it also does polyhedral description conversion β€” up to a symmetry group that you either hand it or it figures out itself. Obsessed, honestly. πŸ’–

Mostly it speaks the .ine/.ext file format that cddlib and lrslib use (the lore lives at http://cgm.cs.mcgill.ca/~avis/C/lrslib/USERGUIDE.html#File%20Formats, iykyk). But here's the tea: unlike cddlib, SymPol requires that every inequality (that's the H-representation) or every vertex and ray (the V-representation) sit on a single line. No wrapping, no exceptions, periodt.

On top of that, SymPol offers an extension to the format. πŸ‘‘

That extension lets you embed the automorphism group of a polyhedron β€” or just parts of it β€” right there in the file. It goes after the end of the H- or V-representation of a permutation group, like this:

permutation group
p
 { list of #p group generators }
q
 { #q base points separated by whitespace }

The p group generators get written in cycle form, where commas separate the cycles. And the value q? You can set it to zero if no base of the group is known. Easy. 🌈


πŸ’… OPTIONS πŸ’…

  • -h, --help β€” shows you a help message. The classic. 🫢
  • -v, --verbose[=N] β€” sets the verbosity level, which is 0 by default. If you leave N off, 1 is assumed. πŸ‘€
  • -t, --time β€” turns on time measurement. Clock it. ⏱️
  • -i, --input-file FILE β€” reads an input file (.ine or .ext). You can also just list the file last on the command line, if that's more your vibe.
  • --automorphisms-only β€” computes only restricted automorphisms, then dips out. ✌️
  • --no-automorphisms β€” ignores the symmetry group you gave it and doesn't even try to compute restricted automorphisms. Not me ignoring the assignment 😭
  • --bliss β€” uses the bliss graph automorphism tool to compute restricted automorphisms. This is the default if bliss is available.
  • --permlibmatrix β€” uses the PermLib matrix automorphism search to compute restricted automorphisms.
  • --eigen β€” uses floating point arithmetic based on Eigen to compute restricted automorphisms.
  • -e, --estimation-only β€” computes only the LRS estimation, then bails. πŸšͺ
  • -d, --direct β€” computes the dual description directly.
  • -a, --adm β€” uses one level of adjacency decomposition and solves the subproblems directly.
  • --idm-adm-level idm-level adm-level β€” uses a combined IDM/ADM strategy with the levels you indicate.
  • --adm-idm-level adm-level idm-level β€” uses a combined ADM/IDM strategy with the levels you indicate. (yes, the order of the arguments flips too, stay woke πŸ‘οΈ)
  • --adm-estimate threshold β€” uses the adjacency decomposition method right up to the given estimate threshold.
  • --adm-dim threshold β€” uses the adjacency decomposition method right up to the given dimension threshold.
  • --adm-incidence threshold β€” uses the adjacency decomposition method right up to the given incidence number threshold.
  • --idm-adm idm-threshold adm-threshold β€” uses a combined IDM/ADM strategy with the thresholds you indicate.
  • --cdd β€” uses cdd for core dual description conversion. ⚠️ EXPERIMENTAL, so like… be careful, bestie.
  • --adjacencies β€” records facet adjacencies. Requires the ADM method at level 0. No level 0, no adjacency recording β€” that's the rule. 🚧

🧚 PARAMETERS 🧚

  • --conf-lrs-estimates=N β€” how many estimates LRS performs (default: 8).
  • --conf-lrs-estimate-maxdepth=N β€” the maximal allowed depth of LRS estimates (default: 3).
  • --conf-compute-invariants=N β€” the maximal degree of permutation group invariant polynomials to use (default: 0).
  • --conf-compute-orbit-limit=N β€” memory limit, in megabytes, for computing the full orbit (default: 1024).
  • --conf-compute-canonical-representatives=N β€” nonzero to compute canonical representatives for faces (default: 0).
  • --conf-intermediate-poly-fileprefix=PREFIX β€” prefix for the filenames in which intermediate polyhedra get saved. Super useful for debugging and analyzing instances. Default: empty prefix (so, like, nothing 🫧).

ngl, that .ine/.ext single-line rule is the one thing people trip on the most β€” every inequality, vertex and ray on its own one line, no cap. πŸ’€

okay that's the whole page, bestie!! mwah πŸ“

SymPol version 0.1.6 β€” and this served you all of that as sympol(1). go slay some polyhedra πŸ‘‘πŸ’œ