package graph

Collection of graph algorithms

Linear Supertypes
AnyRef, Any
  1. Alphabetic
  2. By inheritance
  1. graph
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
  1. Public
  2. All

Type Members

  1. case class Binary[T1, T2, T3, N[_]](arg1: Id[T1], arg2: Id[T2], fn: (N[T1], N[T2]) ⇒ N[T3]) extends Expr[T3, N] with Product with Serializable

  2. case class BinaryLit[T1, T2, T3, N[_]](arg1: Literal[T1, N], arg2: Literal[T2, N], fn: (N[T1], N[T2]) ⇒ N[T3]) extends Literal[T3, N] with Product with Serializable

  3. case class Const[T, N[_]](value: N[T]) extends Expr[T, N] with Product with Serializable

  4. case class ConstLit[T, N[_]](evaluate: N[T]) extends Literal[T, N] with Product with Serializable

  5. abstract class DependantGraph[T] extends AnyRef

    Given Dag and a List of immutable nodes, and a function to get dependencies, compute the dependants (reverse the graph)

  6. sealed trait Expr[T, N[_]] extends AnyRef

    Expr[T, N] is an expression of a graph of container nodes N[_] with result type N[T].

  7. sealed trait ExpressionDag[N[_]] extends AnyRef

  8. trait GenFunction[T[_], R[_]] extends AnyRef

  9. trait GenPartial[T[_], R[_]] extends AnyRef

  10. class HCache[K[_], V[_]] extends AnyRef

    This is a useful cache for memoizing heterogenously types functions

  11. sealed abstract class HMap[K[_], V[_]] extends AnyRef

    This is a weak heterogenous map.

  12. final case class Id[T](id: Int) extends Product with Serializable

    The Expressions are assigned Ids.

  13. sealed trait Literal[T, N[_]] extends AnyRef

    This represents literal expressions (no variable redirection) of container nodes of type N[T]

  14. type NeighborFn[T] = (T) ⇒ Iterable[T]

  15. trait PartialRule[N[_]] extends Rule[N]

    Often a partial function is an easier way to express rules

  16. trait Rule[N[_]] extends AnyRef

    This implements a simplification rule on ExpressionDags

  17. case class Unary[T1, T2, N[_]](arg: Id[T1], fn: (N[T1]) ⇒ N[T2]) extends Expr[T2, N] with Product with Serializable

  18. case class UnaryLit[T1, T2, N[_]](arg: Literal[T1, N], fn: (N[T1]) ⇒ N[T2]) extends Literal[T2, N] with Product with Serializable

  19. case class Var[T, N[_]](name: Id[T]) extends Expr[T, N] with Product with Serializable

Value Members

  1. object Expr

  2. object ExpressionDag

  3. object HMap

  4. object Literal

  5. def dagDepth[T](nodes: Iterable[T])(nf: (T) ⇒ Iterable[T]): Map[T, Int]

    Return the depth of each node in the dag.

    Return the depth of each node in the dag. a node that has no dependencies has depth == 0 else it is max of parent + 1

    Behavior is not defined if the graph is not a DAG (for now, it runs forever, may throw later)

  6. def depthFirstOf[T](t: T)(nf: (T) ⇒ Iterable[T]): List[T]

    Return the depth first enumeration of reachable nodes, NOT INCLUDING INPUT, unless it can be reached via neighbors

  7. def reversed[T](nodes: Iterable[T])(nf: (T) ⇒ Iterable[T]): (T) ⇒ Iterable[T]

    Return a NeighborFn for the graph of reversed edges defined by this set of nodes and nf We avoid Sets which use hash-codes which may depend on addresses which are not stable from one run to the next.

Inherited from AnyRef

Inherited from Any