fpnla-0.1: src/FPNLA/Matrix/Utils.hs
-- | This module defines commonly useful functions that are related specifically with vectors and matrices.
module FPNLA.Matrix.Utils where
import FPNLA.Matrix (Matrix(..))
-- | Prints a matrix to the standard output.
-- This operation requires the elements of the matrix to have an instance of 'Show' but does not requires a 'Show' instance for the matrix data type.
print_m :: (Show e, Matrix m e) => m e -> IO ()
print_m mi = for 0 0
where (m,n) = dim_m mi
for i j | i >= m = return ()
| j < n = (putStr . show $ elem_m i j mi) >> putStr " " >> for i (j+1)
| j >= n = putStrLn "" >> for (i+1) 0