GTALib-0.0.4: A library for GTA programming

Safe HaskellNone

GTA.Data.JoinList

Documentation

data JoinList a Source

Constructors

Times (JoinList a) (JoinList a) 
Single a 
Nil 

Instances

Eq a => Eq (JoinList a) 
Ord a => Ord (JoinList a) 
Read a => Read (JoinList a) 
Show a => Show (JoinList a) 
NFData a => NFData (JoinList a) 
GenericSemiringStructure (JoinListAlgebra a0) (JoinList a0) (JoinListMapFs a0) 

data JoinListAlgebra a gta Source

Constructors

JoinListAlgebra 

Fields

times :: gta -> gta -> gta
 
single :: a -> gta
 
nil :: gta
 

Instances

GenericSemiringStructure (JoinListAlgebra a0) (JoinList a0) (JoinListMapFs a0) 

joinize :: forall a. [a] -> JoinList aSource

dejoinize :: forall a. JoinList a -> [a]Source

segs :: [a] -> Semiring a s -> sSource

inits :: [a] -> Semiring a s -> sSource

tails :: [a] -> Semiring a s -> sSource

subs :: [a] -> Semiring a s -> sSource

assigns :: [m] -> [a] -> Semiring (m, a) s -> sSource

paths :: BinTree a a -> Semiring a s -> sSource

assignsBy :: (a -> [m]) -> [a] -> Semiring (m, a) s -> sSource

mapJ :: forall b a. (b -> a) -> JoinListMapFs b aSource

maxsumWith :: (Ord a, Num a) => (b -> a) -> Semiring b (AddIdentity a)Source

maxsumKWith :: (Ord a, Num a) => Int -> (b -> a) -> Semiring b [AddIdentity a]Source

maxsumsolutionXKWith :: (Ord a, Num a) => Semiring c b -> Int -> (c -> a) -> Semiring c [(AddIdentity a, b)]Source

maxsumsolutionXWith :: (Ord a, Num a) => Semiring c b -> (c -> a) -> Semiring c (AddIdentity a, b)Source

maxsumsolutionWith :: (Ord a, Num a) => (b -> a) -> Semiring b (AddIdentity a, Bag (JoinList b))Source

maxsumsolutionKWith :: (Ord a, Num a) => Int -> (b -> a) -> Semiring b [(AddIdentity a, Bag (JoinList b))]Source

maxprodWith :: (Ord a, Num a) => (b -> a) -> Semiring b (AddIdentity a)Source

maxprodKWith :: (Ord a, Num a) => Int -> (b -> a) -> Semiring b [AddIdentity a]Source

maxprodsolutionXKWith :: (Ord a, Num a) => Semiring c b -> Int -> (c -> a) -> Semiring c [(AddIdentity a, b)]Source

maxprodsolutionXWith :: (Ord a, Num a) => Semiring c b -> (c -> a) -> Semiring c (AddIdentity a, b)Source

maxprodsolutionWith :: (Ord a, Num a) => (b -> a) -> Semiring b (AddIdentity a, Bag (JoinList b))Source

maxprodsolutionKWith :: (Ord a, Num a) => Int -> (b -> a) -> Semiring b [(AddIdentity a, Bag (JoinList b))]Source

segsP :: NFData s => [a] -> Semiring a s -> sSource

initsP :: NFData s => [a] -> Semiring a s -> sSource

tailsP :: NFData s => [a] -> Semiring a s -> sSource

subsP :: NFData s => [a] -> Semiring a s -> sSource

assignsP :: NFData s => [m] -> [a] -> Semiring (m, a) s -> sSource

assignsByP :: NFData s => (a -> [m]) -> [a] -> Semiring (m, a) s -> sSource