Package Info

ghc-algebraic-graphs


A library for algebraic graph construction and transformation


Unspecified

<https://github.com/snowleopard/alga Alga> is a library for algebraic construction and manipulation of graphs in Haskell. See <https://github.com/snowleopard/alga-paper this paper> for the motivation behind the library, the underlying theory and implementation details.

The top-level module <http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph.html Algebra.Graph> defines the main data type for /algebraic graphs/ <http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph.html#t:Graph Graph>, as well as associated algorithms. For type-safe representation and manipulation of /non-empty algebraic graphs/, see <http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-NonEmpty.html Algebra.Graph.NonEmpty>. Furthermore, /algebraic graphs with edge labels/ are implemented in <http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-Labelled.html Algebra.Graph.Labelled>.

The library also provides conventional graph data structures, such as <http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-AdjacencyMap.html Algebra.Graph.AdjacencyMap> along with its various flavours:

  • adjacency maps specialised to graphs with vertices of type 'Int'

(<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-AdjacencyIntMap.html Algebra.Graph.AdjacencyIntMap>), * non-empty adjacency maps (<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-NonEmpty-AdjacencyMap.html Algebra.Graph.NonEmpty.AdjacencyMap>), * adjacency maps for undirected bipartite graphs (<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-Bipartite-AdjacencyMap.html Algebra.Graph.Bipartite.AdjacencyMap>), * adjacency maps with edge labels (<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-Labelled-AdjacencyMap.html Algebra.Graph.Labelled.AdjacencyMap>), * acyclic adjacency maps (<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-Acyclic-AdjacencyMap.html Algebra.Graph.Acyclic.AdjacencyMap>),

A large part of the API of algebraic graphs and adjacency maps is available through the 'Foldable'-like type class <http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-ToGraph.html Algebra.Graph.ToGraph>.

The type classes defined in <http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-Class.html Algebra.Graph.Class> and <http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-HigherKinded-Class.html 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 <https://github.com/snowleopard/alga/issues discussions on the library API>.


License: MIT
URL: https://hackage.haskell.org/package/algebraic-graphs

Categories

Releases

Package Version Update ID Released Package Hub Version Platforms Subpackages
0.6-bp155.2.14 info GA Release 2023-05-22 15 SP5
  • AArch64
  • ppc64le
  • s390x
  • x86-64
  • ghc-algebraic-graphs
  • ghc-algebraic-graphs-devel
0.6-bp154.1.11 info GA Release 2022-05-09 15 SP4
  • AArch64
  • ppc64le
  • x86-64
  • ghc-algebraic-graphs
  • ghc-algebraic-graphs-devel