  Determination of topological invariants of graphene flakes, nanotubes, and
fullerenes constitutes a challenging task due to its time-intensive nature and
exponential scaling. The invariants can be organized in a form of a
combinatorial polynomial commonly known as the Zhang-Zhang (ZZ) polynomial or
the Clar covering polynomial. We report here a computer program, ZZPolyCalc,
specifically designed to compute ZZ polynomials of large carbon nanostructures.
The curse of exponential scaling is avoided for a broad class of nanostructures
by employing a sophisticated bookkeeping algorithm, in which each fragment
appearing in the recursive decomposition is stored in the cache repository of
molecular fragments indexed by a hash of the corresponding adjacency matrix.
Although exponential scaling persists for the remaining nanostructures, the
computational time is reduced by a few orders of magnitude owing to efficient
use of hash-based fragment bookkeeping. The provided benchmark timings show
that ZZPolyCalc allows for treating much larger carbon nanostructures than
previously envisioned.
