matrix-sized-0.0.3: Haskell matrix library with interface to C++ linear algebra libraries.

Safe HaskellNone
LanguageHaskell2010

Data.Matrix.Static.LinearAlgebra

Documentation

class Arithmetic (mat1 :: MatrixKind) (mat2 :: MatrixKind) where Source #

Methods

(@@) :: (Numeric a, SingI n, SingI m, If (mat1 == mat2) mat1 Matrix ~ mat3) => mat1 n p Vector a -> mat2 p m Vector a -> mat3 n m Vector a infixr 8 Source #

Matrix multiplication

(%+%) :: (Numeric a, SingI n, SingI m, If (mat1 == mat2) mat1 Matrix ~ mat3) => mat1 n m Vector a -> mat2 n m Vector a -> mat3 n m Vector a infixr 8 Source #

(%-%) :: (Numeric a, SingI n, SingI m, If (mat1 == mat2) mat1 Matrix ~ mat3) => mat1 n m Vector a -> mat2 n m Vector a -> mat3 n m Vector a infixr 8 Source #

(%*%) :: (Numeric a, SingI n, SingI m, If (mat1 == mat2) mat1 SparseMatrix ~ mat3) => mat1 n m Vector a -> mat2 n m Vector a -> mat3 n m Vector a infixr 8 Source #

Instances
Arithmetic Matrix Matrix Source # 
Instance details

Defined in Data.Matrix.Static.LinearAlgebra

Methods

(@@) :: (Numeric a, SingI n, SingI m, If (Matrix == Matrix) Matrix Matrix ~ mat3) => Matrix n p Vector a -> Matrix p m Vector a -> mat3 n m Vector a Source #

(%+%) :: (Numeric a, SingI n, SingI m, If (Matrix == Matrix) Matrix Matrix ~ mat3) => Matrix n m Vector a -> Matrix n m Vector a -> mat3 n m Vector a Source #

(%-%) :: (Numeric a, SingI n, SingI m, If (Matrix == Matrix) Matrix Matrix ~ mat3) => Matrix n m Vector a -> Matrix n m Vector a -> mat3 n m Vector a Source #

(%*%) :: (Numeric a, SingI n, SingI m, If (Matrix == Matrix) Matrix SparseMatrix ~ mat3) => Matrix n m Vector a -> Matrix n m Vector a -> mat3 n m Vector a Source #

Arithmetic Matrix SparseMatrix Source # 
Instance details

Defined in Data.Matrix.Static.LinearAlgebra

Methods

(@@) :: (Numeric a, SingI n, SingI m, If (Matrix == SparseMatrix) Matrix Matrix ~ mat3) => Matrix n p Vector a -> SparseMatrix p m Vector a -> mat3 n m Vector a Source #

(%+%) :: (Numeric a, SingI n, SingI m, If (Matrix == SparseMatrix) Matrix Matrix ~ mat3) => Matrix n m Vector a -> SparseMatrix n m Vector a -> mat3 n m Vector a Source #

(%-%) :: (Numeric a, SingI n, SingI m, If (Matrix == SparseMatrix) Matrix Matrix ~ mat3) => Matrix n m Vector a -> SparseMatrix n m Vector a -> mat3 n m Vector a Source #

(%*%) :: (Numeric a, SingI n, SingI m, If (Matrix == SparseMatrix) Matrix SparseMatrix ~ mat3) => Matrix n m Vector a -> SparseMatrix n m Vector a -> mat3 n m Vector a Source #

Arithmetic SparseMatrix Matrix Source # 
Instance details

Defined in Data.Matrix.Static.LinearAlgebra

Methods

(@@) :: (Numeric a, SingI n, SingI m, If (SparseMatrix == Matrix) SparseMatrix Matrix ~ mat3) => SparseMatrix n p Vector a -> Matrix p m Vector a -> mat3 n m Vector a Source #

(%+%) :: (Numeric a, SingI n, SingI m, If (SparseMatrix == Matrix) SparseMatrix Matrix ~ mat3) => SparseMatrix n m Vector a -> Matrix n m Vector a -> mat3 n m Vector a Source #

(%-%) :: (Numeric a, SingI n, SingI m, If (SparseMatrix == Matrix) SparseMatrix Matrix ~ mat3) => SparseMatrix n m Vector a -> Matrix n m Vector a -> mat3 n m Vector a Source #

(%*%) :: (Numeric a, SingI n, SingI m, If (SparseMatrix == Matrix) SparseMatrix SparseMatrix ~ mat3) => SparseMatrix n m Vector a -> Matrix n m Vector a -> mat3 n m Vector a Source #

Arithmetic SparseMatrix SparseMatrix Source # 
Instance details

Defined in Data.Matrix.Static.LinearAlgebra

Methods

(@@) :: (Numeric a, SingI n, SingI m, If (SparseMatrix == SparseMatrix) SparseMatrix Matrix ~ mat3) => SparseMatrix n p Vector a -> SparseMatrix p m Vector a -> mat3 n m Vector a Source #

(%+%) :: (Numeric a, SingI n, SingI m, If (SparseMatrix == SparseMatrix) SparseMatrix Matrix ~ mat3) => SparseMatrix n m Vector a -> SparseMatrix n m Vector a -> mat3 n m Vector a Source #

(%-%) :: (Numeric a, SingI n, SingI m, If (SparseMatrix == SparseMatrix) SparseMatrix Matrix ~ mat3) => SparseMatrix n m Vector a -> SparseMatrix n m Vector a -> mat3 n m Vector a Source #

(%*%) :: (Numeric a, SingI n, SingI m, If (SparseMatrix == SparseMatrix) SparseMatrix SparseMatrix ~ mat3) => SparseMatrix n m Vector a -> SparseMatrix n m Vector a -> mat3 n m Vector a Source #

class Factorization mat where Source #

Methods

inverse :: (SingI n, Numeric a) => mat n n Vector a -> mat n n Vector a Source #

Matrix inverse

eigs :: (SingI k, SingI n, (k <= (n - 2)) ~ True) => Sing k -> mat n n Vector Double -> (Matrix k 1 (Complex Double), Matrix n k (Complex Double)) Source #

Eigenvalues (not ordered) and eigenvectors (as columns) of a general square matrix.

cholesky :: (Numeric a, SingI n) => mat n n Vector a -> mat n n Vector a Source #

Cholesky decomposition

Instances
Factorization Matrix Source # 
Instance details

Defined in Data.Matrix.Static.LinearAlgebra

Methods

inverse :: (SingI n, Numeric a) => Matrix n n Vector a -> Matrix n n Vector a Source #

eigs :: (SingI k, SingI n, (k <= (n - 2)) ~ True) => Sing k -> Matrix n n Vector Double -> (Matrix0 k 1 (Complex Double), Matrix0 n k (Complex Double)) Source #

cholesky :: (Numeric a, SingI n) => Matrix n n Vector a -> Matrix n n Vector a Source #

Factorization SparseMatrix Source # 
Instance details

Defined in Data.Matrix.Static.LinearAlgebra

Methods

inverse :: (SingI n, Numeric a) => SparseMatrix n n Vector a -> SparseMatrix n n Vector a Source #

eigs :: (SingI k, SingI n, (k <= (n - 2)) ~ True) => Sing k -> SparseMatrix n n Vector Double -> (Matrix k 1 (Complex Double), Matrix n k (Complex Double)) Source #

cholesky :: (Numeric a, SingI n) => SparseMatrix n n Vector a -> SparseMatrix n n Vector a Source #