  The GraphBLAS standard (GraphBlas.org) is being developed to bring the
potential of matrix based graph algorithms to the broadest possible audience.
Mathematically the Graph- BLAS defines a core set of matrix-based graph
operations that can be used to implement a wide class of graph algorithms in a
wide range of programming environments. This paper provides an introduction to
the mathematics of the GraphBLAS. Graphs represent connections between vertices
with edges. Matrices can represent a wide range of graphs using adjacency
matrices or incidence matrices. Adjacency matrices are often easier to analyze
while incidence matrices are often better for representing data. Fortunately,
the two are easily connected by matrix mul- tiplication. A key feature of
matrix mathematics is that a very small number of matrix operations can be used
to manipulate a very wide range of graphs. This composability of small number
of operations is the foundation of the GraphBLAS. A standard such as the
GraphBLAS can only be effective if it has low performance overhead. Performance
measurements of prototype GraphBLAS implementations indicate that the overhead
is low.
