com.nicta.scoobi.impl.plan.mscr

MscrsDefinition

trait MscrsDefinition extends Layering with Optimiser

This trait processes the computation graph created out of DLists and creates map-reduce jobs from it.

The algorithm consists in:

- building layers of independent nodes in the graph - finding the input nodes for the first layer - reaching "output" nodes from the input nodes - building output channels with those nodes - building input channels connecting the output to the input nodes - aggregating input and output channels as Mscr representing a full map reduce job - iterating on any processing node that is not part of a Mscr

Self Type
MscrsDefinition
Linear Supertypes
Optimiser, MemoRewriter, Rewriter, RewriterCore, Layering, ShowNode, CompNodes, GraphNodes, AttributionCore, Memoiser, AttributionCommon, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. MscrsDefinition
  2. Optimiser
  3. MemoRewriter
  4. Rewriter
  5. RewriterCore
  6. Layering
  7. ShowNode
  8. CompNodes
  9. GraphNodes
  10. AttributionCore
  11. Memoiser
  12. AttributionCommon
  13. AnyRef
  14. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. class CachedAttribute[T, U] extends Attribute[T, U] with org.kiama.attribution.AttributionCore.IdMemoised[T, Option[U]]

    Definition Classes
    AttributionCore
  2. class CachedDynamicAttribute[T, U] extends CachedAttribute[T, U]

    Definition Classes
    AttributionCore
  3. class CachedParamAttribute[A, T, U] extends (A) ⇒ Attribute[T, U] with org.kiama.attribution.AttributionCore.Memoised[ParamAttributeKey, Option[U]]

    Definition Classes
    AttributionCore
  4. class CircularAttribute[T, U] extends Attribute[T, U] with org.kiama.attribution.AttributionCore.IdMemoised[T, U]

    Definition Classes
    AttributionCore
  5. class ConstantAttribute[T, U] extends Attribute[T, U]

    Definition Classes
    AttributionCommon
  6. trait IdMemoised[T, U] extends MemoisedBase[T, U]

    Definition Classes
    Memoiser
  7. case class Layer(mscrs: Seq[Mscr] = Seq()) extends Product with Serializable

    A layer contains group by keys and floating nodes defining mscrs so that none of them have dependencies relationship

    A layer contains group by keys and floating nodes defining mscrs so that none of them have dependencies relationship

    Because of this property they can be executed in parallel

    Definition Classes
    Layering
  8. abstract class MemoStrategy extends Strategy with org.kiama.rewriting.MemoRewriter.IdMemoised[Any, Option[Any]]

    Definition Classes
    MemoRewriter
  9. trait Memoised[T, U] extends MemoisedBase[T, U]

    Definition Classes
    Memoiser
  10. trait MemoisedBase[T, U] extends AnyRef

    Definition Classes
    Memoiser
  11. type T = CompNode

    Definition Classes
    CompNodesGraphNodes

Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  4. object Layer extends Serializable

    Definition Classes
    Layering
  5. def addParallelDoForNonFilledSinks: Strategy

    add a map to output values to non-filled sink nodes if there are some

    add a map to output values to non-filled sink nodes if there are some

    Definition Classes
    Optimiser
  6. def all(name: String, s: ⇒ Strategy): Strategy

    Definition Classes
    RewriterCore
  7. macro def all(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  8. def allMap[CC[V, W] <: Map[V, W]](s: Strategy, t: CC[Any, Any])(implicit cbf: CanBuildFrom[CC[Any, Any], (Any, Any), CC[Any, Any]]): Option[CC[Any, Any]]

    Definition Classes
    RewriterCore
  9. def allProduct(s: Strategy, p: Product): Option[Any]

    Definition Classes
    RewriterCore
  10. def allRewritable(s: Strategy, r: Rewritable): Option[Any]

    Definition Classes
    RewriterCore
  11. lazy val allSinks: CachedAttribute[CompNode, Seq[Sink]]

    collect all the sinks in the computation graph

    collect all the sinks in the computation graph

    Attributes
    protected
    Definition Classes
    CompNodes
  12. def allStrategies: Strategy

    all the strategies to apply, in sequence

    all the strategies to apply, in sequence

    Definition Classes
    Optimiser
  13. def allTraversable[CC[U] <: Traversable[U]](s: Strategy, t: CC[Any])(implicit cbf: CanBuildFrom[CC[Any], Any, CC[Any]]): Option[CC[Any]]

    Definition Classes
    RewriterCore
  14. def allbu(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  15. macro def allbu(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  16. def alldownup2(name: String, s1: Strategy, s2: Strategy): Strategy

    Definition Classes
    Rewriter
  17. macro def alldownup2(s1: Strategy, s2: Strategy): Strategy

    Definition Classes
    RewriterCore
  18. def alltd(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  19. macro def alltd(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  20. def alltdfold(name: String, s1: Strategy, s2: Strategy): Strategy

    Definition Classes
    Rewriter
  21. macro def alltdfold(s1: Strategy, s2: Strategy): Strategy

    Definition Classes
    RewriterCore
  22. def and(name: String, s1: Strategy, s2: Strategy): Strategy

    Definition Classes
    Rewriter
  23. macro def and(s1: Strategy, s2: Strategy): Strategy

    Definition Classes
    RewriterCore
  24. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  25. def attempt(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  26. macro def attempt(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  27. def attr[T, U](name: String, f: (T) ⇒ U): CachedAttribute[T, U]

    Definition Classes
    AttributionCore
  28. macro def attr[T, U](f: (T) ⇒ U): CachedAttribute[T, U]

    Definition Classes
    AttributionCore
  29. def bottomup(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  30. macro def bottomup(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  31. def bottomupS(name: String, s: Strategy, stop: (⇒ Strategy) ⇒ Strategy): Strategy

    Definition Classes
    Rewriter
  32. macro def bottomupS(s: Strategy, stop: (⇒ Strategy) ⇒ Strategy): Strategy

    Definition Classes
    RewriterCore
  33. def breadthfirst(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  34. macro def breadthfirst(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  35. def build(name: String, t: ⇒ Any): Strategy

    Definition Classes
    RewriterCore
  36. macro def build(t: Any): Strategy

    Definition Classes
    RewriterCore
  37. def bypassOutputChannels(layer: Seq[CompNode], graph: Graph): Seq[OutputChannel]

    returns

    the bypass output channels for a given layer

    Attributes
    protected
  38. def child(name: String, i: Int, s: ⇒ Strategy): Strategy

    Definition Classes
    RewriterCore
  39. macro def child(i: Int, s: Strategy): Strategy

    Definition Classes
    RewriterCore
  40. def childAttr[T <: Attributable, U](name: String, f: (T) ⇒ (Attributable) ⇒ U): CachedAttribute[T, U]

    Definition Classes
    AttributionCore
  41. macro def childAttr[T <: Attributable, U](f: (T) ⇒ (Attributable) ⇒ U): CachedAttribute[T, U]

    Definition Classes
    AttributionCore
  42. def childProduct(s: Strategy, i: Int, p: Product): Option[Any]

    Definition Classes
    RewriterCore
  43. def childSeq[CC[U] <: Seq[U]](s: Strategy, i: Int, t: CC[Any])(implicit cbf: CanBuildFrom[CC[Any], Any, CC[Any]]): Option[CC[Any]]

    Definition Classes
    RewriterCore
  44. lazy val children: CachedAttribute[T, Seq[T]]

    compute the children of a node.

    compute the children of a node.

    This is similar to calling the initTree method on the node but this stores the information as an attribute instead of storing it as a tree. This is a way to avoid conflicts if we have 2 processes trying to initialise the same graph

    Definition Classes
    GraphNodes
  45. def circular[T, U](name: String, init: U)(f: (T) ⇒ U): CircularAttribute[T, U]

    Definition Classes
    AttributionCore
  46. macro def circular[T, U](init: U)(f: (T) ⇒ U): CircularAttribute[T, U]

    Definition Classes
    AttributionCore
  47. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  48. macro def collect[CC[X] <: Traversable[X], U](f: ==>[Any, U])(implicit cbf: CanBuildFrom[CC[Any], U, CC[U]]): (Any) ⇒ CC[U]

    Definition Classes
    RewriterCore
  49. def collectWithName[CC[X] <: Traversable[X], U](name: String, f: ==>[Any, U])(implicit cbf: CanBuildFrom[CC[Any], U, CC[U]]): (Any) ⇒ CC[U]

    Definition Classes
    Rewriter
  50. macro def collectall[CC[X] <: Traversable[X], U](f: ==>[Any, CC[U]])(implicit cbf: CanBuildFrom[CC[Any], U, CC[U]]): (Any) ⇒ CC[U]

    Definition Classes
    RewriterCore
  51. def collectallWithName[CC[X] <: Traversable[X], U](name: String, f: ==>[Any, CC[U]])(implicit cbf: CanBuildFrom[CC[Any], U, CC[U]]): (Any) ⇒ CC[U]

    Definition Classes
    Rewriter
  52. def collectl[U](f: ==>[Any, U]): (Any) ⇒ List[U]

    Definition Classes
    Rewriter
  53. def collects[U](f: ==>[Any, U]): (Any) ⇒ Set[U]

    Definition Classes
    Rewriter
  54. def combineToParDo: Strategy

    Combine nodes which are not the output of a GroupByKey must be transformed to a ParallelDo

    Combine nodes which are not the output of a GroupByKey must be transformed to a ParallelDo

    Definition Classes
    Optimiser
  55. def congruence(name: String, ss: Strategy*): Strategy

    Definition Classes
    RewriterCore
  56. macro def congruence(ss: Strategy*): Strategy

    Definition Classes
    RewriterCore
  57. def congruenceProduct(p: Product, ss: Strategy*): Option[Any]

    Definition Classes
    RewriterCore
  58. def constant[T, U](name: String, u: ⇒ U): Attribute[T, U]

    Definition Classes
    AttributionCommon
  59. macro def constant[T, U](u: ⇒ U): Attribute[T, U]

    Definition Classes
    AttributionCommon
  60. def count(name: String, f: ==>[Any, Int]): (Any) ⇒ Int

    Definition Classes
    Rewriter
  61. macro def count(f: ==>[Any, Int]): (Any) ⇒ Int

    Definition Classes
    RewriterCore
  62. def createInputOutputLayer(inputNodes: Seq[CompNode], visited: Seq[CompNode]): Seq[CompNode]

    get all the non-visited nodes going from an input nodes to an output

    get all the non-visited nodes going from an input nodes to an output

    Attributes
    protected
  63. def createMscr(inputOutputLayer: Seq[CompNode], graph: Graph): Mscr

    find the input and output channels on the layer and create a Mscr from those channels

    find the input and output channels on the layer and create a Mscr from those channels

    Attributes
    protected
  64. def createMscr(inputNodes: Seq[CompNode], visited: Seq[CompNode], graph: Graph): Mscr

    create a Mscr from input nodes, making sure not to use already visited nodes

    create a Mscr from input nodes, making sure not to use already visited nodes

    Attributes
    protected
  65. def createMscrs(startNodes: Seq[CompNode], graph: Graph, visited: Seq[CompNode] = Vector()): Seq[Mscr]

    From start nodes in the graph and the list of already visited nodes, create new MapReduce jobs

  66. def createMscrs(start: CompNode): Seq[Mscr]

    create MapReduce jobs from the computation graph defined by the start node where each map reduce job is independent for the next map reduce jobs in the list

  67. def debug(name: String, msg: String, emitter: Emitter): Strategy

    Definition Classes
    RewriterCore
  68. macro def debug(msg: String, emitter: Emitter): Strategy

    Definition Classes
    RewriterCore
  69. lazy val descendents: CachedAttribute[T, Seq[T]]

    compute all the descendents of a node They are all the recursive children reachable from this node

    compute all the descendents of a node They are all the recursive children reachable from this node

    Definition Classes
    GraphNodes
  70. lazy val descendentsUntil: CachedParamAttribute[(T) ⇒ Boolean, T, Seq[T]]

    Definition Classes
    GraphNodes
  71. def doloop(name: String, s: Strategy, r: Strategy): Strategy

    Definition Classes
    Rewriter
  72. macro def doloop(s: Strategy, r: Strategy): Strategy

    Definition Classes
    RewriterCore
  73. def dontstop(s: ⇒ Strategy): Strategy

    Definition Classes
    Rewriter
  74. def downup(name: String, s1: Strategy, s2: Strategy): Strategy

    Definition Classes
    Rewriter
  75. def downup(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  76. macro def downup(s1: Strategy, s2: Strategy): Strategy

    Definition Classes
    RewriterCore
  77. macro def downup(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  78. def downupS(name: String, s1: Strategy, s2: Strategy, stop: (⇒ Strategy) ⇒ Strategy): Strategy

    Definition Classes
    Rewriter
  79. def downupS(name: String, s: Strategy, stop: (⇒ Strategy) ⇒ Strategy): Strategy

    Definition Classes
    Rewriter
  80. macro def downupS(s1: Strategy, s2: Strategy, stop: (⇒ Strategy) ⇒ Strategy): Strategy

    Definition Classes
    RewriterCore
  81. macro def downupS(s: Strategy, stop: (⇒ Strategy) ⇒ Strategy): Strategy

    Definition Classes
    RewriterCore
  82. def dup[T <: Product](t: T, children: Seq[AnyRef]): T

    Definition Classes
    RewriterCore
  83. lazy val duplicate: (CompNode) ⇒ CompNode

    duplicate the whole graph by copying all nodes

    duplicate the whole graph by copying all nodes

    Definition Classes
    Optimiser
  84. def dynAttr[T, U](name: String, f: (T) ⇒ U): CachedDynamicAttribute[T, U]

    Definition Classes
    AttributionCore
  85. macro def dynAttr[T, U](f: (T) ⇒ U): CachedDynamicAttribute[T, U]

    Definition Classes
    AttributionCore
  86. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  87. val eq: Strategy

    Definition Classes
    Rewriter
  88. val equal: Strategy

    Definition Classes
    Rewriter
  89. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  90. def everything[T](name: String, v: T)(f: (T, T) ⇒ T)(g: ==>[Any, T])(t: Any): T

    Definition Classes
    Rewriter
  91. macro def everything[T](v: T)(f: (T, T) ⇒ T)(g: ==>[Any, T])(t: Any): T

    Definition Classes
    RewriterCore
  92. def everywhere(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  93. macro def everywhere(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  94. def everywherebu(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  95. macro def everywherebu(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  96. def everywheretd(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  97. macro def everywheretd(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  98. val fail: Strategy

    Definition Classes
    RewriterCore
  99. lazy val filledSink: CachedAttribute[String, String]

    this attribute stores the fact that a Sink has received data

    this attribute stores the fact that a Sink has received data

    Attributes
    protected
    Definition Classes
    CompNodes
  100. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  101. def floatingInputChannels(layer: Seq[CompNode], graph: Graph): Seq[FloatingInputChannel]

    Attributes
    protected
  102. def gbkInputChannels(layer: Seq[CompNode], graph: Graph): Seq[GbkInputChannel]

    Attributes
    protected
  103. def gbkOutputChannel(gbk: GroupByKey, graph: Graph): GbkOutputChannel

    returns

    a gbk output channel based on the nodes which are following the gbk

    Attributes
    protected
  104. def gbkOutputChannels(layer: Seq[CompNode], graph: Graph): Seq[OutputChannel]

    Attributes
    protected
  105. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  106. def groupInputChannelsByOutputTags(layer: Seq[CompNode], graph: Graph): Seq[Seq[InputChannel]]

    returns

    groups of input channels having at least one output tag in common

    Attributes
    protected
  107. lazy val hasBeenFilled: (Sink) ⇒ Boolean

    returns

    true if a given Sink has already received data

    Attributes
    protected
    Definition Classes
    CompNodes
  108. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  109. val id: Strategy

    Definition Classes
    RewriterCore
  110. def initAttributable[S <: T](s: S): S

    initialise the parent/child relationship recursively from node s

    initialise the parent/child relationship recursively from node s

    Definition Classes
    GraphNodes
  111. def initTree[T <: Attributable](t: T): Unit

    Definition Classes
    AttributionCommon
  112. def innermost(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  113. macro def innermost(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  114. def innermost2(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  115. macro def innermost2(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  116. def inputChannels(layer: Seq[CompNode], graph: Graph): Seq[InputChannel]

    Attributes
    protected
  117. def inputNodes(nodes: Seq[ProcessNode]): Seq[CompNode]

    returns

    Process or Load nodes which are children of the nodes parameters but not included in the group these "input nodes" don't include Return nodes or Op nodes because those inputs are retrieved via environments

    Attributes
    protected
  118. lazy val inputs: CachedAttribute[CompNode, Seq[CompNode]]

    compute the inputs of a given node For a ParallelDo node this does not consider its environment

    compute the inputs of a given node For a ParallelDo node this does not consider its environment

    Definition Classes
    CompNodes
  119. implicit def internalToDynamicAttribute[T, U](f: (T) ⇒ U): CachedDynamicAttribute[T, U]

    Definition Classes
    AttributionCore
  120. def ior(name: String, s1: Strategy, s2: Strategy): Strategy

    Definition Classes
    Rewriter
  121. macro def ior(s1: Strategy, s2: Strategy): Strategy

    Definition Classes
    RewriterCore
  122. lazy val isAReducer: (CompNode) ⇒ Boolean

    Attributes
    protected
  123. def isAnInputNode(nodes: Seq[CompNode]): (CompNode) ⇒ Boolean

    returns

    true if a node is an input node for a given layer

    Attributes
    protected
  124. def isAnOutputNode: (CompNode) ⇒ Boolean

    returns

    true if a node is a candidate for outputing values

    Attributes
    protected
  125. def isCheckpoint: (CompNode) ⇒ Boolean

    Attributes
    protected
  126. lazy val isCyclic: CachedAttribute[T, Boolean]

    return true if a CompNode has a cycle in its graph, this will be detected by Kiama throwing an exception when fetching the descendents of a node

    return true if a CompNode has a cycle in its graph, this will be detected by Kiama throwing an exception when fetching the descendents of a node

    Definition Classes
    GraphNodes
  127. def isDefinedAtArg[T](anyf: ==>[Any, T], t: Any): Boolean

    Definition Classes
    RewriterCore
  128. def isEndNode: (CompNode) ⇒ Boolean

    node at the end of the graph

    node at the end of the graph

    Attributes
    protected
  129. def isGbkOutput: (CompNode) ⇒ Boolean

    Attributes
    protected
  130. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  131. def isMaterialised: (CompNode) ⇒ Boolean

    Attributes
    protected
  132. lazy val isReducer: (ParallelDo) ⇒ Boolean

    Attributes
    protected
  133. def isReducingNode: (CompNode) ⇒ Boolean

    a node is said to be reducing if it is in a "reducing chain of nodes" after a gbk

    a node is said to be reducing if it is in a "reducing chain of nodes" after a gbk

    • parallelDo(combine(gbk)) // parallelDo and combine are reducing
    • combine(gbk) // combine is reducing
    • parallelDo(gbk) // parallelDo is reducing
    returns

    Attributes
    protected
  134. lazy val isUsedAtMostOnce: CachedAttribute[T, Boolean]

    true if a node is used at most once

    true if a node is used at most once

    Definition Classes
    GraphNodes
  135. val isinnernode: Strategy

    Definition Classes
    Rewriter
  136. val isleaf: Strategy

    Definition Classes
    Rewriter
  137. val ispropersubterm: Strategy

    Definition Classes
    Rewriter
  138. val ispropersuperterm: Strategy

    Definition Classes
    Rewriter
  139. val issubterm: Strategy

    Definition Classes
    Rewriter
  140. val issuperterm: Strategy

    Definition Classes
    Rewriter
  141. def lastly(name: String, s: Strategy, f: Strategy): Strategy

    Definition Classes
    Rewriter
  142. macro def lastly(s: Strategy, f: Strategy): Strategy

    Definition Classes
    RewriterCore
  143. def layersOf(nodes: Seq[T]): Seq[Seq[T]]

    Specialisation of the layersOf function taking a selection function in the case where all nodes are selected

    Specialisation of the layersOf function taking a selection function in the case where all nodes are selected

    Definition Classes
    Layering
  144. def layersOf(nodes: Seq[T], select: (T) ⇒ Boolean = (n: T) => true): Seq[Seq[T]]

    Definition Classes
    Layering
  145. def leaves(name: String, s: Strategy, isleaf: Strategy, skip: (Strategy) ⇒ Strategy): Strategy

    Definition Classes
    Rewriter
  146. def leaves(name: String, s: Strategy, isleaf: Strategy): Strategy

    Definition Classes
    Rewriter
  147. macro def leaves(s: Strategy, isleaf: Strategy, skip: (Strategy) ⇒ Strategy): Strategy

    Definition Classes
    RewriterCore
  148. macro def leaves(s: Strategy, isleaf: Strategy): Strategy

    Definition Classes
    RewriterCore
  149. def log(name: String, s: ⇒ Strategy, msg: String, emitter: Emitter): Strategy

    Definition Classes
    RewriterCore
  150. macro def log(s: Strategy, msg: String, emitter: Emitter): Strategy

    Definition Classes
    RewriterCore
  151. def logfail[T](name: String, s: ⇒ Strategy, msg: String, emitter: Emitter): Strategy

    Definition Classes
    RewriterCore
  152. macro def logfail[T](s: Strategy, msg: String, emitter: Emitter): Strategy

    Definition Classes
    RewriterCore
  153. lazy val longestPathSizeTo: (Seq[CompNode]) ⇒ (CompNode) ⇒ Int

    Definition Classes
    Layering
  154. lazy val longestPathSizeToNode: (CompNode) ⇒ (CompNode) ⇒ Int

    Definition Classes
    Layering
  155. lazy val longestPathToNode: (CompNode) ⇒ (CompNode) ⇒ Seq[CompNode]

    Definition Classes
    Layering
  156. def loop(name: String, c: Strategy, s: Strategy): Strategy

    Definition Classes
    Rewriter
  157. macro def loop(r: Strategy, s: Strategy): Strategy

    Definition Classes
    RewriterCore
  158. def loopiter(name: String, s: (Int) ⇒ Strategy, low: Int, high: Int): Strategy

    Definition Classes
    Rewriter
  159. def loopiter(name: String, i: Strategy, r: Strategy, s: Strategy): Strategy

    Definition Classes
    Rewriter
  160. macro def loopiter(s: (Int) ⇒ Strategy, low: Int, high: Int): Strategy

    Definition Classes
    RewriterCore
  161. macro def loopiter(i: Strategy, r: Strategy, s: Strategy): Strategy

    Definition Classes
    RewriterCore
  162. def loopnot(name: String, r: Strategy, s: Strategy): Strategy

    Definition Classes
    Rewriter
  163. macro def loopnot(r: Strategy, s: Strategy): Strategy

    Definition Classes
    RewriterCore
  164. def makechild(c: Any): AnyRef

    Attributes
    protected
    Definition Classes
    RewriterCore
  165. def manybu(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  166. macro def manybu(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  167. def manytd(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  168. macro def manytd(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  169. def map(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  170. macro def map(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  171. def markSinkAsFilled: (Sink) ⇒ String

    mark a sink as filled so it doesn't have to be recomputed

    mark a sink as filled so it doesn't have to be recomputed

    Attributes
    protected
    Definition Classes
    CompNodes
  172. def memo(name: String, s: ⇒ Strategy): Strategy

    Definition Classes
    MemoRewriter → RewriterCore
  173. macro def memo(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  174. def mkStrategy(name: String, f: (Any) ⇒ Option[Any]): Strategy

    Definition Classes
    MemoRewriter → RewriterCore
  175. def mustBeRead(pd: ParallelDo): Boolean

    returns

    true if this parallelDo must be read ==> can't be fused

    Definition Classes
    Optimiser
  176. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  177. lazy val nodeHasBeenFilled: (CompNode) ⇒ Boolean

    returns

    true if a process node has been filled

    Attributes
    protected
    Definition Classes
    CompNodes
  178. def not(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  179. macro def not(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  180. final def notify(): Unit

    Definition Classes
    AnyRef
  181. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  182. def oncebu(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  183. macro def oncebu(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  184. def oncetd(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  185. macro def oncetd(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  186. def one(name: String, s: ⇒ Strategy): Strategy

    Definition Classes
    RewriterCore
  187. macro def one(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  188. def oneMap[CC[V, W] <: Map[V, W]](s: Strategy, t: CC[Any, Any])(implicit cbf: CanBuildFrom[CC[Any, Any], (Any, Any), CC[Any, Any]]): Option[CC[Any, Any]]

    Definition Classes
    RewriterCore
  189. def oneProduct(s: Strategy, p: Product): Option[Any]

    Definition Classes
    RewriterCore
  190. def oneRewritable(s: Strategy, r: Rewritable): Option[Any]

    Definition Classes
    RewriterCore
  191. def oneTraversable[CC[U] <: Traversable[U]](s: Strategy, t: CC[Any])(implicit cbf: CanBuildFrom[CC[Any], Any, CC[Any]]): Option[CC[Any]]

    Definition Classes
    RewriterCore
  192. def optimise(outputs: Seq[CompNode]): Seq[CompNode]

    Optimise a set of CompNodes, starting from the set of outputs

    Optimise a set of CompNodes, starting from the set of outputs

    Definition Classes
    Optimiser
  193. def option(name: String, o: ⇒ Option[Any]): Strategy

    Definition Classes
    RewriterCore
  194. macro def option(o: Option[Any]): Strategy

    Definition Classes
    RewriterCore
  195. def or(name: String, s1: Strategy, s2: Strategy): Strategy

    Definition Classes
    Rewriter
  196. macro def or(s1: Strategy, s2: Strategy): Strategy

    Definition Classes
    RewriterCore
  197. def outermost(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  198. macro def outermost(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  199. def outputChannels(layer: Seq[CompNode], graph: Graph): Seq[OutputChannel]

    returns

    all output channels for a given layer

    Attributes
    protected
  200. def parDoFuse: Strategy

    Nested ParallelDos must be fused but only if pd1 is not used anywhere else.

    Nested ParallelDos must be fused but only if pd1 is not used anywhere else.

    We use somebu to fuse the nodes "bottom-up" starting from all leaves of the tree at the same time

    pd1 @ ParallelDo | pd2 @ ParallelDo

    > pd3 @ ParallelDo

    This rule is repeated until nothing can be fused anymore

    Definition Classes
    Optimiser
  201. def parDoFuseRule: Strategy

    Definition Classes
    Optimiser
  202. def parDoFuseSource: Strategy

    Definition Classes
    Optimiser
  203. def parDoFuseSourceRule: Strategy

    Definition Classes
    Optimiser
  204. def para[T](f: (Any, Seq[T]) ⇒ T): (Any) ⇒ T

    Definition Classes
    RewriterCore
  205. def paramAttr[V, T, U](name: String, f: (V) ⇒ (T) ⇒ U): CachedParamAttribute[V, T, U]

    Definition Classes
    AttributionCore
  206. macro def paramAttr[V, T, U](f: (V) ⇒ (T) ⇒ U): CachedParamAttribute[V, T, U]

    Definition Classes
    AttributionCore
  207. lazy val parent: CachedAttribute[T, Option[T]]

    compute the parent of a node.

    compute the parent of a node. This relationship is actually maintained while getting the children of a node if the parent node has not been set while recursing for children, then it is None

    Definition Classes
    GraphNodes
  208. lazy val parents: CachedAttribute[T, Seq[T]]

    compute the parents of a node, that is all the chain of parents from this node up to the root of the graph

    compute the parents of a node, that is all the chain of parents from this node up to the root of the graph

    Definition Classes
    GraphNodes
  209. lazy val pathsToNode: (CompNode) ⇒ (CompNode) ⇒ Seq[Seq[CompNode]]

    Definition Classes
    Layering
  210. def pretty(node: CompNode): (prettyPrinter)#Layout

    returns

    a nested text representation of the nodes graph

    Definition Classes
    ShowNode
  211. def prettyGraph: (CompNode) ⇒ (prettyPrinter)#Layout

    returns

    a nested text representation of the nodes graph + graph if it's not too big

    Definition Classes
    ShowNode
  212. val prettyPrinter: PrettyPrinter

    Definition Classes
    ShowNode
  213. def processLayers(startNodes: Seq[CompNode], visited: Seq[CompNode]): Seq[Seq[ProcessNode]]

    returns

    non-empty layers of processing nodes

    Attributes
    protected
  214. macro def query[T](f: ==>[T, Unit]): Strategy

    Definition Classes
    RewriterCore
  215. def queryWithName[T](name: String, f: ==>[T, Unit]): Strategy

    Definition Classes
    RewriterCore
  216. def queryf(name: String, f: (Any) ⇒ Unit): Strategy

    Definition Classes
    RewriterCore
  217. macro def queryf(f: (Any) ⇒ Unit): Strategy

    Definition Classes
    RewriterCore
  218. def reduce(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  219. macro def reduce(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  220. def reinit[S <: T](s: S): S

    reinitialise all the attributes related to a node, starting from all the parent/children relationships

    reinitialise all the attributes related to a node, starting from all the parent/children relationships

    reset the attributes, then recreate the parent/children relationships recursively

    Definition Classes
    GraphNodes
  221. def repeat(name: String, s: Strategy, n: Int): Strategy

    Definition Classes
    Rewriter
  222. def repeat(name: String, s: Strategy, r: Strategy): Strategy

    Definition Classes
    Rewriter
  223. def repeat(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  224. macro def repeat(s: Strategy, n: Int): Strategy

    Definition Classes
    RewriterCore
  225. macro def repeat(s: Strategy, r: Strategy): Strategy

    Definition Classes
    RewriterCore
  226. macro def repeat(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  227. def repeat1(name: String, s: Strategy, r: Strategy): Strategy

    Definition Classes
    Rewriter
  228. def repeat1(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  229. macro def repeat1(s: Strategy, r: Strategy): Strategy

    Definition Classes
    RewriterCore
  230. macro def repeat1(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  231. def repeatTraversal(traversal: (String, Strategy) ⇒ Strategy, s: Strategy): Strategy

    apply a traversal strategy but make sure that:

    apply a traversal strategy but make sure that:

    - after each pass the tree is reset in terms of attributable relationships and uses - the strategy to execute is memoised, i.e. if a node has already been processed its result must be reused this ensures that rewritten shared nodes are not duplicated

    Definition Classes
    Optimiser
  232. def repeatuntil(name: String, s: Strategy, r: Strategy): Strategy

    Definition Classes
    Rewriter
  233. macro def repeatuntil(s: Strategy, r: Strategy): Strategy

    Definition Classes
    RewriterCore
  234. def resetMemo(): Unit

    Definition Classes
    Memoiser
  235. def resetUses: Unit

    reinit usages

    reinit usages

    Attributes
    protected
    Definition Classes
    GraphNodes
  236. def restore(name: String, s: Strategy, rest: Strategy): Strategy

    Definition Classes
    Rewriter
  237. macro def restore(s: Strategy, rest: Strategy): Strategy

    Definition Classes
    RewriterCore
  238. def restorealways(name: String, s: Strategy, rest: Strategy): Strategy

    Definition Classes
    Rewriter
  239. macro def restorealways(s: Strategy, rest: Strategy): Strategy

    Definition Classes
    RewriterCore
  240. def rewrite[T](s: Strategy)(t: T): T

    Definition Classes
    Rewriter
  241. lazy val root: CachedAttribute[T, T]

    the root of the graph, computed from a given node

    the root of the graph, computed from a given node

    Definition Classes
    GraphNodes
  242. macro def rule[T](f: ==>[T, T]): Strategy

    Definition Classes
    RewriterCore
  243. def ruleWithName[T](name: String, f: ==>[T, T]): Strategy

    Definition Classes
    RewriterCore
  244. def rulef(name: String, f: (Any) ⇒ Any): Strategy

    Definition Classes
    RewriterCore
  245. macro def rulef(f: (Any) ⇒ Any): Strategy

    Definition Classes
    RewriterCore
  246. macro def rulefs[T](f: ==>[T, Strategy]): Strategy

    Definition Classes
    RewriterCore
  247. def rulefsWithName[T](name: String, f: ==>[T, Strategy]): Strategy

    Definition Classes
    RewriterCore
  248. lazy val shortestPathToNode: (CompNode) ⇒ (CompNode) ⇒ Seq[CompNode]

    Definition Classes
    Layering
  249. implicit lazy val showCompNode: Show[CompNode]

    Show instance for a CompNode

    Show instance for a CompNode

    Definition Classes
    ShowNode
  250. implicit def showCompNodeInstance[T <: CompNode]: Show[T]

    Show is not covariant so it is necessary to add this implicit to prove that we can show subclasses of CompNode

    Show is not covariant so it is necessary to add this implicit to prove that we can show subclasses of CompNode

    Definition Classes
    ShowNode
  251. lazy val showStructure: (CompNode) ⇒ String

    show the structure without the ids or type annotations

    show the structure without the ids or type annotations

    Definition Classes
    ShowNode
  252. def some(name: String, s: ⇒ Strategy): Strategy

    Definition Classes
    RewriterCore
  253. macro def some(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  254. def someMap[CC[V, W] <: Map[V, W]](s: Strategy, t: CC[Any, Any])(implicit cbf: CanBuildFrom[CC[Any, Any], (Any, Any), CC[Any, Any]]): Option[CC[Any, Any]]

    Definition Classes
    RewriterCore
  255. def someProduct(s: Strategy, p: Product): Option[Any]

    Definition Classes
    RewriterCore
  256. def someRewritable(s: Strategy, r: Rewritable): Option[Any]

    Definition Classes
    RewriterCore
  257. def someTraversable[CC[U] <: Traversable[U]](s: Strategy, t: CC[Any])(implicit cbf: CanBuildFrom[CC[Any], Any, CC[Any]]): Option[CC[Any]]

    Definition Classes
    RewriterCore
  258. def somebu(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  259. macro def somebu(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  260. def somedownup(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  261. macro def somedownup(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  262. def sometd(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  263. macro def sometd(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  264. def sourcesCanBeFused(pdNodes: Seq[CompNode]): Boolean

    Definition Classes
    Optimiser
  265. macro def strategy[T](f: ==>[T, Option[T]]): Strategy

    Definition Classes
    RewriterCore
  266. def strategyWithName[T](name: String, f: ==>[T, Option[T]]): Strategy

    Definition Classes
    RewriterCore
  267. def strategyf(name: String, f: (Any) ⇒ Option[Any]): Strategy

    Definition Classes
    RewriterCore
  268. macro def strategyf(f: (Any) ⇒ Option[Any]): Strategy

    Definition Classes
    RewriterCore
  269. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  270. macro def term[T](t: T): Strategy

    Definition Classes
    RewriterCore
  271. def termWithName[T](name: String, t: T): Strategy

    Definition Classes
    RewriterCore
  272. def test(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  273. macro def test(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  274. def toString(): String

    Definition Classes
    AnyRef → Any
  275. def topdown(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  276. macro def topdown(s: Strategy): Strategy

    Definition Classes
    RewriterCore
  277. def topdownS(name: String, s: Strategy, stop: (⇒ Strategy) ⇒ Strategy): Strategy

    Definition Classes
    Rewriter
  278. macro def topdownS(s: Strategy, stop: (⇒ Strategy) ⇒ Strategy): Strategy

    Definition Classes
    RewriterCore
  279. lazy val transitiveUses: CachedAttribute[T, Set[T]]

    compute all the indirect uses of a given node, that is all the nodes which have this node as a descendent

    compute all the indirect uses of a given node, that is all the nodes which have this node as a descendent

    Definition Classes
    GraphNodes
  280. def traverseOncebu(s: Strategy): Strategy

    Definition Classes
    Optimiser
  281. def traverseSomebu(s: Strategy): Strategy

    Definition Classes
    Optimiser
  282. def traverseSometd(s: Strategy): Strategy

    Definition Classes
    Optimiser
  283. def tree[T <: Attributable, U <: Attributable](name: String, f: (T) ⇒ U): CachedAttribute[T, U]

    Definition Classes
    AttributionCore
  284. macro def tree[T <: Attributable, U <: Attributable](f: (T) ⇒ U): CachedAttribute[T, U]

    Definition Classes
    AttributionCore
  285. def truncate(node: CompNode)(condition: (Any) ⇒ Boolean): CompNode

    remove nodes from the tree based on a predicate

    remove nodes from the tree based on a predicate

    Definition Classes
    Optimiser
  286. def truncateAlreadyExecutedNodes(node: CompNode)(implicit sc: ScoobiConfiguration): CompNode

    Definition Classes
    Optimiser
  287. lazy val uses: CachedAttribute[T, Set[T]]

    the nodes which have this node as a direct child

    the nodes which have this node as a direct child

    for efficiency, this uses a table of all the nodes using a given one, computed from the root

    Definition Classes
    GraphNodes
  288. def usesAsEnvironment: CachedAttribute[CompNode, Seq[ParallelDo]]

    compute all the nodes which use a given node as an environment

    compute all the nodes which use a given node as an environment

    Definition Classes
    CompNodes
  289. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  290. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  291. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  292. def where(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  293. macro def where(s: Strategy): Strategy

    Definition Classes
    RewriterCore

Inherited from Optimiser

Inherited from MemoRewriter

Inherited from Rewriter

Inherited from RewriterCore

Inherited from Layering

Inherited from ShowNode

Inherited from CompNodes

Inherited from GraphNodes

Inherited from AttributionCore

Inherited from Memoiser

Inherited from AttributionCommon

Inherited from AnyRef

Inherited from Any

Ungrouped