cifl-math-library-1.1.1.0: Math libraries
Safe HaskellSafe
LanguageHaskell2010

Math.Graph.Interface

Documentation

class DigraphFactory g v e | g -> v, g -> e, v e -> g where Source #

Methods

vertexGraph :: v -> g Source #

edgeGraph :: e -> v -> v -> g Source #

verticesFromSetGraph :: Set v -> g Source #

verticesGraph :: [v] -> g Source #

completeGraph :: [v] -> (v -> v -> e) -> g Source #

edgeGraphFromMap :: Map e (v, v) -> g Source #

edgesGraph :: [(e, (v, v))] -> g Source #

loopGraph :: [(v, e)] -> g Source #

Instances

Instances details
(Ord v, Ord e) => DigraphFactory (Graph (Three :: Type -> Type -> Type) (GraphElem v e)) v e Source # 
Instance details

Defined in Math.Graph.Digraph

Methods

vertexGraph :: v -> Graph Three (GraphElem v e) Source #

edgeGraph :: e -> v -> v -> Graph Three (GraphElem v e) Source #

verticesFromSetGraph :: Set v -> Graph Three (GraphElem v e) Source #

verticesGraph :: [v] -> Graph Three (GraphElem v e) Source #

completeGraph :: [v] -> (v -> v -> e) -> Graph Three (GraphElem v e) Source #

edgeGraphFromMap :: Map e (v, v) -> Graph Three (GraphElem v e) Source #

edgesGraph :: [(e, (v, v))] -> Graph Three (GraphElem v e) Source #

loopGraph :: [(v, e)] -> Graph Three (GraphElem v e) Source #

class ReversibleGraphFactory g v e | g -> v, g -> e, v e -> g where Source #

Methods

reversibleVertexGraph :: v -> g Source #

reversibleVerticesGraph :: [v] -> g Source #

reversibleVerticesFromSetGraph :: Set v -> g Source #

reversibleEdgeGraph :: e -> e -> v -> v -> g Source #

reversibleCompleteGraph :: [v] -> (v -> v -> (e, e)) -> g Source #

reversibleEdgesGraph :: [((e, e), (v, v))] -> g Source #

reversibleLoopGraph :: [(v, e, e)] -> g Source #

Instances

Instances details
(Ord v, Ord e) => ReversibleGraphFactory (Graph (Four :: Type -> Type -> Type) (GraphElem v e)) v e Source # 
Instance details

Defined in Math.Graph.Digraph

class GraphMonad m e => LabeledGraphMonad m lbl e where Source #

Methods

glabelOf :: e -> m lbl Source #

gfind :: lbl -> m e Source #

Instances

Instances details
(Monad m, Ord e, GraphMonoid mon Bool) => LabeledGraphMonad (ReaderT (LGraph lbl mon e) m) lbl e Source # 
Instance details

Defined in Math.Graph.Labeled

Methods

glabelOf :: e -> ReaderT (LGraph lbl mon e) m lbl Source #

gfind :: lbl -> ReaderT (LGraph lbl mon e) m e Source #

(Monad m, Ord e, GraphMonoid mon Bool) => LabeledGraphMonad (InLGraphM mon lbl e m) lbl e Source # 
Instance details

Defined in Math.Graph.Labeled

Methods

glabelOf :: e -> InLGraphM mon lbl e m lbl Source #

gfind :: lbl -> InLGraphM mon lbl e m e Source #

class Arrow arr => GraphArrow arr e where Source #

Methods

gisVertexA :: arr e Bool Source #

gsourceA :: arr e e Source #

gtargetA :: arr e e Source #

gelementsA :: arr () (Set e) Source #

gverticesA :: arr () (Set e) Source #

gedgesA :: arr () (Set e) Source #

gedgesStartingFromA :: arr e (Set e) Source #

gedgesEndingToA :: arr e (Set e) Source #

glinksA :: arr () (Set (e, e, e)) Source #

Instances

Instances details
(Ord a, GraphMonoid m Bool) => GraphArrow (InGraphA m a) a Source # 
Instance details

Defined in Math.Graph.InGraphA

class GraphArrow arr e => ReversibleGraphArrow arr e where Source #

Methods

ginverseA :: arr e e Source #

