algebraic-graphs: A library for algebraic graph construction and transformation
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.
[Skip to Readme]
Modules
[Index] [Quick Jump]
- Algebra
- Data
- Graph
Downloads
- algebraic-graphs-0.7.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.1.0, 0.1.1, 0.1.1.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.6.1, 0.7 |
---|---|
Change log | CHANGES.md |
Dependencies | array (>=0.4 && <0.6), base (>=4.11 && <5), containers (>=0.5.5.1 && <0.8), deepseq (>=1.3.0.1 && <1.6), transformers (>=0.4 && <0.7) [details] |
License | MIT |
Copyright | Andrey Mokhov, 2016-2022 |
Author | Andrey Mokhov <andrey.mokhov@gmail.com>, github: @snowleopard |
Maintainer | Andrey Mokhov <andrey.mokhov@gmail.com>, github: @snowleopard, Alexandre Moine <alexandre@moine.me>, github: @nobrakal |
Revised | Revision 3 made by snowleopard at 2024-05-19T21:59:04Z |
Category | Algebra, Algorithms, Data Structures, Graphs |
Home page | https://github.com/snowleopard/alga |
Bug tracker | https://github.com/snowleopard/alga/issues |
Source repo | head: git clone https://github.com/snowleopard/alga.git |
Uploaded | by snowleopard at 2022-06-20T23:58:27Z |
Distributions | Arch:0.7, LTSHaskell:0.7, NixOS:0.7, Stackage:0.7 |
Reverse Dependencies | 23 direct, 63 indirect [details] |
Downloads | 27005 total (220 in the last 30 days) |
Rating | 2.75 (votes: 8) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2022-06-21 [all 1 reports] |