hgeometry-kernel
Copyright(C) Frank Staals
Licensesee the LICENSE file
MaintainerFrank Staals
Safe HaskellNone
LanguageGHC2024

HGeometry.Matrix

Description

type-indexed matrices.

Synopsis

Documentation

newtype Matrix (n :: Nat) (m :: Nat) r Source #

A matrix of n rows, each of m columns, storing values of type r.

Constructors

Matrix (Vector n (Vector m r)) 

Instances

Instances details
(Functor (Vector n), Functor (Vector m)) => Functor (Matrix n m) Source # 
Instance details

Defined in HGeometry.Matrix.ByRows

Methods

fmap :: (a -> b) -> Matrix n m a -> Matrix n m b Source #

(<$) :: a -> Matrix n m b -> Matrix n m a Source #

(Foldable (Vector n), Foldable (Vector m)) => Foldable (Matrix n m) Source # 
Instance details

Defined in HGeometry.Matrix.ByRows

Methods

fold :: Monoid m0 => Matrix n m m0 -> m0 Source #

foldMap :: Monoid m0 => (a -> m0) -> Matrix n m a -> m0 Source #

foldMap' :: Monoid m0 => (a -> m0) -> Matrix n m a -> m0 Source #

foldr :: (a -> b -> b) -> b -> Matrix n m a -> b Source #

foldr' :: (a -> b -> b) -> b -> Matrix n m a -> b Source #

foldl :: (b -> a -> b) -> b -> Matrix n m a -> b Source #

foldl' :: (b -> a -> b) -> b -> Matrix n m a -> b Source #

foldr1 :: (a -> a -> a) -> Matrix n m a -> a Source #

foldl1 :: (a -> a -> a) -> Matrix n m a -> a Source #

toList :: Matrix n m a -> [a] Source #

null :: Matrix n m a -> Bool Source #

length :: Matrix n m a -> Int Source #

elem :: Eq a => a -> Matrix n m a -> Bool Source #

maximum :: Ord a => Matrix n m a -> a Source #

minimum :: Ord a => Matrix n m a -> a Source #

sum :: Num a => Matrix n m a -> a Source #

product :: Num a => Matrix n m a -> a Source #

(Traversable (Vector n), Traversable (Vector m)) => Traversable (Matrix n m) Source # 
Instance details

Defined in HGeometry.Matrix.ByRows

Methods

traverse :: Applicative f => (a -> f b) -> Matrix n m a -> f (Matrix n m b) Source #

sequenceA :: Applicative f => Matrix n m (f a) -> f (Matrix n m a) Source #

mapM :: Monad m0 => (a -> m0 b) -> Matrix n m a -> m0 (Matrix n m b) Source #

sequence :: Monad m0 => Matrix n m (m0 a) -> m0 (Matrix n m a) Source #

(Show r, Has_ Vector_ m r, Has_ Vector_ n (Vector m r)) => Show (Matrix n m r) Source # 
Instance details

Defined in HGeometry.Matrix.ByRows

Methods

showsPrec :: Int -> Matrix n m r -> ShowS Source #

show :: Matrix n m r -> String Source #

showList :: [Matrix n m r] -> ShowS Source #

Eq (Vector n (Vector m r)) => Eq (Matrix n m r) Source # 
Instance details

Defined in HGeometry.Matrix.ByRows

Methods

(==) :: Matrix n m r -> Matrix n m r -> Bool Source #

(/=) :: Matrix n m r -> Matrix n m r -> Bool Source #

Ord (Vector n (Vector m r)) => Ord (Matrix n m r) Source # 
Instance details

Defined in HGeometry.Matrix.ByRows

Methods

compare :: Matrix n m r -> Matrix n m r -> Ordering Source #

(<) :: Matrix n m r -> Matrix n m r -> Bool Source #

(<=) :: Matrix n m r -> Matrix n m r -> Bool Source #

(>) :: Matrix n m r -> Matrix n m r -> Bool Source #

(>=) :: Matrix n m r -> Matrix n m r -> Bool Source #

max :: Matrix n m r -> Matrix n m r -> Matrix n m r Source #

min :: Matrix n m r -> Matrix n m r -> Matrix n m r Source #

(Has_ Vector_ n (Vector m r), Has_ Vector_ m r, Ixed (Vector n (Vector m r)), Ixed (Vector m r)) => Ixed (Matrix n m r) Source # 
Instance details

Defined in HGeometry.Matrix.ByRows

Methods

ix :: Index (Matrix n m r) -> Traversal' (Matrix n m r) (IxValue (Matrix n m r)) Source #

(Has_ Vector_ n (Vector m r), Has_ Additive_ m r, Ixed (Vector n (Vector m r)), Ixed (Vector m r)) => Matrix_ (Matrix n m r) n m r Source # 
Instance details

Defined in HGeometry.Matrix.ByRows

Methods

identityMatrix :: Matrix n m r Source #

generateMatrix :: ((Int, Int) -> r) -> Matrix n m r Source #

matrixFromList :: [r] -> Maybe (Matrix n m r) Source #

matrixFromRows :: Vector_ rowVector n (Vector m r) => rowVector -> Matrix n m r Source #

(!*!) :: forall matrix' (m' :: Nat) matrix''. (Matrix_ matrix' m m' r, Matrix_ matrix'' n m' r, Num r, Has_ Additive_ m r) => Matrix n m r -> matrix' -> matrix'' Source #

(!*) :: Matrix n m r -> Vector m r -> Vector n r Source #

(*!!) :: r -> Matrix n m r -> Matrix n m r Source #

(!!*) :: Matrix n m r -> r -> Matrix n m r Source #

rows :: Lens' (Matrix n m r) (Vector n (Vector m r)) Source #

row :: Int -> Matrix n m r -> Maybe (Vector m r) Source #

column :: Int -> Matrix n m r -> Maybe (Vector n r) Source #

(Has_ Vector_ n (Vector m r), Has_ Vector_ m r, Has_ Vector_ n (Vector m s), Has_ Vector_ m s, HasComponents (Vector m r) (Vector m s), HasComponents (Vector n (Vector m r)) (Vector n (Vector m s))) => HasElements (Matrix n m r) (Matrix n m s) Source # 
Instance details

Defined in HGeometry.Matrix.ByRows

Methods

elements :: IndexedTraversal1 (Int, Int) (Matrix n m r) (Matrix n m s) (NumType (Matrix n m r)) (NumType (Matrix n m s)) Source #

type NumType (Matrix n m r) Source # 
Instance details

Defined in HGeometry.Matrix.ByRows

type NumType (Matrix n m r) = r
type Index (Matrix n m r) Source # 
Instance details

Defined in HGeometry.Matrix.ByRows

type Index (Matrix n m r) = (Int, Int)
type IxValue (Matrix n m r) Source # 
Instance details

Defined in HGeometry.Matrix.ByRows

type IxValue (Matrix n m r) = r

type OptMatrix_ (d :: Nat) r = (Has_ Additive_ d r, Has_ Vector_ d (Vector d r), Ixed (Vector d r), Ixed (Vector d (Vector d r))) Source #

shorthand for square matrixecs