HaskellForMaths-0.4.9: Combinatorics, group theory, commutative algebra, non-commutative algebra

Safe Haskell | None
Language | Haskell98

Math.Algebra.LinearAlgebra

Description

A module providing elementary operations involving scalars, vectors, and matrices over a ring or field. Vectors are represented as [a], matrices as [[a]]. (No distinction is made between row and column vectors.) It is the caller's responsibility to ensure that the lists have the correct number of elements.

The mnemonic for many of the arithmetic operations is that the number of angle brackets on each side indicates the dimension of the argument on that side. For example, v <*>> m is multiplication of a vector on the left by a matrix on the right.

Synopsis

- (<+>) :: Num a => [a] -> [a] -> [a]
- (<->) :: Num a => [a] -> [a] -> [a]
- (*>) :: Num a => a -> [a] -> [a]
- (<.>) :: Num a => [a] -> [a] -> a
- (<*>) :: Num a => [a] -> [a] -> [[a]]
- (<<+>>) :: Num a => [[a]] -> [[a]] -> [[a]]
- (<<->>) :: Num a => [[a]] -> [[a]] -> [[a]]
- (<<*>>) :: Num a => [[a]] -> [[a]] -> [[a]]
- (*>>) :: Num a => a -> [[a]] -> [[a]]
- (<<*>) :: Num a => [[a]] -> [a] -> [a]
- (<*>>) :: Num a => [a] -> [[a]] -> [a]
- fMatrix :: (Num t, Enum t) => t -> (t -> t -> a) -> [[a]]
- fMatrix' :: (Num t, Enum t) => t -> (t -> t -> a) -> [[a]]
- idMx :: Num a => Int -> [[a]]
- iMx :: Num t => Int -> [[t]]
- jMx :: Num t => Int -> [[t]]
- zMx :: Num t => Int -> [[t]]
- inverse :: (Eq a, Fractional a) => [[a]] -> Maybe [[a]]
- inverse1 :: (Eq a, Fractional a) => [[a]] -> [[a]]
- inverse2 :: (Eq a, Num a) => [[a]] -> [[a]]
- (!) :: [a] -> Int -> a
- rowEchelonForm :: (Eq a, Fractional a) => [[a]] -> [[a]]
- reducedRowEchelonForm :: (Eq a, Fractional a) => [[a]] -> [[a]]
- solveLinearSystem :: (Eq a, Fractional a) => [[a]] -> [a] -> Maybe [a]
- isZero :: (Foldable t, Eq a, Num a) => t a -> Bool
- inSpanRE :: (Eq a, Num a) => [[a]] -> [a] -> Bool
- rank :: (Eq a, Fractional a) => [[a]] -> Int
- kernel :: (Ord a, Fractional a) => [[a]] -> [[a]]
- kernelRRE :: (Ord a, Num a) => [[a]] -> [[a]]
- det :: (Eq a, Fractional a) => [[a]] -> a

# Documentation

(<+>) :: Num a => [a] -> [a] -> [a] infixl 6 Source #

u <+> v returns the sum u+v of vectors

(<->) :: Num a => [a] -> [a] -> [a] infixl 6 Source #

u <-> v returns the difference u-v of vectors

(*>) :: Num a => a -> [a] -> [a] infixr 8 Source #

k *> v returns the product k*v of the scalar k and the vector v

(<.>) :: Num a => [a] -> [a] -> a infixl 7 Source #

u <.> v returns the dot product of vectors (also called inner or scalar product)

(<*>) :: Num a => [a] -> [a] -> [[a]] infixl 7 Source #

u <*> v returns the tensor product of vectors (also called outer or matrix product)

(<<+>>) :: Num a => [[a]] -> [[a]] -> [[a]] infixl 6 Source #

a <<+>> b returns the sum a+b of matrices

(<<->>) :: Num a => [[a]] -> [[a]] -> [[a]] infixl 6 Source #

a <<->> b returns the difference a-b of matrices

(<<*>>) :: Num a => [[a]] -> [[a]] -> [[a]] infixl 7 Source #

a <<*>> b returns the product a*b of matrices

(*>>) :: Num a => a -> [[a]] -> [[a]] infixr 8 Source #

k *>> m returns the product k*m of the scalar k and the matrix m

(<<*>) :: Num a => [[a]] -> [a] -> [a] infixr 7 Source #

m <<*> v is multiplication of a vector by a matrix on the left

(<*>>) :: Num a => [a] -> [[a]] -> [a] infixl 7 Source #

v <*>> m is multiplication of a vector by a matrix on the right

fMatrix :: (Num t, Enum t) => t -> (t -> t -> a) -> [[a]] Source #

fMatrix' :: (Num t, Enum t) => t -> (t -> t -> a) -> [[a]] Source #

idMx :: Num a => Int -> [[a]] Source #

iMx :: Num t => Int -> [[t]] Source #

iMx n is the n*n identity matrix

jMx :: Num t => Int -> [[t]] Source #

jMx n is the n*n matrix of all 1s

zMx :: Num t => Int -> [[t]] Source #

zMx n is the n*n matrix of all 0s

inverse :: (Eq a, Fractional a) => [[a]] -> Maybe [[a]] Source #

The inverse of a matrix (over a field), if it exists

inverse1 :: (Eq a, Fractional a) => [[a]] -> [[a]] Source #

inverse2 :: (Eq a, Num a) => [[a]] -> [[a]] Source #

(!) :: [a] -> Int -> a Source #

rowEchelonForm :: (Eq a, Fractional a) => [[a]] -> [[a]] Source #

reducedRowEchelonForm :: (Eq a, Fractional a) => [[a]] -> [[a]] Source #

solveLinearSystem :: (Eq a, Fractional a) => [[a]] -> [a] -> Maybe [a] Source #

isZero :: (Foldable t, Eq a, Num a) => t a -> Bool Source #

inSpanRE :: (Eq a, Num a) => [[a]] -> [a] -> Bool Source #

rank :: (Eq a, Fractional a) => [[a]] -> Int Source #

kernel :: (Ord a, Fractional a) => [[a]] -> [[a]] Source #

kernelRRE :: (Ord a, Num a) => [[a]] -> [[a]] Source #

det :: (Eq a, Fractional a) => [[a]] -> a Source #

The determinant of a matrix (over a field)