greversibleLinksA :: arr () (Set ((e, e), (e, e))) Source #

Instances

Instances details
(Ord a, ReversibleGraphMonoid m Bool) => ReversibleGraphArrow (InGraphA m a) a Source # 
Instance details

Defined in Math.Graph.InGraphA

Methods

ginverseA :: InGraphA m a a a Source #

greversibleLinksA :: InGraphA m a () (Set ((a, a), (a, a))) Source #

class (Monad m, Eq e) => GraphMonad m e where Source #

Methods

gisVertex :: e -> m Bool Source #

gsource :: e -> m e Source #

gtarget :: e -> m e Source #

gelements :: m (Set e) Source #

gvertices :: m (Set e) Source #

gedges :: m (Set e) Source #

gedgesStartingFrom :: e -> m (Set e) Source #

gedgesEndingTo :: e -> m (Set e) Source #

glinks :: m (Set (e, e, e)) Source #

gloops :: Ord e => m (Set e) Source #

gisLoop :: e -> m Bool Source #

gisEdgeBetween :: e -> e -> e -> m Bool Source #

Instances

Instances details
(Monad m, Ord e, GraphMonoid mon Bool) => GraphMonad (ReaderT (LGraph lbl mon e) m) e Source # 
Instance details

Defined in Math.Graph.Labeled

Methods

gisVertex :: e -> ReaderT (LGraph lbl mon e) m Bool Source #

gsource :: e -> ReaderT (LGraph lbl mon e) m e Source #

gtarget :: e -> ReaderT (LGraph lbl mon e) m e Source #

gelements :: ReaderT (LGraph lbl mon e) m (Set e) Source #

gvertices :: ReaderT (LGraph lbl mon e) m (Set e) Source #

gedges :: ReaderT (LGraph lbl mon e) m (Set e) Source #

gedgesStartingFrom :: e -> ReaderT (LGraph lbl mon e) m (Set e) Source #

gedgesEndingTo :: e -> ReaderT (LGraph lbl mon e) m (Set e) Source #

glinks :: ReaderT (LGraph lbl mon e) m (Set (e, e, e)) Source #

gloops :: ReaderT (LGraph lbl mon e) m (Set e) Source #

gisLoop :: e -> ReaderT (LGraph lbl mon e) m Bool Source #

gisEdgeBetween :: e -> e -> e -> ReaderT (LGraph lbl mon e) m Bool Source #

(Monad m, Ord e, GraphMonoid mon Bool) => GraphMonad (ReaderT (Graph mon e) m) e Source # 
Instance details

Defined in Math.Graph.InGraphMonad

Methods

gisVertex :: e -> ReaderT (Graph mon e) m Bool Source #

gsource :: e -> ReaderT (Graph mon e) m e Source #

gtarget :: e -> ReaderT (Graph mon e) m e Source #

gelements :: ReaderT (Graph mon e) m (Set e) Source #

gvertices :: ReaderT (Graph mon e) m (Set e) Source #

gedges :: ReaderT (Graph mon e) m (Set e) Source #

gedgesStartingFrom :: e -> ReaderT (Graph mon e) m (Set e) Source #

gedgesEndingTo :: e -> ReaderT (Graph mon e) m (Set e) Source #

glinks :: ReaderT (Graph mon e) m (Set (e, e, e)) Source #

gloops :: ReaderT (Graph mon e) m (Set e) Source #

gisLoop :: e -> ReaderT (Graph mon e) m Bool Source #

gisEdgeBetween :: e -> e -> e -> ReaderT (Graph mon e) m Bool Source #

(GraphMonoid mon Bool, Monad m, Ord e) => GraphMonad (InGraphM mon e m) e Source # 
Instance details

Defined in Math.Graph.InGraphMonad

Methods

gisVertex :: e -> InGraphM mon e m Bool Source #

gsource :: e -> InGraphM mon e m e Source #

gtarget :: e -> InGraphM mon e m e Source #

gelements :: InGraphM mon e m (Set e) Source #

gvertices :: InGraphM mon e m (Set e) Source #

gedges :: InGraphM mon e m (Set e) Source #

gedgesStartingFrom :: e -> InGraphM mon e m (Set e) Source #

gedgesEndingTo :: e -> InGraphM mon e m (Set e) Source #

