sigma-ij-0.2.0.2: Thom polynomials of second order Thom-Boardman singularities

Safe HaskellNone
LanguageHaskell2010

Math.Algebra.Determinant

Contents

Description

Determinants.

TODO: specialized prime fields; fast C implementation; pivoting for Bareiss

Synopsis

matrices

type Matrix a = Array (Int, Int) a Source #

printMatrix :: Show a => Matrix a -> IO () Source #

a type class for determinants

C implementation of determinant in a prime field (gaussian elimination, fitting into 64 bit)

Bareiss determinant algorithm

type STMatrix s a = STArray s (Int, Int) a Source #

bareissDeterminantFullRank :: forall a. Integral a => Matrix a -> a Source #

Works only if the top-left minors all have nonzero determinants

Gaussian elimination

gaussElimDeterminant :: forall a. (Eq a, Show a, Fractional a) => Matrix a -> a Source #

naive determinant algorithm (for testing purposes)

naiveDeterminant :: forall a. Num a => Matrix a -> a Source #

random matrices

mkSquareMatrix :: (Int -> Int -> a) -> Int -> Matrix a Source #

randomMatrix :: (Random a, Num a) => Int -> IO (Matrix a) Source #

randomMatrix' :: (Random a, Num a) => a -> Int -> IO (Matrix a) Source #

printST :: Show a => a -> ST s () Source #

testing

test :: IO () Source #