Packages

c

sigmastate.eval.Evaluation

CostAccumulator

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])

Type Members

  1. class Loop extends AnyRef

    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

    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
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def add(s: IRContext.Sym, op: IRContext.OpCost, dataEnv: IRContext.DataEnv): Int

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

  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  7. def currentScope: Scope
    Annotations
    @inline()
  8. def currentVisited: Set[IRContext.Sym]
    Annotations
    @inline()
  9. def endLoop(): Unit
  10. def endScope(body: IRContext.Sym): Unit

    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
    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  13. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  16. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  17. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  20. def reset(): Unit

    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
  22. def startScope(): Unit

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

  23. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  24. def toString(): String
    Definition Classes
    AnyRef → Any
  25. def totalCost: Int

    Returns total accumulated cost

    Returns total accumulated cost

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

Inherited from AnyRef

Inherited from Any

Ungrouped