----------------------------------------------------------------------------- -- | -- Module : Data.Matrix.Dense.Class -- Copyright : Copyright (c) , Patrick Perry -- License : BSD3 -- Maintainer : Patrick Perry -- Stability : experimental -- -- An overloaded interface to mutable dense matrices. For matrix types -- than can be used with this interface, see "Data.Matrix.Dense.IO" and -- "Data.Matrix.Dense.ST". Many of these functions can also be used with -- the immutable type defined in "Data.Matrix.Dense". -- module Data.Matrix.Dense.Class ( -- * Dense matrix type classes BaseMatrix( ldaMatrix, isHermMatrix, transEnumMatrix, coerceMatrix ), ReadMatrix, WriteMatrix, -- * Overloaded interface for matrices module Data.Matrix.Class, module Data.Matrix.Class.MMatrix, -- * Creating matrices newMatrix_, newMatrix, newListMatrix, newRowsMatrix, newColsMatrix, newRowMatrix, newColMatrix, -- * Special matrices newZeroMatrix, setZeroMatrix, newConstantMatrix, setConstantMatrix, newIdentityMatrix, setIdentityMatrix, -- * Copying matrices newCopyMatrix, newCopyMatrix', copyMatrix, swapMatrix, -- * Swapping rows and columns swapRows, swapCols, -- * Matrix views submatrixView, splitRowsAt, splitColsAt, -- * Row and column views rowViews, colViews, rowView, colView, diagView, -- * Conversions between matrices and vectors liftMatrix, liftMatrix2, maybeViewMatrixAsVector, maybeViewVectorAsMatrix, maybeViewVectorAsRow, maybeViewVectorAsCol, -- * Getting diagonals getDiag, -- * Overloaded interface for reading and writing matrix elements module Data.Tensor.Class, module Data.Tensor.Class.MTensor, -- * Matrix operations -- ** Unary getConjMatrix, getScaledMatrix, getShiftedMatrix, doConjMatrix, scaleByMatrix, shiftByMatrix, -- ** Binary getAddMatrix, getSubMatrix, getMulMatrix, getDivMatrix, addMatrix, subMatrix, axpyMatrix, mulMatrix, divMatrix, -- * Conversions between mutable and immutable matrices freezeMatrix, thawMatrix, unsafeFreezeMatrix, unsafeThawMatrix, -- * Conversions from @IOMatrix@s unsafeMatrixToIOMatrix, unsafeConvertIOMatrix, unsafePerformIOWithMatrix, ) where import Data.Matrix.Dense.Base import Data.Matrix.Class import Data.Matrix.Class.MMatrix import Data.Tensor.Class import Data.Tensor.Class.MTensor