com.nicta.scoobi.impl.plan.comp

Optimiser

trait Optimiser extends CompNodes with MemoRewriter

Optimiser for the CompNode graph

It uses the [Kiama](http://code.google.com/p/kiama) rewriting library by defining Strategies for traversing the graph and rules to rewrite it. Usually the rules are applied in a top-down fashion at every node where they can be applied (using the everywhere strategy).

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

Type Members

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

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

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

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

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

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

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

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

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

    Definition Classes
    Memoiser
  10. type T = CompNode

    Definition Classes
    CompNodesGraphNodes

Value Members

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

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

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

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

    Definition Classes
    Any
  6. def addParallelDoForNonFilledSinks: Strategy

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

  7. def all(name: String, s: ⇒ Strategy): Strategy

    Definition Classes
    RewriterCore
  8. def all(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  9. 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
  10. def allProduct(s: Strategy, p: Product): Option[Any]

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

    Definition Classes
    RewriterCore
  12. 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
  13. def allStrategies: Strategy

    all the strategies to apply, in sequence

  14. def allTraversable[CC[_] <: Traversable[Any]](s: Strategy, t: CC[Any])(implicit cbf: CanBuildFrom[CC[Any], Any, CC[Any]]): Option[CC[Any]]

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

    Definition Classes
    Rewriter
  16. def allbu(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  17. def alldownup2(name: String, s1: Strategy, s2: Strategy): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  19. def alltd(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  20. def alltd(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  21. def alltdfold(name: String, s1: Strategy, s2: Strategy): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  23. def and(name: String, s1: Strategy, s2: Strategy): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  25. final def asInstanceOf[T0]: T0

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

    Definition Classes
    Rewriter
  27. def attempt(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  28. def attr[T <: AnyRef, U](name: String, f: (T) ⇒ U): CachedAttribute[T, U]

    Definition Classes
    AttributionCore
  29. def attr[T <: AnyRef, U](f: (T) ⇒ U): CachedAttribute[T, U]

    Definition Classes
    AttributionCore
    Annotations
    @macroImpl( ... )
  30. def bottomup(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  31. def bottomup(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  32. def bottomupS(name: String, s: Strategy, stop: (⇒ Strategy) ⇒ Strategy): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  34. def breadthfirst(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  35. def breadthfirst(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  36. def build(name: String, t: ⇒ Any): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  38. def child(name: String, i: Int, s: ⇒ Strategy): Strategy

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

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

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

    Definition Classes
    AttributionCore
    Annotations
    @macroImpl( ... )
  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 <: AnyRef, U](name: String, init: U)(f: (T) ⇒ U): CircularAttribute[T, U]

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

    Definition Classes
    AttributionCore
    Annotations
    @macroImpl( ... )
  47. def clone(): AnyRef

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

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

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

    Definition Classes
    Rewriter
  51. def combineToParDo: Strategy

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

  52. def congruence(name: String, ss: Strategy*): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  54. def congruenceProduct(p: Product, ss: Strategy*): Option[Any]

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

    Definition Classes
    AttributionCommon
  56. def constant[T <: AnyRef, U](u: ⇒ U): Attribute[T, U]

    Definition Classes
    AttributionCommon
    Annotations
    @macroImpl( ... )
  57. val constrcache: WeakHashMap[Class[_], Constructor[_]]

    Attributes
    protected
    Definition Classes
    RewriterCore
  58. def count(f: ==>[Any, Int]): (Any) ⇒ Int

    Definition Classes
    Rewriter
  59. def debug(name: String, msg: String, emitter: Emitter): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  61. 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
  62. lazy val descendentsUntil: CachedParamAttribute[(T) ⇒ Boolean, T, Seq[T]]

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

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  65. def dontstop(s: ⇒ Strategy): Strategy

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

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

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  69. def downup(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  70. def downupS(name: String, s1: Strategy, s2: Strategy, stop: (⇒ Strategy) ⇒ Strategy): Strategy

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

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  73. def downupS(s: Strategy, stop: (⇒ Strategy) ⇒ Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  74. def dup[T <: Product](t: T, children: Seq[AnyRef]): T

    Attributes
    protected
    Definition Classes
    RewriterCore
  75. lazy val duplicate: (CompNode) ⇒ CompNode

    duplicate the whole graph by copying all nodes

  76. def dynAttr[T <: AnyRef, U](name: String, f: (T) ⇒ U): CachedDynamicAttribute[T, U]

    Definition Classes
    AttributionCore
  77. def dynAttr[T <: AnyRef, U](f: (T) ⇒ U): CachedDynamicAttribute[T, U]

    Definition Classes
    AttributionCore
    Annotations
    @macroImpl( ... )
  78. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  79. val eq: Strategy

    Definition Classes
    Rewriter
  80. val equal: Strategy

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

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

    Definition Classes
    Rewriter
  83. def everywhere(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  84. def everywhere(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  85. def everywherebu(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  86. def everywherebu(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  87. def everywheretd(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  88. def everywheretd(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  89. val fail: Strategy

    Definition Classes
    RewriterCore
  90. 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
  91. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  92. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  93. lazy val hasBeenFilled: (Sink) ⇒ Boolean

    returns

    true if a given Sink has already received data

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

    Definition Classes
    AnyRef → Any
  95. val id: Strategy

    Definition Classes
    RewriterCore
  96. 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
  97. def initTree[T <: Attributable](t: T): Unit

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

    Definition Classes
    Rewriter
  99. def innermost(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  100. def innermost2(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  101. def innermost2(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  102. 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
  103. implicit def internalToDynamicAttribute[T <: AnyRef, U](f: (T) ⇒ U): CachedDynamicAttribute[T, U]

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

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  106. 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
  107. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  108. 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
  109. val isinnernode: Strategy

    Definition Classes
    Rewriter
  110. val isleaf: Strategy

    Definition Classes
    Rewriter
  111. val ispropersubterm: Strategy

    Definition Classes
    Rewriter
  112. val ispropersuperterm: Strategy

    Definition Classes
    Rewriter
  113. val issubterm: Strategy

    Definition Classes
    Rewriter
  114. val issuperterm: Strategy

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

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  117. def leaves(name: String, s: Strategy, isleaf: Strategy, skip: (Strategy) ⇒ Strategy): Strategy

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

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  120. def leaves(s: Strategy, isleaf: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  121. def log(name: String, s: ⇒ Strategy, msg: String, emitter: Emitter): Strategy

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

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

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  125. def loop(name: String, c: Strategy, s: Strategy): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  127. def loopiter(name: String, s: (Int) ⇒ Strategy, low: Int, high: Int): Strategy

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

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  130. def loopiter(i: Strategy, r: Strategy, s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  131. def loopnot(name: String, r: Strategy, s: Strategy): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  133. def makechild(c: Any): AnyRef

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

    Definition Classes
    Rewriter
  135. def manybu(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  136. def manytd(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  137. def manytd(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  138. def map(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  139. def map(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  140. 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
  141. def memo(name: String, s: ⇒ Strategy): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  143. def mkStrategy(name: String, f: (Any) ⇒ Option[Any]): Strategy

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

    returns

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

  145. final def ne(arg0: AnyRef): Boolean

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

    returns

    true if a process node has been filled

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

    Definition Classes
    Rewriter
  148. def not(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  149. final def notify(): Unit

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

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

    Definition Classes
    Rewriter
  152. def oncebu(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  153. def oncetd(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  154. def oncetd(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  155. def one(name: String, s: ⇒ Strategy): Strategy

    Definition Classes
    RewriterCore
  156. def one(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  157. 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
  158. def oneProduct(s: Strategy, p: Product): Option[Any]

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

    Definition Classes
    RewriterCore
  160. 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
  161. def optimise(outputs: Seq[CompNode]): Seq[CompNode]

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

  162. def option(name: String, o: ⇒ Option[Any]): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  164. def or(name: String, s1: Strategy, s2: Strategy): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  166. def outermost(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  167. def outermost(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  168. 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

  169. def parDoFuseRule: Strategy

  170. def para[T](f: (Any, Seq[T]) ⇒ T): (Any) ⇒ T

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

    Definition Classes
    AttributionCore
  172. def paramAttr[V, T <: AnyRef, U](f: (V) ⇒ (T) ⇒ U): CachedParamAttribute[V, T, U]

    Definition Classes
    AttributionCore
    Annotations
    @macroImpl( ... )
  173. 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
  174. 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
  175. def query[T](name: String, f: ==>[Any, T]): Strategy

    Definition Classes
    RewriterCore
  176. def query[T](f: ==>[Any, T]): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  177. def queryf[T](name: String, f: (Any) ⇒ T): Strategy

    Definition Classes
    RewriterCore
  178. def queryf[T](f: (Any) ⇒ T): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  179. def reduce(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  180. def reduce(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  181. 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
  182. def repeat(name: String, s: Strategy, n: Int): Strategy

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

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

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  186. def repeat(s: Strategy, r: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  187. def repeat(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  188. def repeat1(name: String, s: Strategy, r: Strategy): Strategy

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

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  191. def repeat1(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  192. 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

  193. def repeatuntil(name: String, s: Strategy, r: Strategy): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  195. def resetMemo(): Unit

    Definition Classes
    Memoiser
  196. def resetUses: Unit

    reinit usages

    reinit usages

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

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  199. def restorealways(name: String, s: Strategy, rest: Strategy): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  201. def rewrite[T](s: Strategy)(t: T): T

    Definition Classes
    Rewriter
  202. 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
  203. def rule(name: String, f: ==>[Any, Any]): Strategy

    Definition Classes
    RewriterCore
  204. def rule(f: ==>[Any, Any]): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  205. def rulef(name: String, f: (Any) ⇒ Any): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  207. def rulefs(name: String, f: ==>[Any, Strategy]): Strategy

    Definition Classes
    RewriterCore
  208. def rulefs(f: ==>[Any, Strategy]): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  209. def same(v1: Any, v2: Any): Boolean

    Attributes
    protected
    Definition Classes
    RewriterCore
  210. def some(name: String, s: ⇒ Strategy): Strategy

    Definition Classes
    RewriterCore
  211. def some(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  212. 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
  213. def someProduct(s: Strategy, p: Product): Option[Any]

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

    Definition Classes
    RewriterCore
  215. 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
  216. def somebu(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  217. def somebu(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  218. def somedownup(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  219. def somedownup(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  220. def sometd(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  221. def sometd(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  222. def strategy(name: String, f: ==>[Any, Option[Any]]): Strategy

    Definition Classes
    RewriterCore
  223. def strategy(f: ==>[Any, Option[Any]]): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  224. def strategyf(name: String, f: (Any) ⇒ Option[Any]): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  226. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  227. def term(name: String, t: Any): Strategy

    Definition Classes
    RewriterCore
  228. def term(t: Any): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  229. def test(name: String, s: Strategy): Strategy

    Definition Classes
    Rewriter
  230. def test(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  231. def toString(): String

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

    Definition Classes
    Rewriter
  233. def topdown(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  234. def topdownS(name: String, s: Strategy, stop: (⇒ Strategy) ⇒ Strategy): Strategy

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

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )
  236. 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
  237. def traverseOncebu(s: Strategy): Strategy

  238. def traverseSomebu(s: Strategy): Strategy

  239. def traverseSometd(s: Strategy): Strategy

  240. def tree[T <: Attributable, U <: Attributable](name: String, f: (T) ⇒ U): CachedAttribute[T, U]

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

    Definition Classes
    AttributionCore
    Annotations
    @macroImpl( ... )
  242. def truncate(node: CompNode)(condition: (Any) ⇒ Boolean): CompNode

    remove nodes from the tree based on a predicate

  243. def truncateAlreadyExecutedNodes(node: CompNode)(implicit sc: ScoobiConfiguration): CompNode

  244. 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
  245. 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
  246. final def wait(): Unit

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

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

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

    Definition Classes
    Rewriter
  250. def where(s: Strategy): Strategy

    Definition Classes
    RewriterCore
    Annotations
    @macroImpl( ... )

Inherited from MemoRewriter

Inherited from Rewriter

Inherited from RewriterCore

Inherited from CompNodes

Inherited from GraphNodes

Inherited from AttributionCore

Inherited from Memoiser

Inherited from AttributionCommon

Inherited from AnyRef

Inherited from Any

Ungrouped