class ColorDAG extends AnyRef
The ColorDAG
class provides a data structure Directed Acyclic Graphs 'DAG's with colored
nodes. The ColorDAG
consists of source nodes (in-degree is 0), sink nodes (out-degree is 0)
and internal nodes. The edges connecting nodes must have color compatibility.
The ColorDAG
is divided into 'k' stages: e.g., sources (stage 0), internals (stages 1..k-2)
and sinks (stage k-1).
- Alphabetic
- By Inheritance
- ColorDAG
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new ColorDAG(dimensions: Array[Int], maxIn: Int, maxOut: Int, minColors: Int, maxColors: Int, colorDepth: Int, seed: Int = 0)
- dimensions
the dimension (number of nodes) for each stage
- maxIn
the maximum number of input colors for an internal node
- maxOut
the maximum number of output colors for an internal node
- minColors
the minimum number of child colors allowed in the color hierarchy
- maxColors
the maximum number of child colors allowed in the color hierarchy
- colorDepth
the maximum depth of the color hierarchy tree
- seed
the seed for the various random number generators
Type Members
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def checkIO(): Int
For each node in the DAG, check that (1) all of its "inputs" are color/type compatible with an output from a node from the previous stage, and (2) at least one of its "outputs" is color/type compatible with an input to a node from the next stage.
For each node in the DAG, check that (1) all of its "inputs" are color/type compatible with an output from a node from the previous stage, and (2) at least one of its "outputs" is color/type compatible with an input to a node from the next stage. Nodes that fails to have all of their inputs satisfied (check number 1) are thrown out before check if they have at least one useful output. Nodes failing check number 2 will also be thrown out.
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- val colors: Tree
- def connect(): Unit
Connect all the nodes that are going to be "used" in the DAG by creating an edge between two nodes in adjacent stages that are color/type compatible.
Connect all the nodes that are going to be "used" in the DAG by creating an edge between two nodes in adjacent stages that are color/type compatible. Also add these edges to the DAG's list of edges.
- val edges: ListBuffer[Edge]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def genNodes(): Unit
Generate all the unique nodes that will exist in the DAG and assign colors/types to their inputs and outputs.
- def genUniqueColor(ioColors: Array[TreeNode]): TreeNode
Generate and return a unique color for either a node's inputs or outputs.
Generate and return a unique color for either a node's inputs or outputs.
- ioColors
the array of existing colors
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val nColors: Int
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- val nodes: Array[Array[DagNode]]
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def popInOut(): Unit
Populate the in and out
ListBuffers
for each node based on the DAG's list of edges. - def printColorTree(): Unit
Print the
ColorTree
used by the DAG for node and edge colors/type and animate its construction. - def printColors(): Unit
Print the in (for inputs) and out (for outputs) colors for each node in the DAG.
- def printDAG(): Unit
Print the nodes and edges in the color DAG.
- def printInOut(): Unit
Print the in (for inputs) and out (for outputs) node list buffers for each used node in the DAG.
- val randCol: Randi
- val randIn: Randi
- val randOut: Randi
- val stages: Int
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated