semiring-num-0.1.0.0: Basic semiring class and instances

LicenseMIT
Maintainermail@doisinkidney.com
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Data.Semiring.Numeric

Description

 

Synopsis

Documentation

newtype Bottleneck a Source #

<+> is max, <.> is min

Constructors

Bottleneck 

Fields

Instances

Monad Bottleneck Source # 

Methods

(>>=) :: Bottleneck a -> (a -> Bottleneck b) -> Bottleneck b #

(>>) :: Bottleneck a -> Bottleneck b -> Bottleneck b #

return :: a -> Bottleneck a #

fail :: String -> Bottleneck a #

Functor Bottleneck Source # 

Methods

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

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

Applicative Bottleneck Source # 

Methods

pure :: a -> Bottleneck a #

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

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

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

Foldable Bottleneck Source # 

Methods

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

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

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

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

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

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

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

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

toList :: Bottleneck a -> [a] #

null :: Bottleneck a -> Bool #

length :: Bottleneck a -> Int #

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

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

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

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

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

Generic1 Bottleneck Source # 

Associated Types

type Rep1 (Bottleneck :: * -> *) :: * -> * #

Bounded a => Bounded (Bottleneck a) Source # 
Eq a => Eq (Bottleneck a) Source # 

Methods

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

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

Num a => Num (Bottleneck a) Source # 
Ord a => Ord (Bottleneck a) Source # 
Read a => Read (Bottleneck a) Source # 
Show a => Show (Bottleneck a) Source # 
Generic (Bottleneck a) Source # 

Associated Types

type Rep (Bottleneck a) :: * -> * #

Methods

from :: Bottleneck a -> Rep (Bottleneck a) x #

to :: Rep (Bottleneck a) x -> Bottleneck a #

