gasp-1.0.0.0: A framework of algebraic classes

Safe HaskellSafe
LanguageHaskell2010

Algebra.Classes

Synopsis

Documentation

newtype Sum a Source #

Constructors

Sum 

Fields

Instances

Additive a => Monoid (Sum a) Source # 

Methods

mempty :: Sum a #

mappend :: Sum a -> Sum a -> Sum a #

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

newtype Product a Source #

Constructors

Product 

Fields

Instances

class Additive a where Source #

Additive monoid

Minimal complete definition

(+), zero

Methods

(+) :: a -> a -> a infixl 6 Source #

zero :: a Source #

times :: Natural -> a -> a Source #

Instances

Additive Double Source # 
Additive Float Source # 
Additive Int Source # 

Methods

(+) :: Int -> Int -> Int Source #

zero :: Int Source #

times :: Natural -> Int -> Int Source #

Additive Integer Source # 
Additive Word8 Source # 
Additive Word16 Source # 
Additive Word32 Source # 
Additive CInt Source # 
Additive InitialAdditive Source # 
Integral a => Additive (Ratio a) Source # 

Methods

(+) :: Ratio a -> Ratio a -> Ratio a Source #

zero :: Ratio a Source #

times :: Natural -> Ratio a -> Ratio a Source #

(Ord k, Additive v) => Additive (Map k v) Source # 

Methods

(+) :: Map k v -> Map k v -> Map k v Source #

zero :: Map k v Source #

times :: Natural -> Map k v -> Map k v Source #

add :: (Foldable t, Additive a) => t a -> a Source #

class Additive a => Group a where Source #

Minimal complete definition

negate | (-)

Methods

(-) :: a -> a -> a infixl 6 Source #

negate :: a -> a Source #

mult :: Integer -> a -> a Source #

Instances

Group Double Source # 
Group Float Source # 
Group Int Source # 

Methods

(-) :: Int -> Int -> Int Source #

negate :: Int -> Int Source #

mult :: Integer -> Int -> Int Source #

Group Integer Source # 
Group Word8 Source # 
Group Word16 Source # 
Group Word32 Source # 
Group CInt Source # 
Integral a => Group (Ratio a) Source # 

Methods

(-) :: Ratio a -> Ratio a -> Ratio a Source #

negate :: Ratio a -> Ratio a Source #

mult :: Integer -> Ratio a -> Ratio a Source #

(Ord k, Group v) => Group (Map k v) Source # 

Methods

(-) :: Map k v -> Map k v -> Map k v Source #

negate :: Map k v -> Map k v Source #

mult :: Integer -> Map k v -> Map k v Source #

class (AbelianAdditive a, Ring scalar) => Module scalar a where Source #

Module

Minimal complete definition

(*^)

Methods

(*^) :: scalar -> a -> a infixr 7 Source #

Instances

class Multiplicative a where Source #

Multiplicative monoid

Minimal complete definition

(*), one

Methods

(*) :: a -> a -> a infixl 7 Source #

one :: a Source #

(^) :: a -> Natural -> a Source #

Instances

Multiplicative Double Source # 
Multiplicative Float Source # 
Multiplicative Int Source # 

Methods

(*) :: Int -> Int -> Int Source #

one :: Int Source #

(^) :: Int -> Natural -> Int Source #

Multiplicative Integer Source # 
Multiplicative Word8 Source # 
Multiplicative Word16 Source # 
Multiplicative Word32 Source # 
Multiplicative CInt Source # 

Methods

(*) :: CInt -> CInt -> CInt Source #

one :: CInt Source #

(^) :: CInt -> Natural -> CInt Source #

Integral a => Multiplicative (Ratio a) Source # 

Methods

(*) :: Ratio a -> Ratio a -> Ratio a Source #

one :: Ratio a Source #

(^) :: Ratio a -> Natural -> Ratio a Source #

Additive a => Multiplicative (Exponential a) Source # 

multiply :: (Multiplicative a, Foldable f) => f a -> a Source #

class Multiplicative a => Division a where Source #

Minimal complete definition

recip | (/)

Methods

recip :: a -> a Source #

(/) :: a -> a -> a infixl 7 Source #

type VectorSpace scalar a = (Field scalar, Module scalar a) Source #

class (Real a, Enum a, EuclideanDomain a) => Integral a where Source #

Minimal complete definition

toInteger

Methods

quot, rem :: a -> a -> a Source #

quotRem :: a -> a -> (a, a) Source #

toInteger :: a -> Integer Source #

data Ratio a Source #

Constructors

!a :% !a 

Instances

Eq a => Eq (Ratio a) Source # 

Methods

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

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

gcd :: Integral a => a -> a -> a Source #

ifThenElse :: Bool -> t -> t -> t Source #