Class

sigmastate.interpreter

CostAccumulator

Related Doc: package interpreter

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 Scope extends 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(opCost: Int): Unit

    Permalink

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

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

    Exceptions thrown

    CostLimitException when current accumulated cost exceeds costLimit

  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. final def eq(arg0: AnyRef): Boolean

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

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

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

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

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
  17. 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()
  18. final def synchronized[T0](arg0: ⇒ T0): T0

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

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

    Permalink

    Returns total accumulated cost

    Returns total accumulated cost

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

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

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

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

Inherited from AnyRef

Inherited from Any

Ungrouped