matrix-market-attoparsec 0.1.0.0 → 0.1.0.1
raw patch · 4 files changed
+31/−11 lines, 4 filesdep −vectorPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
Dependencies removed: vector
API changes (from Hackage documentation)
+ Data.Matrix.MatrixMarket: Array :: Format
+ Data.Matrix.MatrixMarket: CArray :: (Int, Int) -> Structure -> [Complex a] -> Array a
+ Data.Matrix.MatrixMarket: CMatrix :: (Int, Int) -> Int -> Structure -> [(Int, Int, Complex a)] -> Matrix a
+ Data.Matrix.MatrixMarket: Coordinate :: Format
+ Data.Matrix.MatrixMarket: General :: Structure
+ Data.Matrix.MatrixMarket: Hermitian :: Structure
+ Data.Matrix.MatrixMarket: IntMatrix :: (Int, Int) -> Int -> Structure -> [(Int32, Int32, Int)] -> Matrix a
+ Data.Matrix.MatrixMarket: PatternMatrix :: (Int, Int) -> Int -> Structure -> [(Int32, Int32)] -> Matrix a
+ Data.Matrix.MatrixMarket: RArray :: (Int, Int) -> Structure -> [a] -> Array a
+ Data.Matrix.MatrixMarket: RMatrix :: (Int, Int) -> Int -> Structure -> [(Int, Int, a)] -> Matrix a
+ Data.Matrix.MatrixMarket: Skew :: Structure
+ Data.Matrix.MatrixMarket: Symmetric :: Structure
+ Data.Matrix.MatrixMarket: data Array a
+ Data.Matrix.MatrixMarket: data Format
+ Data.Matrix.MatrixMarket: data Matrix a
+ Data.Matrix.MatrixMarket: data Structure
+ Data.Matrix.MatrixMarket: dim :: Matrix t -> (Int, Int)
+ Data.Matrix.MatrixMarket: dimArr :: Array t -> (Int, Int)
+ Data.Matrix.MatrixMarket: nnz :: Matrix t -> Int
+ Data.Matrix.MatrixMarket: numDat :: Matrix t -> Int
+ Data.Matrix.MatrixMarket: numDatArr :: Array a -> Int
+ Data.Matrix.MatrixMarket: readArray :: FilePath -> IO (Array Scientific)
+ Data.Matrix.MatrixMarket: readMatrix :: FilePath -> IO (Matrix Scientific)
+ Data.Matrix.MatrixMarket: writeArray :: Show a => FilePath -> Array a -> IO ()
+ Data.Matrix.MatrixMarket: writeMatrix :: Show b => FilePath -> Matrix b -> IO ()
Files
- matrix-market-attoparsec.cabal +1/−3
- src/Data/Matrix/MatrixMarket.hs +23/−1
- src/Data/Matrix/MatrixMarket/Internal.hs +5/−4
- test/LibSpec.hs +2/−3
matrix-market-attoparsec.cabal view
@@ -1,5 +1,5 @@ name: matrix-market-attoparsec-version: 0.1.0.0+version: 0.1.0.1 synopsis: Attoparsec parsers for the NIST Matrix Market format description: Please see README.md homepage: https://github.com/ocramz/matrix-market-attoparsec@@ -29,10 +29,8 @@ build-depends: attoparsec >= 0.10 , base >= 4.7 && < 5 , bytestring >= 0.9- , directory , exceptions , scientific >= 0.3.4.9- , vector >= 0.7 -- executable matrix-market-attoparsec -- default-language: Haskell2010
src/Data/Matrix/MatrixMarket.hs view
@@ -1,3 +1,25 @@-module Data.Matrix.MatrixMarket (module M) where+-----------------------------------------------------------------------------+-- |+-- Module : Data.Matrix.MatrixMarket+-- Copyright : (c) Marco Zocca 2017+-- License : GPL-3 (see the file LICENSE)+--+-- Maintainer : zocca marco gmail+-- Stability : experimental+-- Portability : portable+--+-- Attoparsec parser and serializer for the NIST MatrixMarket format. The parser logic originally appeared in `accelerate-examples` and it is reused here (courtesy of T.McDonell and the `accelerate` developers) with some amendments.+-- +-- In this version:+-- *) Numbers are represented with Scientific notation instead of floating point+-- *) Parsing rules are a bit relaxed to accommodate various whitespace corner cases+--+-----------------------------------------------------------------------------+module Data.Matrix.MatrixMarket (module M, readMatrix, readArray,+ writeMatrix, writeArray,+ Matrix(..), Array(..),+ Format (Coordinate, Array), Structure (General, Symmetric, Hermitian, Skew),+ nnz, dim, numDat,+ dimArr, numDatArr) where import Data.Matrix.MatrixMarket.Internal as M
src/Data/Matrix/MatrixMarket/Internal.hs view
@@ -3,7 +3,7 @@ -- | -- Module : Data.Matrix.MatrixMarket.Internal -- Copyright : (c) Marco Zocca 2017--- License : GPL-style (see the file LICENSE)+-- License : GPL-3 (see the file LICENSE) -- -- Maintainer : zocca marco gmail -- Stability : experimental@@ -33,7 +33,7 @@ import Data.Complex import qualified Data.Scientific as S import Data.Attoparsec.ByteString.Char8 hiding (I)-import qualified Data.ByteString as BS+-- import qualified Data.ByteString as BS import qualified Data.ByteString.Lazy.Char8 as B import qualified Data.Attoparsec.Lazy as L import qualified Data.ByteString.Lazy as L@@ -309,10 +309,11 @@ -- | String -> ByteString -- NB: do not abuse-toBS :: String -> BS.ByteString-toBS x = BS.pack $ (toEnum . C.ord) <$> x+-- toBS :: String -> BS.ByteString+-- toBS x = BS.pack $ (toEnum . C.ord) <$> x -- | String -> lazy ByteString+-- NB: do not abuse toLBS :: String -> L.ByteString toLBS x = L.pack $ (toEnum . C.ord) <$> x
test/LibSpec.hs view
@@ -1,10 +1,9 @@ module LibSpec where -import Control.Exception import System.Directory (removeFile) import Test.Hspec-import Test.Hspec.QuickCheck+-- import Test.Hspec.QuickCheck import Data.Matrix.MatrixMarket @@ -42,7 +41,7 @@ (m,n) = dimArr mm d = m*n -+dataDir :: String dataDir = "data" roundTrip :: Format -> FilePath -> IO ()