yap-examples-0.1: examples of the algebraic classes in the yap package
Copyright(c) Ross Paterson 2023
LicenseBSD-style (see the file LICENSE)
Maintainer[email protected]
Stabilityprovisional
Portabilitytype-level literals
Safe HaskellNone
LanguageHaskell2010

Data.YAP.Matrix

Description

An example instance of the algebraic classes: matrices.

Synopsis

Documentation

data Matrix (m :: Nat) (n :: Nat) a Source #

Matrix with m rows and n columns

Instances

Instances details
(KnownNat m, KnownNat n) => Applicative (Matrix m n) Source # 
Instance details

Defined in Data.YAP.Matrix

Methods

pure :: a -> Matrix m n a #

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

liftA2 :: (a -> b -> c) -> Matrix m n a -> Matrix m n b -> Matrix m n c #

(*>) :: Matrix m n a -> Matrix m n b -> Matrix m n b #

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

Functor (Matrix m n) Source # 
Instance details

Defined in Data.YAP.Matrix

Methods

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

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

Show a => Show (Matrix m n a) Source # 
Instance details

Defined in Data.YAP.Matrix

Methods

showsPrec :: Int -> Matrix m n a -> ShowS #

show :: Matrix m n a -> String #

showList :: [Matrix m n a] -> ShowS #

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

Defined in Data.YAP.Matrix

Methods

(==) :: Matrix m n a -> Matrix m n a -> Bool #

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

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

Defined in Data.YAP.Matrix

Methods

compare :: Matrix m n a -> Matrix m n a -> Ordering #

(<) :: Matrix m n a -> Matrix m n a -> Bool #

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

(>) :: Matrix m n a -> Matrix m n a -> Bool #

(>=) :: Matrix m n a -> Matrix m n a -> Bool #

max :: Matrix m n a -> Matrix m n a -> Matrix m n a #

min :: Matrix m n a -> Matrix m n a -> Matrix m n a #

(KnownNat m, KnownNat n, AbelianGroup a) => AbelianGroup (Matrix m n a) Source # 
Instance details

Defined in Data.YAP.Matrix

Methods

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

negate :: Matrix m n a -> Matrix m n a #

gtimes :: (AbelianGroup b, ToInteger b) => b -> Matrix m n a -> Matrix m n a #

(KnownNat m, KnownNat n, AdditiveMonoid a) => AdditiveMonoid (Matrix m n a) Source # 
Instance details

Defined in Data.YAP.Matrix

Methods

(+) :: Matrix m n a -> Matrix m n a -> Matrix m n a #

zero :: Matrix m n a #

atimes :: ToInteger b => b -> Matrix m n a -> Matrix m n a #

matrix :: forall (m :: Nat) (n :: Nat) a. (KnownNat m, KnownNat n, AdditiveMonoid a) => [[a]] -> Matrix m n a Source #

Construct a matrix from a list of row values.

rows :: forall (m :: Nat) (n :: Nat) a. Matrix m n a -> [[a]] Source #

The rows of a matrix

multiply :: forall (p :: Nat) a (m :: Nat) (n :: Nat). (KnownNat p, Semiring a) => Matrix m n a -> Matrix n p a -> Matrix m p a Source #

Multiply matrices

transpose :: forall (m :: Nat) (n :: Nat) a. (KnownNat m, KnownNat n) => Matrix m n a -> Matrix n m a Source #

Transpose of a matrix

apply :: forall a (m :: Nat) (n :: Nat). Semiring a => Matrix m n a -> Vector n a -> Vector m a Source #

Multiply a vector by a matrix.