Package0.8AlgebraAlgorithmsData StructuresGraphs
algebraic-graphs
A library for algebraic graph construction and transformation
- Version0.8
- CategoryAlgebra, Algorithms, Data Structures, Graphs
- LicenceMIT
- AuthorAndrey Mokhov <andrey.mokhov@gmail.com>, github: @snowleopard
- MaintainerAndrey Mokhov <andrey.mokhov@gmail.com>, github: @snowleopard, Alexandre Moine <alexandre@moine.me>, github: @nobrakal
- Homepagegithub.com/snowleopard/alga
- Pinned byhackage algebraic-graphs 0.8
- Sourcehackage.haskell.org/package/algebraic-graphs-0.8
Modules
29 modules- Algebra.Graph51Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.Acyclic.AdjacencyMap33Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.AdjacencyIntMap47Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.AdjacencyIntMap.Algorithm11Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.AdjacencyMap48Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.AdjacencyMap.Algorithm12Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.Bipartite.AdjacencyMap54Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.Bipartite.AdjacencyMap.Algorithm19Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.Class18Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.Example.Todo9
- Algebra.Graph.Export10Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.Export.Dot8Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.HigherKinded.Class31Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.Label35Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.Labelled40Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.Labelled.AdjacencyMap41Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.Labelled.Example.Automaton4Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.Labelled.Example.Network5Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.NonEmpty44Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.NonEmpty.AdjacencyMap42Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.Relation47Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.Relation.Preorder3An abstract implementation of preorder relations. Use Algebra.Graph.Class
- Algebra.Graph.Relation.Reflexive3An abstract implementation of reflexive binary relations. Use
- Algebra.Graph.Relation.Symmetric40An abstract implementation of symmetric binary relations. To avoid name
- Algebra.Graph.Relation.Transitive3An abstract implementation of transitive binary relations. Use
- Algebra.Graph.ToGraph5Alga is a library for algebraic construction and manipulation of graphs
- Algebra.Graph.Undirected42Alga is a library for algebraic construction and manipulation of graphs
- Data.Graph.Typed8Alga is a library for algebraic construction and manipulation of graphs
Internal modules · 1
- Algebra.Graph.Internal15Alga is a library for algebraic construction and manipulation of graphs
Description
Alga is a library for algebraic construction and manipulation of graphs in Haskell. See this paper for the motivation behind the library, the underlying theory and implementation details.
The top-level module Algebra.Graph defines the main data type for algebraic graphs Graph, as well as associated algorithms. For type-safe representation and manipulation of non-empty algebraic graphs, see Algebra.Graph.NonEmpty. Furthermore, algebraic graphs with edge labels are implemented in Algebra.Graph.Labelled.
The library also provides conventional graph data structures, such as Algebra.Graph.AdjacencyMap along with its various flavours:
adjacency maps specialised to graphs with vertices of type Int (Algebra.Graph.AdjacencyIntMap), non-empty adjacency maps (Algebra.Graph.NonEmpty.AdjacencyMap), adjacency maps for undirected bipartite graphs (Algebra.Graph.Bipartite.AdjacencyMap), adjacency maps with edge labels (Algebra.Graph.Labelled.AdjacencyMap), acyclic adjacency maps (Algebra.Graph.Acyclic.AdjacencyMap),
A large part of the API of algebraic graphs and adjacency maps is available through the Foldable-like type class Algebra.Graph.ToGraph.
The type classes defined in Algebra.Graph.Class and Algebra.Graph.HigherKinded.Class can be used for polymorphic construction and manipulation of graphs.
This is an experimental library and the API is expected to remain unstable until version 1.0.0. Please consider contributing to the on-going discussions on the library API.
Depends on
5 packages- array-0.5.8.0with GHC
- base-4.22.0.0with GHC
- containers-0.8with GHC
- deepseq-1.5.1.0with GHC
- transformers-0.6.1.2with GHC
Used by in this set · 0
Nothing in this set depends on it.