rings-0.0.3: Ring-like objects.

Safe HaskellSafe
LanguageHaskell2010

Data.Semimodule.Basis

Documentation

type Basis b f = (Free f, Rep f ~ b) Source #

data V2 a Source #

Constructors

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

Defined in Data.Semimodule.Basis

Methods

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

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

Foldable V2 Source # 
Instance details

Defined in Data.Semimodule.Basis

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.Basis

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.Basis

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.Basis

Methods

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

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

toNonEmpty :: V2 a -> NonEmpty a #

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

Defined in Data.Semimodule.Basis

Methods

(*.) :: a -> V2 a -> V2 a Source #

(.*) :: V2 a -> a -> V2 a Source #

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

Defined in Data.Semimodule.Basis

Methods

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

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

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

Defined in Data.Semimodule.Basis

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.Basis

Methods

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

show :: V2 a -> String #

showList :: [V2 a] -> ShowS #

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

Matrix addition.

>>> 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.Basis

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) #

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

Vector addition.

>>> V2 1 2 <> V2 3 4
V2 4 6
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

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

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

Defined in Data.Semimodule.Basis

Methods

mempty :: Additive (V2 a) #

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

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

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

Defined in Data.Semimodule.Basis

Methods

mempty :: V2 a #

mappend :: V2 a -> V2 a -> V2 a #

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

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

Matrix subtraction.

>>> 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.Basis

Methods

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

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

Vector subtraction.

>>> V2 1 2 << V2 3 4
V2 (-2) (-2)
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

Defined in Data.Semimodule.Basis

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

Defined in Data.Semimodule.Basis

Methods

lempty :: V2 a Source #

lreplicate :: Natural -> V2 a -> V2 a Source #

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

Defined in Data.Semimodule.Basis

Methods

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

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

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

Defined in Data.Semimodule.Basis

Methods

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

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

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

Defined in Data.Semimodule.Basis

Methods

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

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

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

Defined in Data.Semimodule.Basis

Methods

inv :: V2 a -> V2 a Source #

greplicate :: Integer -> V2 a -> V2 a Source #

type Rep V2 Source # 
Instance details

Defined in Data.Semimodule.Basis

type Rep V2 = E2

data E2 Source #

Constructors

E21 
E22 
Instances
Eq E2 Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

Ord E2 Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

compare :: E2 -> E2 -> Ordering #

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

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

(>) :: E2 -> E2 -> Bool #

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

max :: E2 -> E2 -> E2 #

min :: E2 -> E2 -> E2 #

Show E2 Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

showsPrec :: Int -> E2 -> ShowS #

show :: E2 -> String #

showList :: [E2] -> ShowS #

Semiring r => Composition r E2 Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

conjugateWith :: (E2 -> r) -> E2 -> r Source #

normWith :: (E2 -> r) -> r Source #

Semiring r => Algebra r E2 Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

multiplyWith :: (E2 -> E2 -> r) -> E2 -> r Source #

Semigroup (Additive E2) Source # 
Instance details

Defined in Data.Semimodule.Basis

Monoid (Additive E2) Source # 
Instance details

Defined in Data.Semimodule.Basis

e2 :: Basis E2 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.Basis

Methods

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

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

Foldable V3 Source # 
Instance details

Defined in Data.Semimodule.Basis

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.Basis

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.Basis

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.Basis

Methods

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

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

toNonEmpty :: V3 a -> NonEmpty a #

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

Defined in Data.Semimodule.Basis

Methods

(*.) :: a -> V3 a -> V3 a Source #

(.*) :: V3 a -> a -> V3 a Source #

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

Defined in Data.Semimodule.Basis

Methods

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

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

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

Defined in Data.Semimodule.Basis

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.Basis

Methods

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

show :: V3 a -> String #

showList :: [V3 a] -> ShowS #

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

Matrix addition.

>>> 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.Basis

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) #

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

Vector addition.

