rings-0.0.3: Ring-like objects.

Safe HaskellSafe
LanguageHaskell2010

Data.Semimodule.Vector

Documentation

newtype V1 a Source #

Constructors

V1 a 
Instances
Functor V1 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

fmap :: (a -> b) -> V1 a -> V1 b #

(<$) :: a -> V1 b -> V1 a #

Applicative V1 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

pure :: a -> V1 a #

(<*>) :: V1 (a -> b) -> V1 a -> V1 b #

liftA2 :: (a -> b -> c) -> V1 a -> V1 b -> V1 c #

(*>) :: V1 a -> V1 b -> V1 b #

(<*) :: V1 a -> V1 b -> V1 a #

Foldable V1 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

fold :: Monoid m => V1 m -> m #

foldMap :: Monoid m => (a -> m) -> V1 a -> m #

foldr :: (a -> b -> b) -> b -> V1 a -> b #

foldr' :: (a -> b -> b) -> b -> V1 a -> b #

foldl :: (b -> a -> b) -> b -> V1 a -> b #

foldl' :: (b -> a -> b) -> b -> V1 a -> b #

foldr1 :: (a -> a -> a) -> V1 a -> a #

foldl1 :: (a -> a -> a) -> V1 a -> a #

toList :: V1 a -> [a] #

null :: V1 a -> Bool #

length :: V1 a -> Int #

elem :: Eq a => a -> V1 a -> Bool #

maximum :: Ord a => V1 a -> a #

minimum :: Ord a => V1 a -> a #

sum :: Num a => V1 a -> a #

product :: Num a => V1 a -> a #

Distributive V1 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

distribute :: Functor f => f (V1 a) -> V1 (f a) #

collect :: Functor f => (a -> V1 b) -> f a -> V1 (f b) #

distributeM :: Monad m => m (V1 a) -> V1 (m a) #

collectM :: Monad m => (a -> V1 b) -> m a -> V1 (m b) #

Representable V1 Source # 
Instance details

Defined in Data.Semimodule.Vector

Associated Types

type Rep V1 :: Type #

Methods

tabulate :: (Rep V1 -> a) -> V1 a #

index :: V1 a -> Rep V1 -> a #

Foldable1 V1 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

fold1 :: Semigroup m => V1 m -> m #

foldMap1 :: Semigroup m => (a -> m) -> V1 a -> m #

toNonEmpty :: V1 a -> NonEmpty a #

