tower-0.1.0: A numeric tower

Safe HaskellSafe
LanguageHaskell2010

Tower.VectorA

Description

Applicative-style vector

Synopsis

Documentation

newtype VectorA n f a Source #

a wrapped fixed-size traversable container

Constructors

VectorA 

Fields

Instances

(Multiplicative a, KnownNat n) => MultiplicativeModule a (VectorA n [] a) Source # 

Methods

(.*) :: a -> VectorA n [] a -> VectorA n [] a Source #

(*.) :: VectorA n [] a -> a -> VectorA n [] a Source #

(Additive a, KnownNat n) => AdditiveModule a (VectorA n [] a) Source # 

Methods

(.+) :: a -> VectorA n [] a -> VectorA n [] a Source #

(+.) :: VectorA n [] a -> a -> VectorA n [] a Source #

MultiplicativeMagma a => MultiplicativeHomomorphic a (VectorA n f a) Source # 

Methods

timeshom :: a -> VectorA n f a Source #

(AdditiveMagma a, KnownNat n) => AdditiveHomomorphic a (VectorA n [] a) Source # 

Methods

plushom :: a -> VectorA n [] a Source #

(KnownNat n, Traversable f, Applicative f, Eq (f a)) => Eq (VectorA n f a) Source # 

Methods

(==) :: VectorA n f a -> VectorA n f a -> Bool #

(/=) :: VectorA n f a -> VectorA n f a -> Bool #

(KnownNat n, Traversable f, Applicative f, Show (f a)) => Show (VectorA n f a) Source # 

Methods

showsPrec :: Int -> VectorA n f a -> ShowS #

show :: VectorA n f a -> String #

showList :: [VectorA n f a] -> ShowS #

(Num a, AdditiveUnital a, Arbitrary a) => Arbitrary (VectorA 5 [] a) Source # 

Methods

arbitrary :: Gen (VectorA 5 [] a) #

shrink :: VectorA 5 [] a -> [VectorA 5 [] a] #

(Distributive a, KnownNat n) => Distributive (VectorA n [] a) Source # 
(Multiplicative a, KnownNat n) => Multiplicative (VectorA n [] a) Source # 

Methods

(*) :: VectorA n [] a -> VectorA n [] a -> VectorA n [] a Source #

MultiplicativeInvertible a => MultiplicativeInvertible (VectorA n f a) Source # 

Methods

recip :: VectorA n f a -> VectorA n f a Source #

MultiplicativeAssociative a => MultiplicativeAssociative (VectorA n f a) Source # 
MultiplicativeCommutative a => MultiplicativeCommutative (VectorA n f a) Source # 
(MultiplicativeUnital a, KnownNat n) => MultiplicativeUnital (VectorA n [] a) Source # 

Methods

one :: VectorA n [] a Source #

MultiplicativeMagma a => MultiplicativeMagma (VectorA n f a) Source # 

Methods

times :: VectorA n f a -> VectorA n f a -> VectorA n f a Source #

(AdditiveGroup a, KnownNat n) => AdditiveGroup (VectorA n [] a) Source # 

Methods

(-) :: VectorA n [] a -> VectorA n [] a -> VectorA n [] a Source #

(Additive a, KnownNat n) => Additive (VectorA n [] a) Source # 

Methods

(+) :: VectorA n [] a -> VectorA n [] a -> VectorA n [] a Source #

AdditiveInvertible a => AdditiveInvertible (VectorA n f a) Source # 

Methods

negate :: VectorA n f a -> VectorA n f a Source #

AdditiveCommutative a => AdditiveCommutative (VectorA n f a) Source # 
AdditiveAssociative a => AdditiveAssociative (VectorA n f a) Source # 
(AdditiveUnital a, KnownNat n) => AdditiveUnital (VectorA n [] a) Source # 

Methods

zero :: VectorA n [] a Source #

AdditiveMagma a => AdditiveMagma (VectorA n f a) Source # 

Methods

plus :: VectorA n f a -> VectorA n f a -> VectorA n f a Source #