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
(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