Semiring a => Bisemimodule a a (V1 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

discale :: a -> a -> V1 a -> V1 a Source #

Semiring a => RightSemimodule a (V1 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

rscale :: a -> V1 a -> V1 a Source #

Semiring a => LeftSemimodule a (V1 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

lscale :: a -> V1 a -> V1 a Source #

Eq a => Eq (V1 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

(==) :: V1 a -> V1 a -> Bool #

(/=) :: V1 a -> V1 a -> Bool #

Ord a => Ord (V1 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

compare :: V1 a -> V1 a -> Ordering #

(<) :: V1 a -> V1 a -> Bool #

(<=) :: V1 a -> V1 a -> Bool #

(>) :: V1 a -> V1 a -> Bool #

(>=) :: V1 a -> V1 a -> Bool #

max :: V1 a -> V1 a -> V1 a #

min :: V1 a -> V1 a -> V1 a #

Show a => Show (V1 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

showsPrec :: Int -> V1 a -> ShowS #

show :: V1 a -> String #

showList :: [V1 a] -> ShowS #

Semiring a => Semigroup (Multiplicative (M11 a)) Source # 
Instance details

Defined in Data.Semimodule.Matrix

(Additive - Semigroup) a => Semigroup (Additive (V1 a)) Source #

Matrix addition.

>>> m13 1 1 3 4 5 6 <> m13 7 8 9 1 1 3 :: M13 Int
V1 (V3 8 10 11) (V3 5 7 9)
Instance details

Defined in Data.Semimodule.Vector

Methods

(<>) :: Additive (V1 a) -> Additive (V1 a) -> Additive (V1 a) #

sconcat :: NonEmpty (Additive (V1 a)) -> Additive (V1 a) #

stimes :: Integral b => b -> Additive (V1 a) -> Additive (V1 a) #

(Additive - Semigroup) a => Semigroup (V1 a) Source #

Vector addition.

>>> V1 1 <> V1 3
V1 4
Instance details

Defined in Data.Semimodule.Vector

Methods

(<>) :: V1 a -> V1 a -> V1 a #

sconcat :: NonEmpty (V1 a) -> V1 a #

stimes :: Integral b => b -> V1 a -> V1 a #

Semiring a => Monoid (Multiplicative (M11 a)) Source # 
Instance details

Defined in Data.Semimodule.Matrix

(Additive - Monoid) a => Monoid (Additive (V1 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

mempty :: Additive (V1 a) #

mappend :: Additive (V1 a) -> Additive (V1 a) -> Additive (V1 a) #

mconcat :: [Additive (V1 a)] -> Additive (V1 a) #

(Additive - Monoid) a => Monoid (V1 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

mempty :: V1 a #

mappend :: V1 a -> V1 a -> V1 a #

mconcat :: [V1 a] -> V1 a #

Field a => Group (Multiplicative (M11 a)) Source # 
Instance details

Defined in Data.Semimodule.Matrix

(Additive - Group) a => Group (Additive (V1 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

inv :: Additive (V1 a) -> Additive (V1 a) #

greplicate :: Integer -> Additive (V1 a) -> Additive (V1 a) #

Field a => Loop (Multiplicative (M11 a)) Source # 
Instance details

Defined in Data.Semimodule.Matrix

(Additive - Group) a => Loop (Additive (V1 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

lempty :: Additive (V1 a) #

lreplicate :: Natural -> Additive (V1 a) -> Additive (V1 a) #

Field a => Quasigroup (Multiplicative (M11 a)) Source # 
Instance details

Defined in Data.Semimodule.Matrix

(Additive - Group) a => Quasigroup (Additive (V1 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

(//) :: Additive (V1 a) -> Additive (V1 a) -> Additive (V1 a) #

(\\) :: Additive (V1 a) -> Additive (V1 a) -> Additive (V1 a) #

Field a => Magma (Multiplicative (M11 a)) Source # 
Instance details

Defined in Data.Semimodule.Matrix

(Additive - Group) a => Magma (Additive (V1 a)) Source #

Vector & matrix subtraction.

>>> V1 1 - V1 2 :: V1 Int
V1 (-1)
>>> m12 1 2 - m12 3 4 :: M12 Int
V1 (V2 (-2) (-2))
Instance details

Defined in Data.Semimodule.Vector

Methods

(<<) :: Additive (V1 a) -> Additive (V1 a) -> Additive (V1 a) #

Ring a => Ring (M11 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Semiring a => Semiring (M11 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Semiring a => Presemiring (M11 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Semiring a => RightSemimodule (M44 a) (M14 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M44 a -> M14 a -> M14 a Source #

Semiring a => RightSemimodule (M33 a) (M13 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M33 a -> M13 a -> M13 a Source #

Semiring a => RightSemimodule (M22 a) (M12 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M22 a -> M12 a -> M12 a Source #

Semiring a => RightSemimodule (M11 a) (M41 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M11 a -> M41 a -> M41 a Source #

Semiring a => RightSemimodule (M11 a) (M31 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M11 a -> M31 a -> M31 a Source #

Semiring a => RightSemimodule (M11 a) (M21 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M11 a -> M21 a -> M21 a Source #

Semiring a => LeftSemimodule (M44 a) (M41 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M44 a -> M41 a -> M41 a Source #

Semiring a => LeftSemimodule (M33 a) (M31 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M33 a -> M31 a -> M31 a Source #

Semiring a => LeftSemimodule (M22 a) (M21 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M22 a -> M21 a -> M21 a Source #

Semiring a => LeftSemimodule (M11 a) (M14 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M11 a -> M14 a -> M14 a Source #

Semiring a => LeftSemimodule (M11 a) (M13 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M11 a -> M13 a -> M13 a Source #

Semiring a => LeftSemimodule (M11 a) (M12 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M11 a -> M12 a -> M12 a Source #

Semiring a => Bisemimodule (M44 a) (M11 a) (M41 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M44 a -> M11 a -> M41 a -> M41 a Source #

Semiring a => Bisemimodule (M33 a) (M11 a) (M31 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M33 a -> M11 a -> M31 a -> M31 a Source #

Semiring a => Bisemimodule (M22 a) (M11 a) (M21 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M22 a -> M11 a -> M21 a -> M21 a Source #

Semiring a => Bisemimodule (M11 a) (M44 a) (M14 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M11 a -> M44 a -> M14 a -> M14 a Source #

Semiring a => Bisemimodule (M11 a) (M33 a) (M13 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M11 a -> M33 a -> M13 a -> M13 a Source #

Semiring a => Bisemimodule (M11 a) (M22 a) (M12 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M11 a -> M22 a -> M12 a -> M12 a Source #

type Rep V1 Source # 
Instance details

Defined in Data.Semimodule.Vector

type Rep V1 = I1

unV1 :: V1 a -> a Source #

data I1 Source #

Constructors

I1 
Instances
Eq I1 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

(==) :: I1 -> I1 -> Bool #

(/=) :: I1 -> I1 -> Bool #

Ord I1 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

compare :: I1 -> I1 -> Ordering #

(<) :: I1 -> I1 -> Bool #

(<=) :: I1 -> I1 -> Bool #

(>) :: I1 -> I1 -> Bool #

(>=) :: I1 -> I1 -> Bool #

max :: I1 -> I1 -> I1 #

min :: I1 -> I1 -> I1 #

Show I1 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

showsPrec :: Int -> I1 -> ShowS #

show :: I1 -> String #

showList :: [I1] -> ShowS #

Semiring r => Composition r I1 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

conj :: Endo r I1 Source #

norm :: (I1 -> r) -> r Source #

Semiring r => Algebra r I1 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

mult :: (I1 -> I1 -> r) -> I1 -> r Source #

Semigroup (Additive I1) Source # 
Instance details

Defined in Data.Semimodule.Vector

Monoid (Additive I1) Source # 
Instance details

Defined in Data.Semimodule.Vector

i1 :: a -> I1 -> a Source #

fillI1 :: Basis I1 f => a -> f a Source #

data V2 a Source #

Constructors

V2 !a !a 
Instances
Functor V2 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

fmap :: (a -> b) -> V2 a -> V2 b #

(<$) :: a -> V2 b -> V2 a #

Applicative V2 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

pure :: a -> V2 a #

(<*>) :: V2 (a -> b) -> V2 a -> V2 b #

liftA2 :: (a -> b -> c) -> V2 a -> V2 b -> V2 c #

(*>) :: V2 a -> V2 b -> V2 b #

(<*) :: V2 a -> V2 b -> V2 a #

Foldable V2 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

fold :: Monoid m => V2 m -> m #

foldMap :: Monoid m => (a -> m) -> V2 a -> m #

foldr :: (a -> b -> b) -> b -> V2 a -> b #

foldr' :: (a -> b -> b) -> b -> V2 a -> b #

foldl :: (b -> a -> b) -> b -> V2 a -> b #

foldl' :: (b -> a -> b) -> b -> V2 a -> b #

foldr1 :: (a -> a -> a) -> V2 a -> a #

foldl1 :: (a -> a -> a) -> V2 a -> a #

toList :: V2 a -> [a] #

null :: V2 a -> Bool #

length :: V2 a -> Int #

elem :: Eq a => a -> V2 a -> Bool #

maximum :: Ord a => V2 a -> a #

minimum :: Ord a => V2 a -> a #

sum :: Num a => V2 a -> a #

product :: Num a => V2 a -> a #

Distributive V2 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

distribute :: Functor f => f (V2 a) -> V2 (f a) #

collect :: Functor f => (a -> V2 b) -> f a -> V2 (f b) #

distributeM :: Monad m => m (V2 a) -> V2 (m a) #

collectM :: Monad m => (a -> V2 b) -> m a -> V2 (m b) #

Representable V2 Source # 
Instance details

Defined in Data.Semimodule.Vector

Associated Types

type Rep V2 :: Type #

Methods

tabulate :: (Rep V2 -> a) -> V2 a #

index :: V2 a -> Rep V2 -> a #

Foldable1 V2 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

fold1 :: Semigroup m => V2 m -> m #

foldMap1 :: Semigroup m => (a -> m) -> V2 a -> m #

toNonEmpty :: V2 a -> NonEmpty a #

Semiring a => Bisemimodule a a (V2 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

discale :: a -> a -> V2 a -> V2 a Source #

Semiring a => RightSemimodule a (V2 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

rscale :: a -> V2 a -> V2 a Source #

Semiring a => LeftSemimodule a (V2 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

lscale :: a -> V2 a -> V2 a Source #

Eq a => Eq (V2 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

(==) :: V2 a -> V2 a -> Bool #

(/=) :: V2 a -> V2 a -> Bool #

Ord a => Ord (V2 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

compare :: V2 a -> V2 a -> Ordering #

(<) :: V2 a -> V2 a -> Bool #

(<=) :: V2 a -> V2 a -> Bool #

(>) :: V2 a -> V2 a -> Bool #

(>=) :: V2 a -> V2 a -> Bool #

max :: V2 a -> V2 a -> V2 a #

min :: V2 a -> V2 a -> V2 a #

Show a => Show (V2 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

showsPrec :: Int -> V2 a -> ShowS #

show :: V2 a -> String #

showList :: [V2 a] -> ShowS #

Semiring a => Semigroup (Multiplicative (M22 a)) Source # 
Instance details

Defined in Data.Semimodule.Matrix

(Additive - Semigroup) a => Semigroup (Additive (V2 a)) Source #

Vector & matrix addition.

>>> V2 1 2 + V2 3 4
V2 4 6
>>> m23 1 2 3 4 5 6 + m23 7 8 9 1 2 3 :: M23 Int
V2 (V3 8 10 12) (V3 5 7 9)
Instance details

Defined in Data.Semimodule.Vector

Methods

(<>) :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) #

sconcat :: NonEmpty (Additive (V2 a)) -> Additive (V2 a) #

stimes :: Integral b => b -> Additive (V2 a) -> Additive (V2 a) #

Semiring a => Monoid (Multiplicative (M22 a)) Source # 
Instance details

Defined in Data.Semimodule.Matrix

(Additive - Monoid) a => Monoid (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

mempty :: Additive (V2 a) #

mappend :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) #

mconcat :: [Additive (V2 a)] -> Additive (V2 a) #

(Additive - Group) a => Group (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

inv :: Additive (V2 a) -> Additive (V2 a) #

greplicate :: Integer -> Additive (V2 a) -> Additive (V2 a) #

(Additive - Group) a => Loop (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

lempty :: Additive (V2 a) #

lreplicate :: Natural -> Additive (V2 a) -> Additive (V2 a) #

(Additive - Group) a => Quasigroup (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

(//) :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) #

(\\) :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) #

(Additive - Group) a => Magma (Additive (V2 a)) Source #

Vector & matrix subtraction.

>>> V2 1 2 - V2 3 4
V2 (-2) (-2)
>>> m23 1 2 3 4 5 6 - m23 7 8 9 1 2 3 :: M23 Int
V2 (V3 (-6) (-6) (-6)) (V3 3 3 3)
Instance details

Defined in Data.Semimodule.Vector

Methods

(<<) :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) #

Ring a => Ring (M22 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Semiring a => Semiring (M22 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Semiring a => Presemiring (M22 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Semiring a => RightSemimodule (M44 a) (M24 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M44 a -> M24 a -> M24 a Source #

Semiring a => RightSemimodule (M33 a) (M23 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M33 a -> M23 a -> M23 a Source #

Semiring a => RightSemimodule (M22 a) (M42 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M22 a -> M42 a -> M42 a Source #

Semiring a => RightSemimodule (M22 a) (M32 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M22 a -> M32 a -> M32 a Source #

Semiring a => RightSemimodule (M22 a) (M12 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M22 a -> M12 a -> M12 a Source #

Semiring a => RightSemimodule (M11 a) (M21 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M11 a -> M21 a -> M21 a Source #

Semiring a => LeftSemimodule (M44 a) (M42 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M44 a -> M42 a -> M42 a Source #

Semiring a => LeftSemimodule (M33 a) (M32 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M33 a -> M32 a -> M32 a Source #

Semiring a => LeftSemimodule (M22 a) (M24 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M22 a -> M24 a -> M24 a Source #

Semiring a => LeftSemimodule (M22 a) (M23 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M22 a -> M23 a -> M23 a Source #

Semiring a => LeftSemimodule (M22 a) (M21 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M22 a -> M21 a -> M21 a Source #

Semiring a => LeftSemimodule (M11 a) (M12 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M11 a -> M12 a -> M12 a Source #

Semiring a => Bisemimodule (M44 a) (M22 a) (M42 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M44 a -> M22 a -> M42 a -> M42 a Source #

Semiring a => Bisemimodule (M33 a) (M22 a) (M32 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M33 a -> M22 a -> M32 a -> M32 a Source #

Semiring a => Bisemimodule (M22 a) (M44 a) (M24 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M22 a -> M44 a -> M24 a -> M24 a Source #

Semiring a => Bisemimodule (M22 a) (M33 a) (M23 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M22 a -> M33 a -> M23 a -> M23 a Source #

Semiring a => Bisemimodule (M22 a) (M11 a) (M21 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M22 a -> M11 a -> M21 a -> M21 a Source #

Semiring a => Bisemimodule (M11 a) (M22 a) (M12 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M11 a -> M22 a -> M12 a -> M12 a Source #

type Rep V2 Source # 
Instance details

Defined in Data.Semimodule.Vector

type Rep V2 = I2

data I2 Source #

Constructors

I21 
I22 
Instances
Eq I2 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

(==) :: I2 -> I2 -> Bool #

(/=) :: I2 -> I2 -> Bool #

Ord I2 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

compare :: I2 -> I2 -> Ordering #

(<) :: I2 -> I2 -> Bool #

(<=) :: I2 -> I2 -> Bool #

(>) :: I2 -> I2 -> Bool #

(>=) :: I2 -> I2 -> Bool #

max :: I2 -> I2 -> I2 #

min :: I2 -> I2 -> I2 #

Show I2 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

showsPrec :: Int -> I2 -> ShowS #

show :: I2 -> String #

showList :: [I2] -> ShowS #

Semiring r => Composition r I2 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

conj :: Endo r I2 Source #

norm :: (I2 -> r) -> r Source #

Semiring r => Algebra r I2 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

mult :: (I2 -> I2 -> r) -> I2 -> r Source #

Semigroup (Additive I2) Source # 
Instance details

Defined in Data.Semimodule.Vector

Monoid (Additive I2) Source # 
Instance details

Defined in Data.Semimodule.Vector

i2 :: a -> a -> I2 -> a Source #

fillI2 :: Basis I2 f => a -> a -> f a Source #

data V3 a Source #

Constructors

V3 !a !a !a 
Instances
Functor V3 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

fmap :: (a -> b) -> V3 a -> V3 b #

(<$) :: a -> V3 b -> V3 a #

Applicative V3 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

pure :: a -> V3 a #

(<*>) :: V3 (a -> b) -> V3 a -> V3 b #

liftA2 :: (a -> b -> c) -> V3 a -> V3 b -> V3 c #

(*>) :: V3 a -> V3 b -> V3 b #

(<*) :: V3 a -> V3 b -> V3 a #

Foldable V3 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

fold :: Monoid m => V3 m -> m #

foldMap :: Monoid m => (a -> m) -> V3 a -> m #

foldr :: (a -> b -> b) -> b -> V3 a -> b #

foldr' :: (a -> b -> b) -> b -> V3 a -> b #

foldl :: (b -> a -> b) -> b -> V3 a -> b #

foldl' :: (b -> a -> b) -> b -> V3 a -> b #

foldr1 :: (a -> a -> a) -> V3 a -> a #

foldl1 :: (a -> a -> a) -> V3 a -> a #

toList :: V3 a -> [a] #

null :: V3 a -> Bool #

length :: V3 a -> Int #

elem :: Eq a => a -> V3 a -> Bool #

maximum :: Ord a => V3 a -> a #

minimum :: Ord a => V3 a -> a #

sum :: Num a => V3 a -> a #

product :: Num a => V3 a -> a #

Distributive V3 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

distribute :: Functor f => f (V3 a) -> V3 (f a) #

collect :: Functor f => (a -> V3 b) -> f a -> V3 (f b) #

distributeM :: Monad m => m (V3 a) -> V3 (m a) #

collectM :: Monad m => (a -> V3 b) -> m a -> V3 (m b) #

Representable V3 Source # 
Instance details

Defined in Data.Semimodule.Vector

Associated Types

type Rep V3 :: Type #

Methods

tabulate :: (Rep V3 -> a) -> V3 a #

index :: V3 a -> Rep V3 -> a #

Foldable1 V3 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

fold1 :: Semigroup m => V3 m -> m #

foldMap1 :: Semigroup m => (a -> m) -> V3 a -> m #

toNonEmpty :: V3 a -> NonEmpty a #

Semiring a => Bisemimodule a a (V3 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

discale :: a -> a -> V3 a -> V3 a Source #

Semiring a => RightSemimodule a (V3 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

rscale :: a -> V3 a -> V3 a Source #

Semiring a => LeftSemimodule a (V3 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

lscale :: a -> V3 a -> V3 a Source #

Eq a => Eq (V3 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

(==) :: V3 a -> V3 a -> Bool #

(/=) :: V3 a -> V3 a -> Bool #

Ord a => Ord (V3 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

compare :: V3 a -> V3 a -> Ordering #

(<) :: V3 a -> V3 a -> Bool #

(<=) :: V3 a -> V3 a -> Bool #

(>) :: V3 a -> V3 a -> Bool #

(>=) :: V3 a -> V3 a -> Bool #

max :: V3 a -> V3 a -> V3 a #

min :: V3 a -> V3 a -> V3 a #

Show a => Show (V3 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

showsPrec :: Int -> V3 a -> ShowS #

show :: V3 a -> String #

showList :: [V3 a] -> ShowS #

Semiring a => Semigroup (Multiplicative (M33 a)) Source # 
Instance details

Defined in Data.Semimodule.Matrix

(Additive - Semigroup) a => Semigroup (Additive (V3 a)) Source #

Vector & matrix addition.

>>> V3 1 2 3 + V3 4 5 6
V3 5 7 9
>>> V2 (V3 1 2 3) (V3 4 5 6) + V2 (V3 7 8 9) (V3 1 2 3)
V2 (V3 8 10 12) (V3 5 7 9)
Instance details

Defined in Data.Semimodule.Vector

Methods

(<>) :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) #

sconcat :: NonEmpty (Additive (V3 a)) -> Additive (V3 a) #

stimes :: Integral b => b -> Additive (V3 a) -> Additive (V3 a) #

Semiring a => Monoid (Multiplicative (M33 a)) Source # 
Instance details

Defined in Data.Semimodule.Matrix

(Additive - Monoid) a => Monoid (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

mempty :: Additive (V3 a) #

mappend :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) #

mconcat :: [Additive (V3 a)] -> Additive (V3 a) #

(Additive - Group) a => Group (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

inv :: Additive (V3 a) -> Additive (V3 a) #

greplicate :: Integer -> Additive (V3 a) -> Additive (V3 a) #

(Additive - Group) a => Loop (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

lempty :: Additive (V3 a) #

lreplicate :: Natural -> Additive (V3 a) -> Additive (V3 a) #

(Additive - Group) a => Quasigroup (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

(//) :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) #

(\\) :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) #

(Additive - Group) a => Magma (Additive (V3 a)) Source #

Vector & matrix subtraction.

>>> V3 1 2 3 - V3 4 5 6
V3 (-3) (-3) (-3)
>>> V3 (V3 1 2 3) (V3 4 5 6) (V3 7 8 9) - V3 (V3 7 8 9) (V3 7 8 9) (V3 7 8 9)
V3 (V3 (-6) (-6) (-6)) (V3 (-3) (-3) (-3)) (V3 0 0 0)
Instance details

Defined in Data.Semimodule.Vector

Methods

(<<) :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) #

Ring a => Ring (M33 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Semiring a => Semiring (M33 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Semiring a => Presemiring (M33 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Semiring a => RightSemimodule (M33 a) (M23 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M33 a -> M23 a -> M23 a Source #

Semiring a => RightSemimodule (M33 a) (M13 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M33 a -> M13 a -> M13 a Source #

Semiring a => RightSemimodule (M22 a) (M32 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M22 a -> M32 a -> M32 a Source #

Semiring a => RightSemimodule (M11 a) (M31 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M11 a -> M31 a -> M31 a Source #

Semiring a => LeftSemimodule (M33 a) (M32 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M33 a -> M32 a -> M32 a Source #

Semiring a => LeftSemimodule (M33 a) (M31 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M33 a -> M31 a -> M31 a Source #

Semiring a => LeftSemimodule (M22 a) (M23 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M22 a -> M23 a -> M23 a Source #

Semiring a => LeftSemimodule (M11 a) (M13 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M11 a -> M13 a -> M13 a Source #

Semiring a => Bisemimodule (M33 a) (M22 a) (M32 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M33 a -> M22 a -> M32 a -> M32 a Source #

Semiring a => Bisemimodule (M33 a) (M11 a) (M31 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M33 a -> M11 a -> M31 a -> M31 a Source #

Semiring a => Bisemimodule (M22 a) (M33 a) (M23 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M22 a -> M33 a -> M23 a -> M23 a Source #

Semiring a => Bisemimodule (M11 a) (M33 a) (M13 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M11 a -> M33 a -> M13 a -> M13 a Source #

type Rep V3 Source # 
Instance details

Defined in Data.Semimodule.Vector

type Rep V3 = I3

data I3 Source #

Constructors

I31 
I32 
I33 
Instances
Eq I3 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

(==) :: I3 -> I3 -> Bool #

(/=) :: I3 -> I3 -> Bool #

Ord I3 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

compare :: I3 -> I3 -> Ordering #

(<) :: I3 -> I3 -> Bool #

(<=) :: I3 -> I3 -> Bool #

(>) :: I3 -> I3 -> Bool #

(>=) :: I3 -> I3 -> Bool #

max :: I3 -> I3 -> I3 #

min :: I3 -> I3 -> I3 #

Show I3 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

showsPrec :: Int -> I3 -> ShowS #

show :: I3 -> String #

showList :: [I3] -> ShowS #

Field r => Division r QuaternionBasis Source # 
Instance details

Defined in Data.Semimodule.Vector

Ring r => Unital r QuaternionBasis Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

unit :: r -> QuaternionBasis -> r Source #

Ring r => Composition r QuaternionBasis Source # 
Instance details

Defined in Data.Semimodule.Vector

Ring r => Composition r I3 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

conj :: Endo r I3 Source #

norm :: (I3 -> r) -> r Source #

Ring r => Algebra r QuaternionBasis Source # 
Instance details

Defined in Data.Semimodule.Vector

Ring r => Algebra r I3 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

mult :: (I3 -> I3 -> r) -> I3 -> r Source #

Semigroup (Additive I3) Source # 
Instance details

Defined in Data.Semimodule.Vector

Monoid (Additive I3) Source # 
Instance details

Defined in Data.Semimodule.Vector

i3 :: a -> a -> a -> I3 -> a Source #

fillI3 :: Basis I3 f => a -> a -> a -> f a Source #

data V4 a Source #

Constructors

V4 !a !a !a !a 
Instances
Functor V4 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

fmap :: (a -> b) -> V4 a -> V4 b #

(<$) :: a -> V4 b -> V4 a #

Applicative V4 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

pure :: a -> V4 a #

(<*>) :: V4 (a -> b) -> V4 a -> V4 b #

liftA2 :: (a -> b -> c) -> V4 a -> V4 b -> V4 c #

(*>) :: V4 a -> V4 b -> V4 b #

(<*) :: V4 a -> V4 b -> V4 a #

Foldable V4 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

fold :: Monoid m => V4 m -> m #

foldMap :: Monoid m => (a -> m) -> V4 a -> m #

foldr :: (a -> b -> b) -> b -> V4 a -> b #

foldr' :: (a -> b -> b) -> b -> V4 a -> b #

foldl :: (b -> a -> b) -> b -> V4 a -> b #

foldl' :: (b -> a -> b) -> b -> V4 a -> b #

foldr1 :: (a -> a -> a) -> V4 a -> a #

foldl1 :: (a -> a -> a) -> V4 a -> a #

toList :: V4 a -> [a] #

null :: V4 a -> Bool #

length :: V4 a -> Int #

elem :: Eq a => a -> V4 a -> Bool #

maximum :: Ord a => V4 a -> a #

minimum :: Ord a => V4 a -> a #

sum :: Num a => V4 a -> a #

product :: Num a => V4 a -> a #

Distributive V4 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

distribute :: Functor f => f (V4 a) -> V4 (f a) #

collect :: Functor f => (a -> V4 b) -> f a -> V4 (f b) #

distributeM :: Monad m => m (V4 a) -> V4 (m a) #

collectM :: Monad m => (a -> V4 b) -> m a -> V4 (m b) #

Representable V4 Source # 
Instance details

Defined in Data.Semimodule.Vector

Associated Types

type Rep V4 :: Type #

Methods

tabulate :: (Rep V4 -> a) -> V4 a #

index :: V4 a -> Rep V4 -> a #

Foldable1 V4 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

fold1 :: Semigroup m => V4 m -> m #

foldMap1 :: Semigroup m => (a -> m) -> V4 a -> m #

toNonEmpty :: V4 a -> NonEmpty a #

Semiring a => Bisemimodule a a (V4 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

discale :: a -> a -> V4 a -> V4 a Source #

Semiring a => RightSemimodule a (V4 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

rscale :: a -> V4 a -> V4 a Source #

Semiring a => LeftSemimodule a (V4 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

lscale :: a -> V4 a -> V4 a Source #

Eq a => Eq (V4 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

(==) :: V4 a -> V4 a -> Bool #

(/=) :: V4 a -> V4 a -> Bool #

Ord a => Ord (V4 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

compare :: V4 a -> V4 a -> Ordering #

(<) :: V4 a -> V4 a -> Bool #

(<=) :: V4 a -> V4 a -> Bool #

(>) :: V4 a -> V4 a -> Bool #

(>=) :: V4 a -> V4 a -> Bool #

max :: V4 a -> V4 a -> V4 a #

min :: V4 a -> V4 a -> V4 a #

Show a => Show (V4 a) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

showsPrec :: Int -> V4 a -> ShowS #

show :: V4 a -> String #

showList :: [V4 a] -> ShowS #

Semiring a => Semigroup (Multiplicative (M44 a)) Source # 
Instance details

Defined in Data.Semimodule.Matrix

(Additive - Semigroup) a => Semigroup (Additive (V4 a)) Source #

Vector & matrix addition.

>>> V4 1 2 3 4 + V4 5 6 7 8
V4 6 8 10 12 
>>> m24 1 2 3 4 5 6 7 8 + m24 1 2 3 4 5 6 7 8 :: M24 Int
V2 (V4 2 4 6 8) (V4 10 12 14 16)
Instance details

Defined in Data.Semimodule.Vector

Methods

(<>) :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) #

sconcat :: NonEmpty (Additive (V4 a)) -> Additive (V4 a) #

stimes :: Integral b => b -> Additive (V4 a) -> Additive (V4 a) #

Semiring a => Monoid (Multiplicative (M44 a)) Source # 
Instance details

Defined in Data.Semimodule.Matrix

(Additive - Monoid) a => Monoid (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

mempty :: Additive (V4 a) #

mappend :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) #

mconcat :: [Additive (V4 a)] -> Additive (V4 a) #

(Additive - Group) a => Group (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

inv :: Additive (V4 a) -> Additive (V4 a) #

greplicate :: Integer -> Additive (V4 a) -> Additive (V4 a) #

(Additive - Group) a => Loop (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

lempty :: Additive (V4 a) #

lreplicate :: Natural -> Additive (V4 a) -> Additive (V4 a) #

(Additive - Group) a => Quasigroup (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

(//) :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) #

(\\) :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) #

(Additive - Group) a => Magma (Additive (V4 a)) Source #

Vector & matrix subtraction.

>>> V4 1 2 3 - V4 4 5 6
V4 (-3) (-3) (-3)
>>> V4 (V4 1 2 3) (V4 4 5 6) (V4 7 8 9) - V4 (V4 7 8 9) (V4 7 8 9) (V4 7 8 9)
V4 (V4 (-6) (-6) (-6)) (V4 (-3) (-3) (-3)) (V4 0 0 0)
Instance details

Defined in Data.Semimodule.Vector

Methods

(<<) :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) #

Ring a => Ring (M44 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Semiring a => Semiring (M44 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Semiring a => Presemiring (M44 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Semiring a => RightSemimodule (M44 a) (M24 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M44 a -> M24 a -> M24 a Source #

Semiring a => RightSemimodule (M44 a) (M14 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M44 a -> M14 a -> M14 a Source #

Semiring a => RightSemimodule (M22 a) (M42 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M22 a -> M42 a -> M42 a Source #

Semiring a => RightSemimodule (M11 a) (M41 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

rscale :: M11 a -> M41 a -> M41 a Source #

Semiring a => LeftSemimodule (M44 a) (M42 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M44 a -> M42 a -> M42 a Source #

Semiring a => LeftSemimodule (M44 a) (M41 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M44 a -> M41 a -> M41 a Source #

Semiring a => LeftSemimodule (M22 a) (M24 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M22 a -> M24 a -> M24 a Source #

Semiring a => LeftSemimodule (M11 a) (M14 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

lscale :: M11 a -> M14 a -> M14 a Source #

Semiring a => Bisemimodule (M44 a) (M22 a) (M42 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M44 a -> M22 a -> M42 a -> M42 a Source #

Semiring a => Bisemimodule (M44 a) (M11 a) (M41 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M44 a -> M11 a -> M41 a -> M41 a Source #

Semiring a => Bisemimodule (M22 a) (M44 a) (M24 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M22 a -> M44 a -> M24 a -> M24 a Source #

Semiring a => Bisemimodule (M11 a) (M44 a) (M14 a) Source # 
Instance details

Defined in Data.Semimodule.Matrix

Methods

discale :: M11 a -> M44 a -> M14 a -> M14 a Source #

type Rep V4 Source # 
Instance details

Defined in Data.Semimodule.Vector

type Rep V4 = I4

data I4 Source #

Constructors

I41 
I42 
I43 
I44 
Instances
Eq I4 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

(==) :: I4 -> I4 -> Bool #

(/=) :: I4 -> I4 -> Bool #

Ord I4 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

compare :: I4 -> I4 -> Ordering #

(<) :: I4 -> I4 -> Bool #

(<=) :: I4 -> I4 -> Bool #

(>) :: I4 -> I4 -> Bool #

(>=) :: I4 -> I4 -> Bool #

max :: I4 -> I4 -> I4 #

min :: I4 -> I4 -> I4 #

Show I4 Source # 
Instance details

Defined in Data.Semimodule.Vector

Methods

showsPrec :: Int -> I4 -> ShowS #

show :: I4 -> String #

showList :: [I4] -> ShowS #

i4 :: a -> a -> a -> a -> I4 -> a Source #

fillI4 :: Basis I4 f => a -> a -> a -> a -> f a Source #