Infrastructure for Directed Acyclic Graphs in Julia
Author Juice-jl
6 Stars
Updated Last
1 Year Ago
Started In
November 2021


Unit Tests codecov

This package provides basic infrastructure to work with Directed Acyclic Graphs (DAGs) in Julia. It forms the foundation for packages such as LogicCircuits and ProbabilisticCircuits, which define custom DAGs that represent logical or probabilistic computation graphs.

Functionality includes:

  • applying foreach over the nodes of the DAG in topological or reverse topological order, linearize the DAG
  • computing the number of nodes, number of edges
  • propagating a value through the DAG, that is, a foldup operation
  • filter the nodes in the DAG
  • iterate over the nodes in the DAG, compute maximum, minimum, and other Base functions.
  • find the lca (lowest common ancestor) of nodes in a tree
  • arrange the DAG nodes in feedforward layers
  • collecting various statistics about the types of nodes and their in/out-degree

For example usage, please see the unit tests for DAGs and the special case of trees, or the source code of the dependent packages. A brief description of functions can be found in the .

Required Packages

No packages found.