Quiver software suite

Suite of programs to perform calculations with quivers.


libqv is the main library which contains the algorithms and data structures which the other programs all depend upon.

This contains a suite of unit tests which run using googletest. The googletest libraries must be installed should you wish to run these tests. Otherwise the library can be built without building the tests.


qvtrim is a program to filter the output of other qv* programs to extract useful information. Full details can be found on the project page.

The main use of this is to filter an output to prevent any repeated matrices from being shown, or to extract all matrices which are mutation-equivalent.


qvmmi is a program designed to run using MPI. This allows it to run on large distributed systems such as supercomputers.

The program takes a file of mutation-finite quivers as input, tries to add a vertex to each in as many ways as it can and checks if the resulting quivers are minimal mutation-infinite quivers.

The parallelization is achieved by having a single master node read the input and add the vertices to each quiver. The master then passes the resulting quivers to the slave nodes to check whether they are minimal mutation-infinite.


qvfin constructs all mutation-finite quivers of a given size. The program itself is a script which relies upon qvtrim and a program qvfex included in qvfin project page.

qvfex checks all possible mutation-finite extensions of each matrix provided to it and outputs any which are mutation-finite.


qvmove is a program to check the number of moves required to transform the input matrices to one of the class representatives. The output contains the number of moves and the number of sink-source mutations required for each input.

Included in the repository is also qvmovecl which takes a representative as input and computes the entire move class for that representative. This was used in putting together the minimal mutation-infinite quiver database.


qvdraw is a script which uses gml2pic and the OGDF library to draw pictures of the quivers output from qv* programs.

The script uses two small programs qv2gml and gmlayout to construct a file to pass to gml2pic. These are available on the qvdraw project page.