# mm2gv - Man Page

Matrix Market-DOT converters

## Examples (TL;DR)

- Convert a graph from
`mm`

to`gv`

format:`mm2gv -o`

`output.gv``input.mm` - Convert a graph using
`stdin`

and`stdout`

:`cat`

`input.mm`| mm2gv >`output.gv` - Display help:
`mm2gv -?`

## 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/matrices/ for a large collection of sparse matrices in this format.