# mm2gv man page

mm2gv — Matrix Market-DOT converters

## Synopsis

## Description

**mm2gv** converts a sparse matrix of the Matrix Market format to a graph in the GV (formerly DOT) format. If the matrix *M* is not square, the graph is considered bipartite and the matrix is viewed as a bipartite graph adjacency matrix, with the rows and columns of the matrix specifying the two sets of vertices. Equivalently, the matrix is converted into a symmetric square matrix

0 | M |

${M}^{T}$ | 0 |

a block matrix with square blocks of 0's in the upper left and lower right, the upper right block being *M* and the lower left block being the transpose of *M*. This matrix is then viewed as the adjacency matrix of the graph.

For a square matrix, **mm2gv** uses it directly as an adjacency matrix if its pattern of non-zero entries is symmetric; otherwise, it will treat it as a bipartite graph as with the case of non-square matrices. This behavior can be modified by the **-U** flag.

## Options

The following options are supported:

**-c**- This flag causes
**mm2gv**to assign colors to the edges. The matrix element is scaled to the range [0,1] depending on where it lies between the minimum and maximum set matrix values. This scaled value is used as the*"wt"*attribute of the corresponding edge. In addition, this scalar value is mapped to an RGB value, which is stored as the edge*"color"*. **-l**- If set,
**mm2gv**attaches a label to the graph indicating the base name of the input file, and the number of nodes and edges. **-u**- If specified, the graph is assumed to be undirected. By default, the graph generated is directed.
**-v**- This flag causes
**mm2gv**to store the matrix values as the*"len"*attribute of the corresponding edge. **-U***bflag*- Specifies how square matrices are handled. If
*bflag*is 0, a square matrix will always be treated as an adjacency matrix. If*bflag*is 1 (the default), a square matrix with a symmetric pattern of non-zero entries will be used as an adjacency matrix; otherwise, it will be used a bipartite graph. If*bflag*is 2, a symmetric matrix will be used as an adjacency matrix; otherwise, it will be used a bipartite graph. If*bflag*is 3, any input matrix will be treated like a bipartite graph. **-o***outfile*- Prints output to the file
*outfile*. If not given,**mm2gv**uses stdout.

## Operands

The following operand is supported:

*file*- Name of the file in MatrixMarket format. If no
*file*operand is specified, the standard input will be used.

## Return Codes

Return **0** if there were no problems during conversion; and non-zero if any error occurred.

## Authors

Yifan Hu <yifanhu@yahoo.com>

Emden R. Gansner <erg@graphviz.com>

## Additional Info

See http://math.nist.gov/MatrixMarket/ for description of the format and http://www.cise.ufl.edu/research/sparse… for a large collection of sparse matrices in this format.