glinks :: InGraphM mon e m (Set (e, e, e)) Source #

gloops :: InGraphM mon e m (Set e) Source #

gisLoop :: e -> InGraphM mon e m Bool Source #

gisEdgeBetween :: e -> e -> e -> InGraphM mon e m Bool Source #

(Ord e, Monad m, GraphMonoid mon Bool) => GraphMonad (InLGraphM mon lbl e m) e Source # 
Instance details

Defined in Math.Graph.Labeled

Methods

gisVertex :: e -> InLGraphM mon lbl e m Bool Source #

gsource :: e -> InLGraphM mon lbl e m e Source #

gtarget :: e -> InLGraphM mon lbl e m e Source #

gelements :: InLGraphM mon lbl e m (Set e) Source #

gvertices :: InLGraphM mon lbl e m (Set e) Source #

gedges :: InLGraphM mon lbl e m (Set e) Source #

gedgesStartingFrom :: e -> InLGraphM mon lbl e m (Set e) Source #

gedgesEndingTo :: e -> InLGraphM mon lbl e m (Set e) Source #

glinks :: InLGraphM mon lbl e m (Set (e, e, e)) Source #

gloops :: InLGraphM mon lbl e m (Set e) Source #

gisLoop :: e -> InLGraphM mon lbl e m Bool Source #

gisEdgeBetween :: e -> e -> e -> InLGraphM mon lbl e m Bool Source #

defaultGloops :: (Ord e, GraphMonad m e) => m (Set e) Source #

class GraphMonad m e => ReversibleGraphMonad m e where Source #

Minimal complete definition

ginverse, greversibleLinks

Methods

ginverse :: e -> m e Source #

greversibleLinks :: m (Set ((e, e), (e, e))) Source #

goneLaneLoops :: Ord e => m (Set e) Source #

gisOneLaneLoop :: e -> m Bool Source #

Instances

Instances details
(Monad m, Ord e, ReversibleGraphMonoid mon Bool) => ReversibleGraphMonad (ReaderT (LGraph lbl mon e) m) e Source # 
Instance details

Defined in Math.Graph.Labeled

Methods

ginverse :: e -> ReaderT (LGraph lbl mon e) m e Source #

greversibleLinks :: ReaderT (LGraph lbl mon e) m (Set ((e, e), (e, e))) Source #

goneLaneLoops :: ReaderT (LGraph lbl mon e) m (Set e) Source #

gisOneLaneLoop :: e -> ReaderT (LGraph lbl mon e) m Bool Source #

(Monad m, Ord e, ReversibleGraphMonoid mon Bool) => ReversibleGraphMonad (ReaderT (Graph mon e) m) e Source # 
Instance details

Defined in Math.Graph.InGraphMonad

Methods

ginverse :: e -> ReaderT (Graph mon e) m e Source #

greversibleLinks :: ReaderT (Graph mon e) m (Set ((e, e), (e, e))) Source #

goneLaneLoops :: ReaderT (Graph mon e) m (Set e) Source #

gisOneLaneLoop :: e -> ReaderT (Graph mon e) m Bool Source #

(ReversibleGraphMonoid mon Bool, Monad m, Ord e) => ReversibleGraphMonad (InGraphM mon e m) e Source # 
Instance details

Defined in Math.Graph.InGraphMonad

Methods

ginverse :: e -> InGraphM mon e m e Source #

greversibleLinks :: InGraphM mon e m (Set ((e, e), (e, e))) Source #

goneLaneLoops :: InGraphM mon e m (Set e) Source #

gisOneLaneLoop :: e -> InGraphM mon e m Bool Source #

(Ord e, Monad m, ReversibleGraphMonoid mon Bool) => ReversibleGraphMonad (InLGraphM mon lbl e m) e Source # 
Instance details

Defined in Math.Graph.Labeled

Methods

ginverse :: e -> InLGraphM mon lbl e m e Source #

greversibleLinks :: InLGraphM mon lbl e m (Set ((e, e), (e, e))) Source #

goneLaneLoops :: InLGraphM mon lbl e m (Set e) Source #

gisOneLaneLoop :: e -> InLGraphM mon lbl e m Bool Source #

defaultGisEdgeBetween :: GraphMonad m e => e -> e -> e -> m Bool Source #