BeBOP Sparse Matrix Converter
What is it?
The BeBOP Sparse Matrix Converter is a library and standalone utility
for converting between various file formats for sparse matrices. It
is part of my work for the
Berkeley Benchmarking and Optimization Group ("BeBOP").
Features include the following:
- Coded in platform-independent ANSI C99
- Tested on a wide variety of platforms
- Converts between Harwell-Boeing,
MatrixMarket and Matlab (ASCII)
file formats (see this discussion of the Harwell-Boeing format)
-
Can expand symmetric, skew-symmetric and hermitian storage into full storage
-
Handles real and complex (both double-precision only) value types,
as well as pattern-only matrices.
Uses C99's complex value types if available, else uses fallback struct
which is binary-compatible with C99's complex type, and supplies set of
default arithmetic operations
-
Support for the following internal storage formats:
- CSC (compressed sparse column, a.k.a. compressed column storage),
- CSR (compressed sparse row, a.k.a. compressed row storage),
-
COO (coordinate, a.k.a. "ijk", in which each nonzero is stored as a triplet (i,j,a_{ij})),
-
Block CSR (BCSR),
-
Block COO (BCOO),
-
Jagged diagonal (JAD)
-
Conversion between any of CSC, CSR and COO to any other of these
types. Conversion between block CSR and block COO. Conversion
from CSR to JAD.
-
Simple interface hides details of storage format from user, though
details still accessible if desired
-
Shell interface: allows interactive manipulation of sparse matrix files
-
Common Lisp interface (similar to the shell interface) using
CFFI
How do I get it?
Before you download the package, please send me an e-mail at "mhoemmen at cs
dot berkeley dot edu" (e-mail address obfuscated to confuse spammers). I'd
like to know how you plan to use the package, and if you have any feature
requests.
You need to download two packages:
Both packages are issued under a BSD license. BeBOP Utility Library last
updated 15:08 02 Dec 2007.
Installation
See the installation instructions, as
well as the README files in the source directories of the Utility Library
and the SMC, respectively.
This research was supported in part by the National Science
Foundation. The information presented here does not necessarily
reflect the position or the policy of the Government and no official
endorsement should be inferred.