-----------------------------------------------------------------------------
-- |
-- Module      :  Data.Matrix.MatrixMarket
-- Copyright   :  (c) Marco Zocca 2017
-- License     :  BSD2 (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
       (-- * Load
        readMatrix, readArray,
        -- * Save
        writeMatrix, writeArray,
        -- 
        Matrix(..), Array(..),
        Format (Coordinate, Array), Structure (General, Symmetric, Hermitian, Skew),
        -- * Helpers
        -- ** Matrix-related
        nnz, dim, numDat,
        -- ** Array-related
        dimArr, numDatArr,
        -- * Exceptions
        ImportError) where

import Data.Matrix.MatrixMarket.Internal as M