rings-0.0.2.4: Groups, rings, semirings, and dioids.

Safe HaskellSafe
LanguageHaskell2010

Data.Semiring.V3

Synopsis

Documentation

data V3 a Source #

Constructors

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

Defined in Data.Semiring.V3

Methods

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

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

Foldable V3 Source # 
Instance details

Defined in Data.Semiring.V3

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.Semiring.V3

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.Semiring.V3

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.Semiring.V3

Methods

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

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

toNonEmpty :: V3 a -> NonEmpty a #

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

Defined in Data.Semiring.V3

Methods

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

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

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

Defined in Data.Semiring.V3

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.Semiring.V3

Methods

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

show :: V3 a -> String #

showList :: [V3 a] -> ShowS #

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

Defined in Data.Semiring.V3

Methods

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

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

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

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

Defined in Data.Semiring.V3

Methods

mempty :: V3 a #

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

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

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

Defined in Data.Semiring.V3

Methods

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

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

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

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

pcompare :: V3 a -> V3 a -> Maybe Ordering #

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

Defined in Data.Semiring.V3

Methods

negate :: V3 a -> V3 a Source #

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

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

Defined in Data.Semiring.V3

Methods

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

fromBoolean :: Bool -> V3 a Source #

(Monoid a, Dioid a) => Dioid (V3 a) Source # 
Instance details

Defined in Data.Semiring.V3

Methods

fromNatural :: Natural -> V3 a Source #

type Rep V3 Source # 
Instance details

Defined in Data.Semiring.V3

type Rep V3 = I3

(<@>) :: Ring a => V3 a -> V3 a -> V3 a infixl 7 Source #

Cross product.

>>> V3 1 1 1 <@> V3 (-2) 1 1
V3 0 (-3) 3

The cross product satisfies the following properties:

a <@> a = 0 
a <@> b = − ( b <@> a ) , 
a <@> ( b + c ) = ( a <@> b ) + ( a <@> c ) , 
( r a ) <@> b = a <@> ( r b ) = r ( a <@> b ) . 
a <@> ( b <@> c ) + b <@> ( c <@> a ) + c <@> ( a <@> b ) = 0 . 

triple :: Ring a => V3 a -> V3 a -> V3 a -> a Source #

Scalar triple product.

data I3 Source #

Constructors

I31 
I32 
I33 
Instances
Eq I3 Source # 
Instance details

Defined in Data.Semiring.V3

Methods

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

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

Ord I3 Source # 
Instance details

Defined in Data.Semiring.V3

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.Semiring.V3

Methods

showsPrec :: Int -> I3 -> ShowS #

show :: I3 -> String #

showList :: [I3] -> ShowS #

Prd I3 Source # 
Instance details

Defined in Data.Semiring.V3

Methods

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

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

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

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

pcompare :: I3 -> I3 -> Maybe Ordering #

Minimal I3 Source # 
Instance details

Defined in Data.Semiring.V3

Methods

minimal :: I3 #

Maximal I3 Source # 
Instance details

Defined in Data.Semiring.V3

Methods

maximal :: I3 #