| Copyright | (c) Ross Paterson 2023 |
|---|---|
| License | BSD-style (see the file LICENSE) |
| Maintainer | [email protected] |
| Stability | provisional |
| Portability | type-level literals |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.YAP.Matrix
Description
An example instance of the algebraic classes: matrices.
Synopsis
- data Matrix (m :: Nat) (n :: Nat) a
- matrix :: forall (m :: Nat) (n :: Nat) a. (KnownNat m, KnownNat n, AdditiveMonoid a) => [[a]] -> Matrix m n a
- rows :: forall (m :: Nat) (n :: Nat) a. Matrix m n a -> [[a]]
- 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
- transpose :: forall (m :: Nat) (n :: Nat) a. (KnownNat m, KnownNat n) => Matrix m n a -> Matrix n m a
- apply :: forall a (m :: Nat) (n :: Nat). Semiring a => Matrix m n a -> Vector n a -> Vector m a
Documentation
data Matrix (m :: Nat) (n :: Nat) a Source #
Matrix with m rows and n columns
Instances
| (KnownNat m, KnownNat n) => Applicative (Matrix m n) Source # | |
Defined in Data.YAP.Matrix | |
| Functor (Matrix m n) Source # | |
| Show a => Show (Matrix m n a) Source # | |
| Eq a => Eq (Matrix m n a) Source # | |
| Ord a => Ord (Matrix m n a) Source # | |
Defined in Data.YAP.Matrix | |
| (KnownNat m, KnownNat n, AbelianGroup a) => AbelianGroup (Matrix m n a) Source # | |
| (KnownNat m, KnownNat n, AdditiveMonoid a) => AdditiveMonoid (Matrix m n a) Source # | |
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.
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