BCOMPS(1)

πŸ“¦
version 16.1.0 Β· 2 versions
, in alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu resolute, ubuntu stonking

πŸ’– BCOMPS(1) πŸ’–

okay bestie, gather round, because we're about to talk about bcomps β€” a General Commands Manual classic and honestly? a biconnected components filter for graphs. no cap.


✨ NAME ✨

bcomps β€” biconnected components filter for graphs. that's it, that's the girl. πŸ’…


🌸 SYNOPSIS 🌸

bcomps [ -stvx?  ] [ -ooutfile ] [ files ]

look at her. so compact. so powerful. 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

so what does she actually DO? bcomps decomposes graphs into their biconnected components, and then prints the components to standard output. like, she takes your graph apart at the joints and shows you every piece. it's giving surgeon. it's giving main character energy. πŸ”₯


πŸ’… OPTIONS πŸ’…

here's every single flag she supports, and yes, we're doing all of them, no skips:

  • -s β€” no output graph is printed at all. and btw, this implies the -v flag, so you get the numbers whether you asked or not. πŸ™ˆ
  • -t β€” prints the underlying block-cutvertex tree. the whole tree. iconic. 🌈
  • -x β€” each biconnected component gets printed as a separate root graph. one graph per block, no sharing. πŸ’€
  • -v β€” prints the number of blocks and cutvertices. the stats girlies love this one. ⭐
  • -o outfile β€” if you specify this, each root graph gets written to a different file, with names derived from outfile. specifically: if you use both -o and -x, then each block gets written to a different file. if outfile doesn't have a suffix, the *n*th block of the *i*th graph is written to outfile_n_i. BUT β€” and this is the little twist β€” the 0th block of the 0th graph is written to outfile. (zero-indexed, bestie, the first one is special πŸ‘‘)
    • if outfile does have a suffix, i.e. it has the form base.sfx, then the files get the same names as above, except with .sfx appended. so cute, so consistent. πŸŽ€
    • the block-cutvertex tree of the *i*th graph is written to outfile_n_T, with an appended suffix if one was specified. yep, she remembers the tree too. 🧚

by default, each input graph is printed, with each block given as a subgraph whose name is a concatenation of the name of the input graph, the string _bcc_, and the number of the block. so you get names like whatever_bcc_0, whatever_bcc_1... you get the vibe. πŸ’œ


πŸ“ OPERANDS πŸ“

only one operand, and she's a good one:

  • files β€” names of files containing 1 or more graphs in dot format. if you don't specify any files operand, the standard input will be used. so you can just pipe things in, no judgment. 🫢

⭐ RETURN CODES ⭐

  • bcomps returns 0 if all the input graphs are biconnected.
  • and non-zero if any graph has multiple blocks, or if any error occurred. 😭

πŸ’€ BUGS πŸ’€

it is possible β€” though, like, unlikely β€” that the names used for connected components and their subgraphs may conflict with existing subgraph names. so keep an eye out. ngl it's a real possibility, just a rare one. πŸ™ˆ

πŸ‘‘ AUTHORS πŸ‘‘

Emden R. Gansner <erg@research.att.com> β€” the legend herself. thank you for your service. πŸ’–


🌈 SEE ALSO 🌈

ccomps(1), gc(1), dot(1), gvpr(1), gvcolor(1), acyclic(1), sccmap(1), tred(1), libgraph(3) β€” the whole friend group, go say hi. ✨


and that's the page, bestie. this was BCOMPS(1), from the General Commands Manual, dated 18 November 2003. slay. periodt. πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from