UNIQG(1)

πŸ“¦
version 2.9.3 Β· 3 versions
, in fedora 43, fedora 44

πŸ’– NAME πŸ’–

uniqg β€” bestie's manual page for uniqg version 2.9.3 πŸ¦‹


✨ SYNOPSIS ✨

uniqg [-q] [-xFILE] [-Xfile] [-hFILE] [-fxxx] [-u|-S|-t]
[-c] [-k] [-i# -I#:# -K#] [infile [outfile]]

🌸 DESCRIPTION 🌸

okay so picture this: you have a whole file of graphs (or digraphs) and some of them are literally the same graph wearing a different outfit. uniqg says not on my watch and removes the duplicates for you. πŸ’…

The SHA256 cryptographic hash function is used for comparisons, so yeah, it's serious about it. πŸ”₯


πŸ‘‘ THE OPTIONS (still DESCRIPTION, but make it a moment) πŸ‘‘

  • -S β€” use sparse representation internally. 🫢
heads up bestie: this changes the canonical labelling. Multiple edges are not supported. One loop per vertex is ok.
  • -t β€” use Traces</c>.
  • -u β€” no output, just count. it's giving "I only want the number" energy. πŸ”’
  • -H β€” write hash codes (32 bytes), not graphs. note: this is binary output πŸ™ˆ
also note: the output depends on the endianness of the hardware, so -H and -h can only be used together on compatible endianness. mismatched endianness? tragedy. πŸ’€
  • -J β€” write hash codes without newlines, followed by newlines. this output cannot be read with -h. 😭
  • -k β€” write the input graph exactly, not a canonical graph. keep it as-is, no glow-up. ✨
  • -c β€” assume graphs from infile are canonically labelled already. trust.
  • -xFILE β€” read a file of graphs and exclude them from the output. 🚫
  • -XFILE β€” like -xFILE but assume they are already canonically labelled.
  • -hFILE β€” read a file of hash codes and exclude them from the output.
  • -F β€” flush output for each new graph. (expensive if there are many πŸ‘€)
  • -fxxx β€” specify a partition of the vertex set. xxx is any string of ASCII characters except nul. this string is considered extended to infinity on the right with the character 'z'. the sequence 'x^N', where x is a character and N is a number, is equivalent to writing 'x' N times. one character is associated with each vertex, in the order given. the labelling used obeys these rules:
    1. the new order of the vertices is such that the associated characters are in ASCII ascending order
    2. if two graphs are labelled using the same string xxx, the output graphs are identical iff there is an associated-character-preserving isomorphism between them.

if a leading '-' is used, as in -f-xxx, the characters are assigned to the vertices starting at the last vertex, and the new order of the vertices respects decreasing ASCII order. 🌈

  • -y β€” write a 256-bit cryptographic hashcode to stderr. this depends on the set of isomorphism classes but not their order. it also depends on -i, -I, -K, -S, -t and -c. πŸŽ€
  • -i# β€” select an invariant:
    • 1 = twopaths
    • 2 = adjtriang(K)
    • 3 = triples
    • 4 = quadruples
    • 5 = celltrips
    • 6 = cellquads
    • 7 = cellquins
    • 8 = distances(K)
    • 9 = indsets(K)
    • 10 = cliques(K)
    • 11 = cellcliq(K)
    • 12 = cellind(K)
    • 13 = adjacencies
    • 14 = cellfano
    • 15 = cellfano2
    • 16 = refinvar(K)
  • -I#:# β€” select mininvarlevel and maxinvarlevel (default 1:1). πŸ’œ
  • -K# β€” select invararg (default 3). ⭐
  • -q β€” suppress auxiliary information. quiet mode, main character silence. 🀫

that's the whole vibe, bestie β€” uniqg 2.9.3, September 2026, go dedupe those graphs and slay. periodt. πŸ’–βœ¨

πŸ“¦ 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