>>> V3 1 2 3 <> V3 4 5 6
V3 5 7 9
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

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

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

Defined in Data.Semimodule.Basis

Methods

mempty :: Additive (V3 a) #

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

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

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

Defined in Data.Semimodule.Basis

Methods

mempty :: V3 a #

mappend :: V3 a -> V3 a -> V3 a #

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

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

Matrix subtraction.

>>> 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.Basis

Methods

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

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

Vector subtraction.

>>> V3 1 2 3 << V3 4 5 6
V3 (-3) (-3) (-3)
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

Defined in Data.Semimodule.Basis

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

Defined in Data.Semimodule.Basis

Methods

lempty :: V3 a Source #

lreplicate :: Natural -> V3 a -> V3 a Source #

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

Defined in Data.Semimodule.Basis

Methods

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

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

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

Defined in Data.Semimodule.Basis

Methods

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

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

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

Defined in Data.Semimodule.Basis

Methods

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

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

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

Defined in Data.Semimodule.Basis

Methods

inv :: V3 a -> V3 a Source #

greplicate :: Integer -> V3 a -> V3 a Source #

type Rep V3 Source # 
Instance details

Defined in Data.Semimodule.Basis

type Rep V3 = E3

data E3 Source #

Constructors

E31 
E32 
E33 
Instances
Eq E3 Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

Ord E3 Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

compare :: E3 -> E3 -> Ordering #

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

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

(>) :: E3 -> E3 -> Bool #

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

max :: E3 -> E3 -> E3 #

min :: E3 -> E3 -> E3 #

Show E3 Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

showsPrec :: Int -> E3 -> ShowS #

show :: E3 -> String #

showList :: [E3] -> ShowS #

Field r => Division r QuaternionBasis Source # 
Instance details

Defined in Data.Semimodule.Basis

Ring r => Unital r QuaternionBasis Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

unitWith :: r -> QuaternionBasis -> r Source #

Ring r => Composition r QuaternionBasis Source # 
Instance details

Defined in Data.Semimodule.Basis

Ring r => Composition r E3 Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

conjugateWith :: (E3 -> r) -> E3 -> r Source #

normWith :: (E3 -> r) -> r Source #

Ring r => Algebra r QuaternionBasis Source # 
Instance details

Defined in Data.Semimodule.Basis

Ring r => Algebra r E3 Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

multiplyWith :: (E3 -> E3 -> r) -> E3 -> r Source #

Semigroup (Additive E3) Source # 
Instance details

Defined in Data.Semimodule.Basis

Monoid (Additive E3) Source # 
Instance details

Defined in Data.Semimodule.Basis

e3 :: Basis E3 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.Basis

Methods

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

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

Foldable V4 Source # 
Instance details

Defined in Data.Semimodule.Basis

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.Basis

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.Basis

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.Basis

Methods

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

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

toNonEmpty :: V4 a -> NonEmpty a #

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

Defined in Data.Semimodule.Basis

Methods

(*.) :: a -> V4 a -> V4 a Source #

(.*) :: V4 a -> a -> V4 a Source #

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

Defined in Data.Semimodule.Basis

Methods

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

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

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

Defined in Data.Semimodule.Basis

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.Basis

Methods

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

show :: V4 a -> String #

showList :: [V4 a] -> ShowS #

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

Matrix addition.

>>> 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.Basis

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) #

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

Vector addition.

>>> V4 1 2 3 4 <> V4 5 6 7 8
V4 6 8 10 12 
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

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

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

Defined in Data.Semimodule.Basis

Methods

mempty :: Additive (V4 a) #

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

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

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

Defined in Data.Semimodule.Basis

Methods

mempty :: V4 a #

mappend :: V4 a -> V4 a -> V4 a #

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

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

Matrix subtraction.

>>> 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.Basis

Methods

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

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

Vector subtraction.

>>> V4 1 2 3 << V4 4 5 6
V4 (-3) (-3) (-3)
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

Defined in Data.Semimodule.Basis

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

