Packages

class Graph[TLabel] extends Cloneable

The Graph class stores vertex-labeled directed graphs using an adjacency set 'ch' representation, e.g., 'ch = { {1, 2}, {0}, {1} }' means that the graph has the following edges { (0, 1), (0, 2), (1, 0), (2, 1) }. Optionally, inverse adjacency via the 'pa' array can be stored at the cost of nearly doubling the storage requirements. ----------------------------------------------------------------------------

Linear Supertypes
Cloneable, Cloneable, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Graph
  2. Cloneable
  3. Cloneable
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Graph(ch: Array[Set[Int]], label: Array[TLabel] = Array.ofDim (0), inverse: Boolean = false, name: String = "g", vid: Array[Int] = null)(implicit arg0: ClassTag[TLabel])

    ch

    the array of child (adjacency) vertex sets (outgoing edges)

    label

    the array of vertex labels

    inverse

    whether to store inverse adjacency sets (parents)

    name

    the name of the digraph

    vid

    the vertex id (facilitates partitioning)

Value Members

  1. def addPar(): Unit

    Add the inverse adjacency sets for rapid accesses to parent vertices.

  2. def buildLabelMap(label: Array[TLabel]): Map[TLabel, Set[Int]]

    Given an array of labels, return an index from labels to the sets of vertices containing those labels.

    Given an array of labels, return an index from labels to the sets of vertices containing those labels.

    label

    the array of vertex labels of type TLabel

  3. val ch: Array[Set[Int]]
  4. def checkEdges: Boolean

    Check whether the end-point vertex id of each edge is within bounds: '0 ..

    Check whether the end-point vertex id of each edge is within bounds: '0 .. maxId'.

  5. def clone(): Graph[TLabel]

    Clone (make a deep copy) of 'this' digraph.

    Clone (make a deep copy) of 'this' digraph.

    Definition Classes
    Graph → AnyRef
  6. def getVerticesWithLabel(l: TLabel): Equals

    Return the set of vertices in 'this' digraph with label 'l'.

    Return the set of vertices in 'this' digraph with label 'l'.

    l

    the label to match

  7. var inverse: Boolean
  8. def isConnected: Boolean

    Determine whether 'this' digraph is (weakly) connected.

  9. val label: Array[TLabel]
  10. val labelMap: Map[TLabel, Set[Int]]

    The map from label to the set of vertices with the label

  11. def makeUndirected(): Graph[TLabel]

    Make this directed graph work like an undirected graph by making sure that for every edge 'u -> v', there is a 'v -> u' edge.

  12. def nEdges: Int

    Return the number of edges in 'this' digraph.

  13. def nSelfLoops: Int

    Determine the number of vertices in the digraph that have outgoing edges to themselves.

  14. val name: String
  15. val pa: Array[Set[Int]]

    The optional array of vertex inverse (parent) adjacency sets (incoming edges)

  16. def printG(clip: Boolean = true): Unit

    Print 'this' digraph in a deep sense with all the information.

    Print 'this' digraph in a deep sense with all the information.

    clip

    whether to clip out "Set(" and ")"

  17. def same(g: Graph[TLabel]): Boolean

    Determine whether 'this' digraph and digraph 'g' have the same vertices and edges.

    Determine whether 'this' digraph and digraph 'g' have the same vertices and edges. Note, this is more strict than graph isomorphism which allows vertices to be renumbered.

    g

    the other digraph

  18. def size: Int

    Return the number of vertices in 'this' digraph.

  19. def toGraphIm(name2: String = name): graphalytics.Graph

    Return the equivalent immutable Graph.

    Return the equivalent immutable Graph. Assumes the default TLabel of type String. For other types (e.g., Double use '_.toDouble' rather than '.toString' in the last line of this method.

    name2

    the name to give the new immutable Graph

    See also

    scalation.graphalytics.Graph

  20. def toLine(i: Int, clip: Boolean = true): String

    Convert the 'i'th row/line of 'this' digraph to a string.

    Convert the 'i'th row/line of 'this' digraph to a string.

    i

    the 'i'th row/line

    clip

    whether to clip out "Set(" and ")"

  21. def toString(): String

    Convert 'this' digraph to a string in a shallow sense.

    Convert 'this' digraph to a string in a shallow sense. Large arrays are not converted. Use 'print' to show all information.

    Definition Classes
    Graph → AnyRef → Any
  22. def union(g2: Graph[TLabel]): Graph[TLabel]

    Take the union 'this' digraph and 'g2'.

    Take the union 'this' digraph and 'g2'.

    g2

    the other digraph

  23. val vid: Array[Int]