Safe Haskell | None |
---|---|
Language | Haskell2010 |
Algebra.LinkedMatrix
Synopsis
- data Matrix a
- toLists :: forall a. Monoidal a => Matrix a -> [[a]]
- fromLists :: DecidableZero a => [[a]] -> Matrix a
- fromList :: DecidableZero a => [((Int, Int), a)] -> Matrix a
- swapRows :: Int -> Int -> Matrix a -> Matrix a
- identity :: Unital a => Int -> Matrix a
- nonZeroRows :: Matrix r -> [Int]
- nonZeroCols :: Matrix r -> [Int]
- swapCols :: Int -> Int -> Matrix a -> Matrix a
- switchCols :: Int -> Int -> Matrix a -> Matrix a
- switchRows :: Int -> Int -> Matrix a -> Matrix a
- addRow :: DecidableZero a => Vector a -> Int -> Matrix a -> Matrix a
- addCol :: DecidableZero a => Vector a -> Int -> Matrix a -> Matrix a
- ncols :: Matrix a -> Int
- nrows :: Matrix a -> Int
- getRow :: Monoidal a => Int -> Matrix a -> Vector a
- getCol :: Monoidal a => Int -> Matrix a -> Vector a
- triangulateModular :: Matrix (Fraction Integer) -> (Matrix (Fraction Integer), Matrix (Fraction Integer))
- scaleRow :: (DecidableZero a, Multiplicative a) => a -> Int -> Matrix a -> Matrix a
- combineRows :: (DecidableZero a, Multiplicative a) => a -> Int -> Int -> Matrix a -> Matrix a
- combineCols :: (DecidableZero a, Multiplicative a) => a -> Int -> Int -> Matrix a -> Matrix a
- transpose :: Matrix a -> Matrix a
- inBound :: (Int, Int) -> Matrix a -> Bool
- height :: forall a. Lens' (Matrix a) Int
- width :: forall a. Lens' (Matrix a) Int
- cmap :: DecidableZero a => (a1 -> a) -> Matrix a1 -> Matrix a
- empty :: Matrix a
- rowVector :: DecidableZero a => Vector a -> Matrix a
- colVector :: DecidableZero a => Vector a -> Matrix a
- rowCount :: Int -> Matrix a -> Int
- colCount :: Int -> Matrix a -> Int
- traverseRow :: b -> (b -> Int -> Entry a -> b) -> Int -> Matrix a -> b
- traverseCol :: b -> (b -> Int -> Entry a -> b) -> Int -> Matrix a -> b
- data Entry a
- idx :: forall a. Lens' (Entry a) (Int, Int)
- value :: forall a a. Lens (Entry a) (Entry a) a a
- substMatrix :: CoeffRing r => Matrix r -> Polynomial r 1 -> Matrix r
- catRow :: DecidableZero b => Matrix b -> Vector b -> Matrix b
- catCol :: DecidableZero b => Matrix b -> Vector b -> Matrix b
- (<||>) :: DecidableZero b => Matrix b -> Matrix b -> Matrix b
- (<-->) :: DecidableZero b => Matrix b -> Matrix b -> Matrix b
- toRows :: Monoidal a => Matrix a -> [Vector a]
- toCols :: Monoidal a => Matrix a -> [Vector a]
- zeroMat :: Int -> Int -> Matrix a
- getDiag :: Monoidal a => Matrix a -> Vector a
- trace :: Monoidal c => Matrix c -> c
- diagProd :: (Unital c, Monoidal c) => Matrix c -> c
- diag :: DecidableZero a => Vector a -> Matrix a
- scaleCol :: (DecidableZero a, Multiplicative a) => a -> Int -> Matrix a -> Matrix a
- clearRow :: Int -> Matrix a -> Matrix a
- clearCol :: Int -> Matrix a -> Matrix a
- index :: Monoidal a => Key -> Int -> Matrix a -> Maybe a
- (!) :: Monoidal a => Matrix a -> (Int, Int) -> a
- nonZeroEntries :: Matrix a -> Vector ((Int, Int), a)
- rankLM :: (DecidableZero r, Division r, Group r) => Matrix r -> Int
- splitIndependentDirs :: (DecidableZero a, Field a) => Direction -> Matrix a -> (Matrix a, [Int], [Int])
- structuredGauss :: (DecidableZero a, Division a, Group a) => Matrix a -> (Matrix a, Matrix a)
- multWithVector :: (Multiplicative a, Monoidal a) => Matrix a -> Vector a -> Vector a
- solveWiedemann :: (Eq a, Field a, DecidableZero a, DecidableUnits a, ZeroProductSemiring a, Random a, MonadRandom m) => Matrix a -> Vector a -> m (Either (Vector a) (Vector a))
- henselLift :: Integer -> Matrix Integer -> Matrix Integer -> Vector Integer -> [Vector Integer]
- solveHensel :: Int -> Integer -> Matrix (Fraction Integer) -> Vector (Fraction Integer) -> Maybe (Vector (Fraction Integer))
- structuredGauss' :: (DecidableZero a, Division a, Group a) => Matrix a -> (Matrix a, Matrix a, a)
- intDet :: Matrix Integer -> Integer
Documentation
Instances
fromLists :: DecidableZero a => [[a]] -> Matrix a Source #
nonZeroRows :: Matrix r -> [Int] Source #
nonZeroCols :: Matrix r -> [Int] Source #
triangulateModular :: Matrix (Fraction Integer) -> (Matrix (Fraction Integer), Matrix (Fraction Integer)) Source #
scaleRow :: (DecidableZero a, Multiplicative a) => a -> Int -> Matrix a -> Matrix a Source #
combineRows :: (DecidableZero a, Multiplicative a) => a -> Int -> Int -> Matrix a -> Matrix a Source #
combineCols :: (DecidableZero a, Multiplicative a) => a -> Int -> Int -> Matrix a -> Matrix a Source #
substMatrix :: CoeffRing r => Matrix r -> Polynomial r 1 -> Matrix r Source #
scaleCol :: (DecidableZero a, Multiplicative a) => a -> Int -> Matrix a -> Matrix a Source #
structuredGauss :: (DecidableZero a, Division a, Group a) => Matrix a -> (Matrix a, Matrix a) Source #
multWithVector :: (Multiplicative a, Monoidal a) => Matrix a -> Vector a -> Vector a Source #
solveWiedemann :: (Eq a, Field a, DecidableZero a, DecidableUnits a, ZeroProductSemiring a, Random a, MonadRandom m) => Matrix a -> Vector a -> m (Either (Vector a) (Vector a)) Source #
Solving linear equation using linearly recurrent sequence (Wiedemann algorithm).
solveHensel :: Int -> Integer -> Matrix (Fraction Integer) -> Vector (Fraction Integer) -> Maybe (Vector (Fraction Integer)) Source #
structuredGauss' :: (DecidableZero a, Division a, Group a) => Matrix a -> (Matrix a, Matrix a, a) Source #