Arbitrary a => Arbitrary (Bottleneck a) Source # 
(Bounded a, Ord a) => Semiring (Bottleneck a) Source # 
type Rep1 Bottleneck Source # 
type Rep1 Bottleneck = D1 (MetaData "Bottleneck" "Data.Semiring.Numeric" "semiring-num-0.1.0.0-6l46Cfls9yh7iHQqASYJfk" True) (C1 (MetaCons "Bottleneck" PrefixI True) (S1 (MetaSel (Just Symbol "getBottleneck") NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))
type Rep (Bottleneck a) Source # 
type Rep (Bottleneck a) = D1 (MetaData "Bottleneck" "Data.Semiring.Numeric" "semiring-num-0.1.0.0-6l46Cfls9yh7iHQqASYJfk" True) (C1 (MetaCons "Bottleneck" PrefixI True) (S1 (MetaSel (Just Symbol "getBottleneck") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))

newtype Division a Source #

<+> is gcd, <.> is lcm. Positive numbers only.

Constructors

Division 

Fields

Instances

Monad Division Source # 

Methods

(>>=) :: Division a -> (a -> Division b) -> Division b #

(>>) :: Division a -> Division b -> Division b #

return :: a -> Division a #

fail :: String -> Division a #

Functor Division Source # 

Methods

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

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

Applicative Division Source # 

Methods

pure :: a -> Division a #

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

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

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

Foldable Division Source # 

Methods

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

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

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

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

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

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

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

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

toList :: Division a -> [a] #

null :: Division a -> Bool #

length :: Division a -> Int #

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

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

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

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

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

Generic1 Division Source # 

Associated Types

type Rep1 (Division :: * -> *) :: * -> * #

Methods

from1 :: Division a -> Rep1 Division a #

to1 :: Rep1 Division a -> Division a #

Bounded a => Bounded (Division a) Source # 
Eq a => Eq (Division a) Source # 

Methods

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

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

Num a => Num (Division a) Source # 
Ord a => Ord (Division a) Source # 

Methods

compare :: Division a -> Division a -> Ordering #

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

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

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

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

max :: Division a -> Division a -> Division a #

min :: Division a -> Division a -> Division a #

Read a => Read (Division a) Source # 
Show a => Show (Division a) Source # 

Methods

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

show :: Division a -> String #

showList :: [Division a] -> ShowS #

Generic (Division a) Source # 

Associated Types

type Rep (Division a) :: * -> * #

Methods

from :: Division a -> Rep (Division a) x #

to :: Rep (Division a) x -> Division a #

(Integral a, Arbitrary a) => Arbitrary (Division a) Source # 

Methods

arbitrary :: Gen (Division a) #

shrink :: Division a -> [Division a] #

(Integral a, Semiring a) => Semiring (Division a) Source #

Only expects positive numbers

type Rep1 Division Source # 
type Rep1 Division = D1 (MetaData "Division" "Data.Semiring.Numeric" "semiring-num-0.1.0.0-6l46Cfls9yh7iHQqASYJfk" True) (C1 (MetaCons "Division" PrefixI True) (S1 (MetaSel (Just Symbol "getDivision") NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))
type Rep (Division a) Source # 
type Rep (Division a) = D1 (MetaData "Division" "Data.Semiring.Numeric" "semiring-num-0.1.0.0-6l46Cfls9yh7iHQqASYJfk" True) (C1 (MetaCons "Division" PrefixI True) (S1 (MetaSel (Just Symbol "getDivision") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))

newtype Łukasiewicz a Source #

Wikipedia has some information on this. Also this paper.

Constructors

Łukasiewicz 

Fields

Instances

Monad Łukasiewicz Source # 
Functor Łukasiewicz Source # 

Methods

fmap :: (a -> b) -> Łukasiewicz a -> Łukasiewicz b #

(<$) :: a -> Łukasiewicz b -> Łukasiewicz a #

Applicative Łukasiewicz Source # 
Foldable Łukasiewicz Source # 

Methods

fold :: Monoid m => Łukasiewicz m -> m #

foldMap :: Monoid m => (a -> m) -> Łukasiewicz a -> m #

foldr :: (a -> b -> b) -> b -> Łukasiewicz a -> b #

foldr' :: (a -> b -> b) -> b -> Łukasiewicz a -> b #

foldl :: (b -> a -> b) -> b -> Łukasiewicz a -> b #

foldl' :: (b -> a -> b) -> b -> Łukasiewicz a -> b #

foldr1 :: (a -> a -> a) -> Łukasiewicz a -> a #

foldl1 :: (a -> a -> a) -> Łukasiewicz a -> a #

toList :: Łukasiewicz a -> [a] #

null :: Łukasiewicz a -> Bool #

length :: Łukasiewicz a -> Int #

elem :: Eq a => a -> Łukasiewicz a -> Bool #

maximum :: Ord a => Łukasiewicz a -> a #

minimum :: Ord a => Łukasiewicz a -> a #

sum :: Num a => Łukasiewicz a -> a #

product :: Num a => Łukasiewicz a -> a #

Generic1 Łukasiewicz Source # 

Associated Types

type Rep1 (Łukasiewicz :: * -> *) :: * -> * #

Bounded a => Bounded (Łukasiewicz a) Source # 
Eq a => Eq (Łukasiewicz a) Source # 
Num a => Num (Łukasiewicz a) Source # 
Ord a => Ord (Łukasiewicz a) Source # 
Read a => Read (Łukasiewicz a) Source # 
Show a => Show (Łukasiewicz a) Source # 
Generic (Łukasiewicz a) Source # 

Associated Types

type Rep (Łukasiewicz a) :: * -> * #

Methods

from :: Łukasiewicz a -> Rep (Łukasiewicz a) x #

to :: Rep (Łukasiewicz a) x -> Łukasiewicz a #

(Num a, Random a) => Arbitrary (Łukasiewicz a) Source # 
(Ord a, Num a) => Semiring (Łukasiewicz a) Source # 
type Rep1 Łukasiewicz Source # 
type Rep1 Łukasiewicz = D1 (MetaData "\321ukasiewicz" "Data.Semiring.Numeric" "semiring-num-0.1.0.0-6l46Cfls9yh7iHQqASYJfk" True) (C1 (MetaCons "\321ukasiewicz" PrefixI True) (S1 (MetaSel (Just Symbol "get\321ukasiewicz") NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))
type Rep (Łukasiewicz a) Source # 
type Rep (Łukasiewicz a) = D1 (MetaData "\321ukasiewicz" "Data.Semiring.Numeric" "semiring-num-0.1.0.0-6l46Cfls9yh7iHQqASYJfk" True) (C1 (MetaCons "\321ukasiewicz" PrefixI True) (S1 (MetaSel (Just Symbol "get\321ukasiewicz") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))

newtype Viterbi a Source #

Wikipedia has some information on this. Also this paper. Apparently used for probabilistic parsing.

Constructors

Viterbi 

Fields

Instances

Monad Viterbi Source # 

Methods

(>>=) :: Viterbi a -> (a -> Viterbi b) -> Viterbi b #

(>>) :: Viterbi a -> Viterbi b -> Viterbi b #

return :: a -> Viterbi a #

fail :: String -> Viterbi a #

Functor Viterbi Source # 

Methods

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

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

Applicative Viterbi Source # 

Methods

pure :: a -> Viterbi a #

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

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

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

Foldable Viterbi Source # 

Methods

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

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

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

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

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

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

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

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

toList :: Viterbi a -> [a] #

null :: Viterbi a -> Bool #

length :: Viterbi a -> Int #

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

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

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

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

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

Generic1 Viterbi Source # 

Associated Types

type Rep1 (Viterbi :: * -> *) :: * -> * #

Methods

from1 :: Viterbi a -> Rep1 Viterbi a #

to1 :: Rep1 Viterbi a -> Viterbi a #

Bounded a => Bounded (Viterbi a) Source # 
Eq a => Eq (Viterbi a) Source # 

Methods

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

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

Num a => Num (Viterbi a) Source # 

Methods

(+) :: Viterbi a -> Viterbi a -> Viterbi a #

(-) :: Viterbi a -> Viterbi a -> Viterbi a #

(*) :: Viterbi a -> Viterbi a -> Viterbi a #

negate :: Viterbi a -> Viterbi a #

abs :: Viterbi a -> Viterbi a #

signum :: Viterbi a -> Viterbi a #

fromInteger :: Integer -> Viterbi a #

Ord a => Ord (Viterbi a) Source # 

Methods

compare :: Viterbi a -> Viterbi a -> Ordering #

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

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

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

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

max :: Viterbi a -> Viterbi a -> Viterbi a #

min :: Viterbi a -> Viterbi a -> Viterbi a #

Read a => Read (Viterbi a) Source # 
Show a => Show (Viterbi a) Source # 

Methods

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

show :: Viterbi a -> String #

showList :: [Viterbi a] -> ShowS #

Generic (Viterbi a) Source # 

Associated Types

type Rep (Viterbi a) :: * -> * #

Methods

from :: Viterbi a -> Rep (Viterbi a) x #

to :: Rep (Viterbi a) x -> Viterbi a #

(Semiring a, Random a) => Arbitrary (Viterbi a) Source # 

Methods

arbitrary :: Gen (Viterbi a) #

shrink :: Viterbi a -> [Viterbi a] #

(Ord a, Semiring a) => Semiring (Viterbi a) Source # 
type Rep1 Viterbi Source # 
type Rep1 Viterbi = D1 (MetaData "Viterbi" "Data.Semiring.Numeric" "semiring-num-0.1.0.0-6l46Cfls9yh7iHQqASYJfk" True) (C1 (MetaCons "Viterbi" PrefixI True) (S1 (MetaSel (Just Symbol "getViterbi") NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))
type Rep (Viterbi a) Source # 
type Rep (Viterbi a) = D1 (MetaData "Viterbi" "Data.Semiring.Numeric" "semiring-num-0.1.0.0-6l46Cfls9yh7iHQqASYJfk" True) (C1 (MetaCons "Viterbi" PrefixI True) (S1 (MetaSel (Just Symbol "getViterbi") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))