Defined in Data.Semimodule.Basis

Methods

lempty :: V4 a Source #

lreplicate :: Natural -> V4 a -> V4 a Source #

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

Defined in Data.Semimodule.Basis

Methods

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

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

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

Defined in Data.Semimodule.Basis

Methods

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

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

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

Defined in Data.Semimodule.Basis

Methods

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

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

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

Defined in Data.Semimodule.Basis

Methods

inv :: V4 a -> V4 a Source #

greplicate :: Integer -> V4 a -> V4 a Source #

type Rep V4 Source # 
Instance details

Defined in Data.Semimodule.Basis

type Rep V4 = E4

data E4 Source #

Constructors

E41 
E42 
E43 
E44 
Instances
Eq E4 Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

Ord E4 Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

compare :: E4 -> E4 -> Ordering #

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

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

(>) :: E4 -> E4 -> Bool #

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

max :: E4 -> E4 -> E4 #

min :: E4 -> E4 -> E4 #

Show E4 Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

showsPrec :: Int -> E4 -> ShowS #

show :: E4 -> String #

showList :: [E4] -> ShowS #

e4 :: Basis E4 f => a -> a -> a -> a -> f a Source #

data VFour a Source #

Constructors

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

Defined in Data.Semimodule.Basis

Methods

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

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

Foldable VFour Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

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

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

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

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

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

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

toList :: VFour a -> [a] #

null :: VFour a -> Bool #

length :: VFour a -> Int #

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

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

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

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

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

Distributive VFour Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

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

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

Representable VFour Source # 
Instance details

Defined in Data.Semimodule.Basis

Associated Types

type Rep VFour :: Type #

Methods

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

index :: VFour a -> Rep VFour -> a #

Foldable1 VFour Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

toNonEmpty :: VFour a -> NonEmpty a #

Semiring a => Semimodule a (VFour a) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

(*.) :: a -> VFour a -> VFour a Source #

(.*) :: VFour a -> a -> VFour a Source #

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

Defined in Data.Semimodule.Basis

Methods

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

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

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

Defined in Data.Semimodule.Basis

Methods

compare :: VFour a -> VFour a -> Ordering #

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

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

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

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

max :: VFour a -> VFour a -> VFour a #

min :: VFour a -> VFour a -> VFour a #

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

Defined in Data.Semimodule.Basis

Methods

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

show :: VFour a -> String #

showList :: [VFour a] -> ShowS #

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

Matrix addition.

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

Defined in Data.Semimodule.Basis

Methods

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

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

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

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

Vector addition.

>>> VFour 1 2 3 4 <> VFour 5 6 7 8
VFour 6 8 10 12 
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

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

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

Defined in Data.Semimodule.Basis

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

Defined in Data.Semimodule.Basis

Methods

mempty :: VFour a #

mappend :: VFour a -> VFour a -> VFour a #

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

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

Matrix subtraction.

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

Defined in Data.Semimodule.Basis

Methods

(<<) :: Additive (VFour a) -> Additive (VFour a) -> Additive (VFour a) Source #

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

Vector subtraction.

>>> VFour 1 2 3 << VFour 4 5 6
VFour (-3) (-3) (-3)
Instance details

Defined in Data.Semimodule.Basis

Methods

(<<) :: VFour a -> VFour a -> VFour a Source #

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

Defined in Data.Semimodule.Basis

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

Defined in Data.Semimodule.Basis

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

Defined in Data.Semimodule.Basis

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

Defined in Data.Semimodule.Basis

Methods

(//) :: VFour a -> VFour a -> VFour a Source #

(\\) :: VFour a -> VFour a -> VFour a Source #

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

Defined in Data.Semimodule.Basis

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

Defined in Data.Semimodule.Basis

Methods

inv :: VFour a -> VFour a Source #

greplicate :: Integer -> VFour a -> VFour a Source #

type Rep VFour Source # 
Instance details

Defined in Data.Semimodule.Basis