Class

sigmastate.eval.Evaluation

CostAccumulator

Related Doc: package Evaluation

Permalink

class CostAccumulator extends AnyRef

Implements finite state machine with stack of graph blocks (scopes), which correspond to lambdas and thunks. It accepts messages: startScope(), endScope(), add(), reset() At any time totalCost is the currently accumulated cost.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CostAccumulator
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new CostAccumulator(initialCost: Int, costLimit: Option[Long])

    Permalink

Type Members

  1. class Loop extends AnyRef

    Permalink

    Describes cost information of the loop (map, fold, flatMap etc.) This is used for fail-fast checks in add method.

  2. class Scope extends IRContext.CostCounter

    Permalink

    Represents a single scope during execution of the graph.

    Represents a single scope during execution of the graph. The lifetime of each instance is bound to scope execution. When the evaluation enters a new scope (e.g. calling a lambda) a new Scope instance is created and pushed to _scopeStack, then is starts receiving add method calls. When the evaluation leaves the scope, the top is popped off the stack.

Value Members

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

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  4. def add(s: IRContext.Sym, op: IRContext.OpCost, dataEnv: IRContext.DataEnv): Int

    Permalink

    Called once for each operation of a scope (lambda or thunk).

  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. def currentScope: Scope

    Permalink
    Annotations
    @inline()
  8. def currentVisited: Set[IRContext.Sym]

    Permalink
    Annotations
    @inline()
  9. def endLoop(): Unit

    Permalink
  10. def endScope(body: IRContext.Sym): Unit

    Permalink

    Called after all operations of a scope are executed (lambda or thunk)

    Called after all operations of a scope are executed (lambda or thunk)

    body

    symbol of Lambda or ThunkDef node of the scope

  11. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  13. def finalize(): Unit

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

    Permalink
    Definition Classes
    AnyRef → Any
  15. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  16. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  17. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  18. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  19. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  20. def reset(): Unit

    Permalink

    Resets this accumulator into initial state to be ready for new graph execution.

    Resets this accumulator into initial state to be ready for new graph execution.

    Annotations
    @inline()
  21. def startLoop(body: IRContext.Sym): Unit

    Permalink
  22. def startScope(): Unit

    Permalink

    Called before any operation of a new scope (lambda or thunk)

  23. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  24. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  25. def totalCost: Int

    Permalink

    Returns total accumulated cost

    Returns total accumulated cost

    Annotations
    @inline()
  26. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped