úÎ$Ï#A     NoneNumber of rows. Number of columns. 0Just a cool way to output the size of a matrix. Display a matrix as a . 5One-dimensional encoding of a two-dimensional index.  m   m =  5One-dimensional decoding of a two-dimensional index.  m   m =  #The zero matrix of the given size. -Generate a matrix from a generator function. $Identity matrix of the given order. Get an element of a matrix. Nice alias for . The transpose of a matrix. /Extend a matrix to a given size adding zeroes. A If the matrix already has the required size, nothing happens. Extract a submatrix. GMake a block-partition of a matrix using a given element as reference. S The element will stay in the bottom-right corner of the top-left corner matrix.  3 ( ) ( | ) 3 ( ) ( ... | ... ) 3 ( x ) ( x | ) G splitBlocks i j ( ) = (-------------) , where x = a_{i,j} 3 ( ) ( | ) 3 ( ) ( ... | ... ) 3 ( ) ( | ) XNote that some blocks can end up empty. We use the following notation for these blocks:   ( TL | TR )  (---------)  ( BL | BR ) 0Where T = Top, B = Bottom, L = Left, R = Right. /Implementation is done via slicing of vectors. $Join blocks of the form detailed in  . *Horizontally join two matrices. Visually:   ( A ) <|> ( B ) = ( A | B ) Where both matrices A and B have the same number of rows. (Vertically join two matrices. Visually:   ( A )  ( A ) <-> ( B ) = ( - )  ( B ) Where both matrices A and B" have the same number of columns. Columns of the matrix. Columns of the matrix. Rows Columns Rows Columns Generator function Row Column Matrix  Minimal number of rows. Minimal number of columns.  Starting row  Ending row Starting column Ending column Row of the splitting element. !Column of the splitting element. Matrix to split. (TL,TR,BL,BR)           !" matrix-0.1 Data.MatrixMatrixnrowsncols prettyMatrixzeromatrixidentitygetElem! transposeextendTo submatrix splitBlocks joinBlocks<|><->sizeStrbaseGHC.BaseStringencodedecode.idMmvectstrassenfirst $fNumMatrix$fFunctorMatrix$fNFDataMatrix $fShowMatrix