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.Vector
Description
An example instance of the algebraic classes: vectors.
Synopsis
- data Vector (n :: Nat) a
- vector :: forall (n :: Nat) a. (KnownNat n, AdditiveMonoid a) => [a] -> Vector n a
- unsafeVector :: forall a (n :: Nat). [a] -> Vector n a
- coordinates :: forall (n :: Nat) a. Vector n a -> [a]
- dot :: forall a (n :: Nat). Semiring a => Vector n a -> Vector n a -> a
- sqnorm :: forall a (n :: Nat). Semiring a => Vector n a -> a
Documentation
data Vector (n :: Nat) a Source #
Vectors on n
elements
Instances
Foldable (Vector n) Source # | |
Defined in Data.YAP.Vector Methods fold :: Monoid m => Vector n m -> m # foldMap :: Monoid m => (a -> m) -> Vector n a -> m # foldMap' :: Monoid m => (a -> m) -> Vector n a -> m # foldr :: (a -> b -> b) -> b -> Vector n a -> b # foldr' :: (a -> b -> b) -> b -> Vector n a -> b # foldl :: (b -> a -> b) -> b -> Vector n a -> b # foldl' :: (b -> a -> b) -> b -> Vector n a -> b # foldr1 :: (a -> a -> a) -> Vector n a -> a # foldl1 :: (a -> a -> a) -> Vector n a -> a # elem :: Eq a => a -> Vector n a -> Bool # maximum :: Ord a => Vector n a -> a # minimum :: Ord a => Vector n a -> a # | |
KnownNat n => Applicative (Vector n) Source # | |
Functor (Vector n) Source # | |
Show a => Show (Vector n a) Source # | |
Eq a => Eq (Vector n a) Source # | |
Ord a => Ord (Vector n a) Source # | |
(KnownNat n, AbelianGroup a) => AbelianGroup (Vector n a) Source # | |
(KnownNat n, AdditiveMonoid a) => AdditiveMonoid (Vector n a) Source # | |
vector :: forall (n :: Nat) a. (KnownNat n, AdditiveMonoid a) => [a] -> Vector n a Source #
Construct a vector from a list of coordinates, trimming or padding with zeros to obtain the required length.
unsafeVector :: forall a (n :: Nat). [a] -> Vector n a Source #
Construct a vector from a list of coordinates: valid only if the
list has length n
.
coordinates :: forall (n :: Nat) a. Vector n a -> [a] Source #
The coordinates of a vector