The matrix-market-attoparsec package

[Tags:bsd2, library, test]

Please see

[Skip to Readme]


Change log CHANGELOG.markdown
Dependencies attoparsec (>=0.10), base (>=4.7 && <5), bytestring (>=0.9), exceptions, scientific (>= [details]
License BSD2
Copyright 2017 Marco Zocca
Author Marco Zocca
Maintainer zocca marco gmail
Stability Unknown
Category Parsers
Home page
Source repository head: git clone
Uploaded Mon Feb 20 08:02:21 UTC 2017 by ocramz
Distributions LTSHaskell:, NixOS:, Stackage:, Tumbleweed:
Downloads 81 total (17 in the last 30 days)
1 []
Status Docs available [build log]
Last success reported on 2017-02-20 [all 1 reports]




Maintainer's Corner

For package maintainers and hackage trustees

Readme for matrix-market-attoparsec

Readme for matrix-market-attoparsec-


Build Status

Attoparsec parser for the NIST Matrix Market format [1].

The library also contains functions for serializing to text file, and the read/write/read roundtrip works as expected.

User guide

The module Data.Matrix.MatrixMarket exports the user interface:

readMatrix :: FilePath -> IO (Matrix S.Scientific)

readArray :: FilePath -> IO (Array S.Scientific)

writeMatrix :: Show a => FilePath -> Matrix a -> IO ()

writeArray :: Show a => FilePath -> Array a -> IO ()  

The first two functions contain the parsing logic, and make use of scientific for parsing numerical data in scientific notation.

Naming convention

We follow the MatrixMarket format definitions, by which a "Matrix" is sparse and stored in coordinate format (row, column, entry), whereas an "Array" is a dense grid of numbers, stored in column-oriented form. Algebraic vectors, such as the right-hand sides of equation systems, are stored as n-by-1 Arrays.


test/LibSpec.hs contains a simple read/write/read sanity test for the included Matrix Marked data files (fidapm05.mtx and fidapm05_rhs1.mtx):

m0 <- readMatrix fname   -- load original
writeMatrix ftemp m0     -- save as temp
m1 <- readMatrix ftemp   -- load temp
m0 `shouldBe` m1         -- compare temp with original