Class

sigmastate.eval

RuntimeIRContext

Related Doc: package eval

Permalink

class RuntimeIRContext extends Scalan with IRContext

IR context to be used by blockchain nodes to validate transactions.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. RuntimeIRContext
  2. IRContext
  3. GraphBuilding
  4. TreeBuilding
  5. SigmaLibrary
  6. SigmaDslModule
  7. SigmaDslDefs
  8. SigmaDsl
  9. WrappersModule
  10. Library
  11. CollsModule
  12. CollsDefs
  13. Colls
  14. WrappersModule
  15. WRTypesModule
  16. WRTypesDefs
  17. WRTypes
  18. WOptionsModule
  19. WOptionsDefs
  20. WOptions
  21. WSpecialPredefsModule
  22. WSpecialPredefsDefs
  23. WSpecialPredefs
  24. Scalan
  25. DefRewriting
  26. Modules
  27. Entities
  28. Thunks
  29. IfThenElse
  30. Functions
  31. ProgramGraphs
  32. AstGraphs
  33. Transforming
  34. UniversalOps
  35. Equal
  36. OrderingOps
  37. LogicalOps
  38. UnBinOps
  39. NumericOps
  40. Tuples
  41. MethodCalls
  42. TypeDescs
  43. Base
  44. AnyRef
  45. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new RuntimeIRContext()

    Permalink

Type Members

  1. case class Apply[A, B](f: Scalan.Ref[(A) ⇒ B], arg: Scalan.Ref[A], mayInline: Boolean = true) extends Scalan.Node with Scalan.Def[B] with Product with Serializable

    Permalink
    Definition Classes
    Functions
  2. case class ApplyBinOp[A, R](op: Scalan.BinOp[A, R], lhs: Scalan.Ref[A], rhs: Scalan.Ref[A]) extends Scalan.BaseDef[R] with Product with Serializable

    Permalink

    Graph node which represents application of the given binary operation to the given arguments.

    Graph node which represents application of the given binary operation to the given arguments.

    Definition Classes
    UnBinOps
  3. case class ApplyBinOpLazy[A, R](op: Scalan.BinOp[A, R], lhs: Scalan.Ref[A], rhs: Scalan.Ref[Scalan.Thunk[A]]) extends Scalan.BaseDef[R] with Product with Serializable

    Permalink

    Graph node which represents application of the given binary operation to the given arguments where the second argument is lazy.

    Graph node which represents application of the given binary operation to the given arguments where the second argument is lazy.

    Definition Classes
    UnBinOps
  4. case class ApplyUnOp[A, R](op: Scalan.UnOp[A, R], arg: Scalan.Ref[A]) extends Scalan.BaseDef[R] with Product with Serializable

    Permalink

    Graph node which represents application of the given unary operation to the given argument.

    Graph node which represents application of the given unary operation to the given argument.

    Definition Classes
    UnBinOps
  5. abstract class AstGraph extends Scalan.Node

    Permalink

    Base class for all compound nodes with schedule (e.g.

    Base class for all compound nodes with schedule (e.g. Lambda, ThunkDef). The graph is directed acyclic (i.e. DAG) in which edges go from boundVars down to roots.

    Definition Classes
    AstGraphs
  6. trait AvlTree extends sigmastate.eval.SigmaLibrary.Node with sigmastate.eval.SigmaLibrary.Def[sigmastate.eval.SigmaLibrary.AvlTree]

    Permalink
    Definition Classes
    SigmaDsl
  7. trait AvlTreeCompanion extends AnyRef

    Permalink
    Definition Classes
    SigmaDsl
  8. abstract class BaseDef[+T] extends Scalan.Node with Scalan.Def[T]

    Permalink

    Base class for most predefined operations.

    Base class for most predefined operations.

    Definition Classes
    Base
  9. abstract class BaseElem[A] extends Scalan.Elem[A] with Serializable with Equals

    Permalink
    Definition Classes
    TypeDescs
  10. class BaseElemLiftable[A] extends Scalan.BaseElem[A]

    Permalink

    Type descriptor for primitive types.

    Type descriptor for primitive types. There is implicit val declaration for each primitive type.

    Definition Classes
    TypeDescs
  11. trait BigInt extends sigmastate.eval.SigmaLibrary.Node with sigmastate.eval.SigmaLibrary.Def[sigmastate.eval.SigmaLibrary.BigInt]

    Permalink
    Definition Classes
    SigmaDsl
  12. trait BigIntCompanion extends AnyRef

    Permalink
    Definition Classes
    SigmaDsl
  13. abstract class BinOp[A, R] extends AnyRef

    Permalink

    Base class for descriptors of binary operations.

    Base class for descriptors of binary operations.

    Definition Classes
    UnBinOps
  14. trait Box extends sigmastate.eval.SigmaLibrary.Node with sigmastate.eval.SigmaLibrary.Def[sigmastate.eval.SigmaLibrary.Box]

    Permalink
    Definition Classes
    SigmaDsl
  15. trait BoxCompanion extends AnyRef

    Permalink
    Definition Classes
    SigmaDsl
  16. trait Coll[A] extends scalan.Library.Node with scalan.Library.Def[scalan.Library.Coll[A]]

    Permalink
    Definition Classes
    Colls
  17. trait CollBuilder extends scalan.Library.Node with scalan.Library.Def[scalan.Library.CollBuilder]

    Permalink
    Definition Classes
    Colls
  18. trait CollBuilderCompanion extends AnyRef

    Permalink
    Definition Classes
    Colls
  19. class CollCls extends scalan.Library.EntityObject

    Permalink
    Definition Classes
    CollsDefs
  20. trait CollCompanion extends AnyRef

    Permalink
    Definition Classes
    Colls
  21. abstract class CompanionDef[T] extends Scalan.Node with Scalan.Def[T]

    Permalink

    Base class for virtualized instances of type companions.

    Base class for virtualized instances of type companions. Each virtualized entity type (trait or class) may have virtualized companion class.

    Definition Classes
    Base
  22. abstract class CompanionElem[T] extends Scalan.Elem[T]

    Permalink

    Base class for all descriptors of staged companions

    Base class for all descriptors of staged companions

    Definition Classes
    Entities
  23. type CompilingEnv = Map[Any, Ref[_]]

    Permalink

    Type of the mapping between variable names (see Ident) or definition ids (see ValDef) and graph nodes.

    Type of the mapping between variable names (see Ident) or definition ids (see ValDef) and graph nodes. Thus, the key is either String or Int. Used in buildNode method.

    Attributes
    protected
    Definition Classes
    GraphBuilding
  24. trait ConcreteElem[TData, TClass] extends Scalan.EntityElem[TClass]

    Permalink

    Base class for all descriptors of staged classes.

    Base class for all descriptors of staged classes.

    Definition Classes
    Entities
  25. trait ConcreteElem1[A, TData, TClass, C[_]] extends Scalan.EntityElem1[A, TClass, C]

    Permalink

    Base class for all descriptors of staged classes with one type parameter.

    Base class for all descriptors of staged classes with one type parameter. Note, it doesn't inherit from ConcreteElem

    Definition Classes
    Entities
  26. case class Const[T](x: T)(implicit eT: Scalan.Elem[T]) extends Scalan.BaseDef[T] with Product with Serializable

    Permalink

    Default node type for embedding of literal values to graph IR.

    Default node type for embedding of literal values to graph IR. This can be used or those types T when Elem[T] is defined, but Liftable[_,T] is not, i.e. for non-liftable types.

    x

    literal value

    eT

    type descriptor of IR type T

    Definition Classes
    Base
  27. abstract class Cont[F[_]] extends Scalan.TypeDesc

    Permalink

    Descriptor of type constructor of * -> * kind.

    Descriptor of type constructor of * -> * kind. Type constructor is not a type, but rather a function from type to type. It contains methods which abstract relationship between types T, F[T] etc.

    Definition Classes
    TypeDescs
    Annotations
    @implicitNotFound( "No Cont available for ${F}." )
  28. trait Context extends sigmastate.eval.SigmaLibrary.Node with sigmastate.eval.SigmaLibrary.Def[sigmastate.eval.SigmaLibrary.Context]

    Permalink
    Definition Classes
    SigmaDsl
  29. trait ContextCompanion extends AnyRef

    Permalink
    Definition Classes
    SigmaDsl
  30. case class Convert[From, To](eFrom: Scalan.Elem[From], eTo: Scalan.Elem[To], x: Scalan.Ref[Scalan.Def[_]], conv: Scalan.Ref[(From) ⇒ To]) extends Scalan.BaseDef[To] with Product with Serializable

    Permalink
    Definition Classes
    UniversalOps
  31. trait CostModelCompanion extends AnyRef

    Permalink
    Definition Classes
    SigmaDsl
  32. type DataEnv = Map[Sym, AnyRef]

    Permalink

    Immutable data environment used to assign data values to graph nodes.

    Immutable data environment used to assign data values to graph nodes.

    Definition Classes
    TypeDescs
  33. trait Def[+T] extends Scalan.Node

    Permalink

    Base type for all graph nodes (aka computable value definitions).

    Base type for all graph nodes (aka computable value definitions). Each graph node or definition represent one operation node of the data flow graph.

    Definition Classes
    Base
  34. type DefEnv = Map[Sym, (Int, SType)]

    Permalink

    Describes assignment of valIds for symbols which become ValDefs.

    Describes assignment of valIds for symbols which become ValDefs. Each ValDef in current scope have entry in this map

    Definition Classes
    TreeBuilding
  35. class DefaultPass extends Scalan.Pass

    Permalink

    Default pass to be used when IR is used without special compiler configuration.

    Default pass to be used when IR is used without special compiler configuration.

    Definition Classes
    Transforming
  36. abstract class DivOp[T] extends Scalan.EndoBinOp[T]

    Permalink

    Base class for descriptors of binary division operations.

    Base class for descriptors of binary division operations.

    Definition Classes
    NumericOps
  37. case class Downcast[From, To](input: Scalan.Ref[From], eTo: Scalan.Elem[To]) extends Scalan.BaseDef[To] with Product with Serializable

    Permalink
    Definition Classes
    UniversalOps
  38. abstract class Elem[A] extends Scalan.TypeDesc

    Permalink

    Type descriptor of staged types, which correspond to source (unstaged) RTypes defined outside of IR cake.

    Type descriptor of staged types, which correspond to source (unstaged) RTypes defined outside of IR cake.

    A

    the type represented by this descriptor

    Definition Classes
    TypeDescs
    Annotations
    @implicitNotFound( "No Elem available for ${A}." )
  39. class ElemCacheEntry extends AnyRef

    Permalink

    Elements cache information for each Elem class.

    Elements cache information for each Elem class.

    Definition Classes
    TypeDescs
  40. class ElseIfBranch[T] extends AnyRef

    Permalink

    Defines syntax available after IF (cond) THEN thenp ELSEIF (cond1)

    Defines syntax available after IF (cond) THEN thenp ELSEIF (cond1)

    Definition Classes
    IfThenElse
  41. type EndoBinOp[A] = BinOp[A, A]

    Permalink
    Definition Classes
    UnBinOps
  42. type EndoUnOp[A] = UnOp[A, A]

    Permalink
    Definition Classes
    UnBinOps
  43. abstract class EntityElem[A] extends Scalan.Elem[A] with Equals

    Permalink

    Base class for all descriptors of staged traits.

    Base class for all descriptors of staged traits. See derived classes in impl packages.

    Definition Classes
    Entities
  44. abstract class EntityElem1[A, To, C[_]] extends Scalan.EntityElem[To]

    Permalink

    Base class for all descriptors of staged traits with one type parameter.

    Base class for all descriptors of staged traits with one type parameter.

    Definition Classes
    Entities
  45. class EntityObject extends AnyRef

    Permalink

    Base class for all objects generated for virtualized types to support staged evaluation machinery.

    Base class for all objects generated for virtualized types to support staged evaluation machinery. Each object contains definitions which can be imported when necessary. All that objects are registered in entityObjects hash map, which is done while IR cake is constructed.

    Definition Classes
    Base
  46. case class EntityObjectOwner(obj: Scalan.EntityObject) extends Scalan.OwnerKind with Product with Serializable

    Permalink
    Definition Classes
    Base
  47. case class EnvRep[A](run: (Scalan.DataEnv) ⇒ (Scalan.DataEnv, Scalan.Ref[A])) extends Product with Serializable

    Permalink

    State monad for symbols computed in a data environment.

    State monad for symbols computed in a data environment. DataEnv is used as the state of the state monad.

    Definition Classes
    TypeDescs
  48. implicit class EqualOps[A] extends AnyRef

    Permalink

    Extension methods to construct ApplyBinOp nodes

    Extension methods to construct ApplyBinOp nodes

    Definition Classes
    Equal
  49. case class Equals[A]()(implicit evidence$1: Scalan.Elem[A]) extends Scalan.BinOp[A, Boolean] with Product with Serializable

    Permalink

    Binary operation representing structural equality between arguments.

    Binary operation representing structural equality between arguments.

    Definition Classes
    Equal
  50. case class First[A, B](pair: Scalan.Ref[(A, B)]) extends Scalan.Node with Scalan.Def[A] with Product with Serializable

    Permalink
    Definition Classes
    Tuples
  51. case class FuncElem[A, B](eDom: Scalan.Elem[A], eRange: Scalan.Elem[B]) extends Scalan.Elem[(A) ⇒ B] with Product with Serializable

    Permalink

    Type descriptor for A => B type where descriptors for A and B are given as arguments.

    Type descriptor for A => B type where descriptors for A and B are given as arguments.

    Definition Classes
    TypeDescs
  52. implicit class FuncExtensions[A, B] extends AnyRef

    Permalink
    Definition Classes
    Functions
  53. trait Functor[F[_]] extends Scalan.Cont[F]

    Permalink
    Definition Classes
    TypeDescs
  54. case class GraphNode(sym: Scalan.Sym, usages: Buffer[Int]) extends Product with Serializable

    Permalink

    GraphNode is created for each symbol of the AstGraph and represents graph linking structure

    GraphNode is created for each symbol of the AstGraph and represents graph linking structure

    Definition Classes
    AstGraphs
  55. trait GroupElement extends sigmastate.eval.SigmaLibrary.Node with sigmastate.eval.SigmaLibrary.Def[sigmastate.eval.SigmaLibrary.GroupElement]

    Permalink
    Definition Classes
    SigmaDsl
  56. trait GroupElementCompanion extends AnyRef

    Permalink
    Definition Classes
    SigmaDsl
  57. case class HashCode[A]() extends Scalan.UnOp[A, Int] with Product with Serializable

    Permalink
    Definition Classes
    UniversalOps
  58. trait Header extends sigmastate.eval.SigmaLibrary.Node with sigmastate.eval.SigmaLibrary.Def[sigmastate.eval.SigmaLibrary.Header]

    Permalink
    Definition Classes
    SigmaDsl
  59. trait HeaderCompanion extends AnyRef

    Permalink
    Definition Classes
    SigmaDsl
  60. class IfBranch extends AnyRef

    Permalink

    Defines syntax available after IF (cond)

    Defines syntax available after IF (cond)

    Definition Classes
    IfThenElse
  61. case class IfThenElseLazy[T](cond: Scalan.Ref[Boolean], thenp: Scalan.Ref[Scalan.Thunk[T]], elsep: Scalan.Ref[Scalan.Thunk[T]]) extends Scalan.Node with Scalan.Def[T] with Product with Serializable

    Permalink

    IR node to represent IF condition with lazy branches.

    IR node to represent IF condition with lazy branches.

    Definition Classes
    IfThenElse
  62. case class IntegralDivide[T](i: ExactIntegral[T])(implicit elem: Scalan.Elem[T]) extends Scalan.DivOp[T] with Product with Serializable

    Permalink

    Descriptor of binary / operation (integral division).

    Descriptor of binary / operation (integral division).

    Definition Classes
    NumericOps
  63. case class IntegralMod[T](i: ExactIntegral[T])(implicit elem: Scalan.Elem[T]) extends Scalan.DivOp[T] with Product with Serializable

    Permalink

    Descriptor of binary % operation (remainder of integral division).

    Descriptor of binary % operation (remainder of integral division).

    Definition Classes
    NumericOps
  64. implicit class IntegralOpsCls[T] extends AnyRef

    Permalink

    Extension methods over Ref[T] where T is instance of ExactIntegral type-class.

    Extension methods over Ref[T] where T is instance of ExactIntegral type-class.

    Definition Classes
    NumericOps
  65. case class InvokeFailure(exception: Throwable) extends Scalan.InvokeResult with Product with Serializable

    Permalink

    Exception thrown during MethodCall invocation.

    Exception thrown during MethodCall invocation.

    Definition Classes
    MethodCalls
  66. sealed abstract class InvokeResult extends AnyRef

    Permalink

    Result of MethodCall invocation.

    Result of MethodCall invocation.

    Definition Classes
    MethodCalls
    See also

    tryInvoke

  67. case class InvokeSuccess(result: Scalan.Ref[_]) extends Scalan.InvokeResult with Product with Serializable

    Permalink

    Successful MethodCall invocation with the given result.

    Successful MethodCall invocation with the given result.

    Definition Classes
    MethodCalls
  68. type LElem[A] = Lazy[Elem[A]]

    Permalink

    Type descriptor which is computed lazily on demand.

    Type descriptor which is computed lazily on demand.

    Definition Classes
    TypeDescs
  69. class Lambda[A, B] extends Scalan.AstGraph with Scalan.Def[(A) ⇒ B]

    Permalink

    Represent lambda expression as IR node.

    Represent lambda expression as IR node.

    Definition Classes
    Functions
  70. type LambdaData[A, B] = (Lambda[A, B], Nullable[(Ref[A]) ⇒ Ref[B]], Ref[A], Ref[B])

    Permalink
    Definition Classes
    Functions
  71. implicit class LambdaOps[A, B] extends AnyRef

    Permalink
    Definition Classes
    Functions
  72. class LambdaStack extends AnyRef

    Permalink
    Definition Classes
    Functions
  73. type LazyRep[T] = MutableLazy[Ref[T]]

    Permalink
    Definition Classes
    Library
  74. case class LiftableThunk[ST, T](lT: Liftable[ST, T]) extends Liftable[Scalan.SThunk[ST], Scalan.Thunk[T]] with Product with Serializable

    Permalink

    Implementation of Liftable type class for Thunk[T] given liftable for T.

    Implementation of Liftable type class for Thunk[T] given liftable for T.

    Definition Classes
    Thunks
  75. implicit class ListOps[A, B] extends AnyRef

    Permalink
    Definition Classes
    Tuples
  76. case class MapTransformer(subst: HashMap[Scalan.Sym, Scalan.Sym]) extends Scalan.Transformer with Product with Serializable

    Permalink

    Concrete and default implementation of Transformer using underlying HashMap.

    Concrete and default implementation of Transformer using underlying HashMap. HOTSPOT: don't beatify the code

    Definition Classes
    Transforming
  77. case class MethodCall extends Scalan.Node with Scalan.Def[Any] with Product with Serializable

    Permalink

    Graph node to represent invocation of the method of some class.

    Graph node to represent invocation of the method of some class.

    Definition Classes
    MethodCalls
  78. sealed abstract class MethodDesc extends AnyRef

    Permalink

    Abstract class for a method descriptors to assist invocation of MethodCall nodes.

    Abstract class for a method descriptors to assist invocation of MethodCall nodes.

    Definition Classes
    TypeDescs
  79. abstract class Mirror extends AnyRef

    Permalink

    Base class for mirrors of graph nodes.

    Base class for mirrors of graph nodes. Provides default implementations which can be overriden if special logic is required. HOTSPOT: don't beautify the code

    Definition Classes
    Transforming
  80. case class NewObject[A](eA: Scalan.Elem[A], args: Seq[Any]) extends Scalan.BaseDef[A] with Product with Serializable

    Permalink

    Represents invocation of constructor of the class described by eA.

    Represents invocation of constructor of the class described by eA.

    eA

    class descriptor for new instance

    args

    arguments of class constructor

    Definition Classes
    MethodCalls
  81. abstract class Node extends Product

    Permalink

    Base class for all IR nodes/operations/definitions.

    Base class for all IR nodes/operations/definitions.

    Definition Classes
    Base
  82. case class NotEquals[A]()(implicit evidence$2: Scalan.Elem[A]) extends Scalan.BinOp[A, Boolean] with Product with Serializable

    Permalink

    Binary operation representing structural inequality between arguments.

    Binary operation representing structural inequality between arguments.

    Definition Classes
    Equal
  83. class NotImplementedStagingException extends Scalan.StagingException

    Permalink
    Definition Classes
    Base
  84. case class NumericMinus[T](n: ExactNumeric[T])(implicit evidence$4: Scalan.Elem[T]) extends Scalan.EndoBinOp[T] with Product with Serializable

    Permalink

    Descriptor of binary - operation.

    Descriptor of binary - operation.

    Definition Classes
    NumericOps
  85. case class NumericNegate[T](n: ExactNumeric[T])(implicit evidence$7: Scalan.Elem[T]) extends Scalan.UnOp[T, T] with Product with Serializable

    Permalink

    Descriptor of unary - operation.

    Descriptor of unary - operation.

    Definition Classes
    NumericOps
  86. implicit class NumericOpsCls[T] extends AnyRef

    Permalink

    Extension methods over Ref[T] where T is instance of ExactNumeric type-class.

    Extension methods over Ref[T] where T is instance of ExactNumeric type-class.

    Definition Classes
    NumericOps
  87. case class NumericPlus[T](n: ExactNumeric[T])(implicit evidence$3: Scalan.Elem[T]) extends Scalan.EndoBinOp[T] with Product with Serializable

    Permalink

    Descriptor of binary + operation.

    Descriptor of binary + operation.

    Definition Classes
    NumericOps
  88. case class NumericTimes[T](n: ExactNumeric[T])(implicit evidence$5: Scalan.Elem[T]) extends Scalan.EndoBinOp[T] with Product with Serializable

    Permalink

    Descriptor of binary * operation.

    Descriptor of binary * operation.

    Definition Classes
    NumericOps
  89. case class NumericToInt[T](n: ExactNumeric[T]) extends Scalan.UnOp[T, Int] with Product with Serializable

    Permalink

    Descriptor of unary ToInt conversion operation.

    Descriptor of unary ToInt conversion operation.

    Definition Classes
    NumericOps
  90. case class NumericToLong[T](n: ExactNumeric[T]) extends Scalan.UnOp[T, Long] with Product with Serializable

    Permalink

    Descriptor of unary ToLong conversion operation.

    Descriptor of unary ToLong conversion operation.

    Definition Classes
    NumericOps
  91. case class OpCost(lambdaVar: Scalan.Sym, costedValueId: Int, args: Seq[Scalan.Ref[Int]], opCost: Scalan.Ref[Int]) extends Scalan.BaseDef[Int] with Product with Serializable

    Permalink

    Special graph node to represent accumulation of the operation costs.

    Special graph node to represent accumulation of the operation costs. In general, due to node sharing it is incorrect to just sum up all the args costs and add resCost to that value. Example:
    val x = .. val y = op1(x) val z = op2(x) val res = op3(y, z) The naive summation will lead to the cost of x is accumulated both into cost of y and into cost of z, so in the cost of res it is accumulated twice. To avoid this problem OpCost nodes require special handling in during evaluation.

    lambdaVar

    the variable of the lambda in which scope this node is created. This makes this node belong to the lambda body, even if it doesn't otherwise depend on lambda argument.

    costedValueId

    The id of the node for which this node represents cost

    args

    costs of the arguments, which are here represent dependency information.

    opCost

    operation cost, which should be added to the current scope accumulated cost

    Definition Classes
    UniversalOps
  92. case class OrderingCompare[T](ord: ExactOrdering[T]) extends Scalan.BinOp[T, Int] with Product with Serializable

    Permalink

    Descriptor of binary compare operation.

    Descriptor of binary compare operation.

    Definition Classes
    OrderingOps
  93. case class OrderingGT[T](ord: ExactOrdering[T]) extends Scalan.BinOp[T, Boolean] with Product with Serializable

    Permalink

    Descriptor of binary > operation.

    Descriptor of binary > operation.

    Definition Classes
    OrderingOps
  94. case class OrderingGTEQ[T](ord: ExactOrdering[T]) extends Scalan.BinOp[T, Boolean] with Product with Serializable

    Permalink

    Descriptor of binary >= operation.

    Descriptor of binary >= operation.

    Definition Classes
    OrderingOps
  95. case class OrderingLT[T](ord: ExactOrdering[T]) extends Scalan.BinOp[T, Boolean] with Product with Serializable

    Permalink

    Descriptor of binary < operation.

    Descriptor of binary < operation.

    Definition Classes
    OrderingOps
  96. case class OrderingLTEQ[T](ord: ExactOrdering[T]) extends Scalan.BinOp[T, Boolean] with Product with Serializable

    Permalink

    Descriptor of binary <= operation.

    Descriptor of binary <= operation.

    Definition Classes
    OrderingOps
  97. case class OrderingMax[T](ord: ExactOrdering[T])(implicit evidence$1: Scalan.Elem[T]) extends Scalan.BinOp[T, T] with Product with Serializable

    Permalink

    Descriptor of binary max operation.

    Descriptor of binary max operation.

    Definition Classes
    OrderingOps
  98. case class OrderingMin[T](ord: ExactOrdering[T])(implicit evidence$2: Scalan.Elem[T]) extends Scalan.BinOp[T, T] with Product with Serializable

    Permalink

    Descriptor of binary min operation.

    Descriptor of binary min operation.

    Definition Classes
    OrderingOps
  99. class OrderingOpsCls[T] extends AnyRef

    Permalink

    Extension method over Ref[T] given an instance of ExactOrdering for T.

    Extension method over Ref[T] given an instance of ExactOrdering for T.

    Definition Classes
    OrderingOps
  100. sealed abstract class OwnerKind extends AnyRef

    Permalink

    Variants of owner parameter of constructors of nested classes: 1) predefined node classes are owned by IR cake (ScalanOwner) 2) entity classes are owned by enclosing EntityObject

    Variants of owner parameter of constructors of nested classes: 1) predefined node classes are owned by IR cake (ScalanOwner) 2) entity classes are owned by enclosing EntityObject

    Definition Classes
    Base
  101. type PGraph = ProgramGraph

    Permalink
    Definition Classes
    ProgramGraphs
  102. class PGraphUsages extends DFunc[Int, Buffer[Int]]

    Permalink

    Deboxed function to obtain usages of a given node.

    Deboxed function to obtain usages of a given node. Represents adjacency matrix of the reversed graph g.

    Definition Classes
    ProgramGraphs
  103. case class PairElem[A, B](eFst: Scalan.Elem[A], eSnd: Scalan.Elem[B]) extends Scalan.Elem[(A, B)] with Product with Serializable

    Permalink

    Type descriptor for (A, B) type where descriptors for A and B are given as arguments.

    Type descriptor for (A, B) type where descriptors for A and B are given as arguments.

    Definition Classes
    TypeDescs
  104. implicit class PartialRewriter extends Scalan.Rewriter

    Permalink

    Turns partial function into rewriter (i.e.

    Turns partial function into rewriter (i.e. set of rewriting rules)

    Definition Classes
    Transforming
  105. abstract class Pass extends AnyRef

    Permalink

    Descriptor of a current compiler pass.

    Descriptor of a current compiler pass. Compiler can be configured to perform one pass after another. Each pass has name, configuration parameters, finalizaton logic etc.

    Definition Classes
    Transforming
  106. case class PassConfig(shouldUnpackTuples: Boolean = false, shouldExtractFields: Boolean = true, constantPropagation: Boolean = true, shouldSlice: Boolean = false) extends Product with Serializable

    Permalink

    Configuration parameters of the Pass descriptor.

    Configuration parameters of the Pass descriptor.

    Definition Classes
    Transforming
  107. case class Placeholder[T](eT: Scalan.LElem[T]) extends Scalan.Node with Scalan.Def[T] with Product with Serializable

    Permalink

    Symbols may temporary refer to this node until their target node is updated.

    Symbols may temporary refer to this node until their target node is updated.

    Definition Classes
    Base
  108. trait PreHeader extends sigmastate.eval.SigmaLibrary.Node with sigmastate.eval.SigmaLibrary.Def[sigmastate.eval.SigmaLibrary.PreHeader]

    Permalink
    Definition Classes
    SigmaDsl
  109. trait PreHeaderCompanion extends AnyRef

    Permalink
    Definition Classes
    SigmaDsl
  110. case class ProgramGraph(roots: Seq[Scalan.Sym], mapping: Nullable[Scalan.Transformer], filterNode: Nullable[(Scalan.Sym) ⇒ Boolean]) extends Scalan.AstGraph with Product with Serializable

    Permalink

    Immutable graph collected from roots following Ref.node.deps links.

    Immutable graph collected from roots following Ref.node.deps links.

    Definition Classes
    ProgramGraphs
  111. type RColl[T] = Ref[Coll[T]]

    Permalink
    Definition Classes
    GraphBuilding
  112. type RFunc[-A, +B] = Ref[(A) ⇒ B]

    Permalink
    Definition Classes
    Base
  113. case class RMethodDesc(method: RMethod) extends Scalan.MethodDesc with Product with Serializable

    Permalink

    Decriptor for a method of a class.

    Decriptor for a method of a class.

    method

    The RMethod object representing the method.

    Definition Classes
    TypeDescs
  114. type ROption[T] = Ref[WOption[T]]

    Permalink
    Definition Classes
    GraphBuilding
  115. type RPair[+A, +B] = Ref[(A, B)]

    Permalink
    Definition Classes
    Base
  116. abstract class Ref[+T] extends AnyRef

    Permalink

    Abstract representation of a computable value.

    Abstract representation of a computable value. Default implementation is a simple lightweight reference to the corresponding definition. Every Ref have direct access to its Def via node property. Every Ref is typed, and the type is avaliable via elem property.

    Definition Classes
    Base
    See also

    SingleRep

  117. implicit class RepBooleanOps extends AnyRef

    Permalink

    Extension methods over Ref[Boolean].

    Extension methods over Ref[Boolean].

    Definition Classes
    LogicalOps
  118. implicit class RepThunkOps[T] extends AnyRef

    Permalink

    Extension methods on Ref[Thunk[T]] values.

    Extension methods on Ref[Thunk[T]] values.

    Definition Classes
    Thunks
  119. implicit class RepUniversalOps[A] extends AnyRef

    Permalink
    Definition Classes
    UniversalOps
  120. abstract class Rewriter extends AnyRef

    Permalink
    Definition Classes
    Transforming
  121. type SThunk[T] = () ⇒ T

    Permalink

    Runtime representation of lazy values.

    Runtime representation of lazy values. Each Thunk typed graph node evaluates to a value of this type.

    Definition Classes
    Thunks
  122. type Schedule = Seq[Sym]

    Permalink

    Type synonim for graph schedules.

    Type synonim for graph schedules.

    Definition Classes
    AstGraphs
  123. type ScheduleIds = Buffer[Int]

    Permalink

    Alternative representation of schedules using node ids.

    Alternative representation of schedules using node ids.

    Definition Classes
    AstGraphs
  124. case class Second[A, B](pair: Scalan.Ref[(A, B)]) extends Scalan.Node with Scalan.Def[B] with Product with Serializable

    Permalink
    Definition Classes
    Tuples
  125. trait SigmaContractCompanion extends AnyRef

    Permalink
    Definition Classes
    SigmaDsl
  126. trait SigmaDslBuilder extends sigmastate.eval.SigmaLibrary.Node with sigmastate.eval.SigmaLibrary.Def[sigmastate.eval.SigmaLibrary.SigmaDslBuilder]

    Permalink
    Definition Classes
    SigmaDsl
  127. trait SigmaDslBuilderCompanion extends AnyRef

    Permalink
    Definition Classes
    SigmaDsl
  128. trait SigmaProp extends sigmastate.eval.SigmaLibrary.Node with sigmastate.eval.SigmaLibrary.Def[sigmastate.eval.SigmaLibrary.SigmaProp]

    Permalink
    Definition Classes
    SigmaDsl
  129. trait SigmaPropCompanion extends AnyRef

    Permalink
    Definition Classes
    SigmaDsl
  130. final class SingleRef[+T] extends Scalan.Ref[T]

    Permalink

    A Ref is a symbolic reference used internally to refer to graph nodes.

    A Ref is a symbolic reference used internally to refer to graph nodes. Light weight stateless immutable reference to a graph node (Def[T]). Two symbols are equal if they refer to the nodes with the same id, which is due to Def unification means equal symbols refer to the same instance of Def.

    Definition Classes
    Base
  131. case class SizeOf[T](value: Scalan.Ref[T]) extends Scalan.BaseDef[Long] with Product with Serializable

    Permalink

    Represents calculation of size in bytes of the given value.

    Represents calculation of size in bytes of the given value. The descriptor value.elem can be used to decompose value into components.

    Definition Classes
    UniversalOps
  132. class StagingException extends RuntimeException

    Permalink
    Definition Classes
    Base
  133. type Subst = HashMap[Sym, Sym]

    Permalink
    Definition Classes
    Functions
  134. case class SumElem[A, B](eLeft: Scalan.Elem[A], eRight: Scalan.Elem[B]) extends Scalan.Elem[Scalan.|[A, B]] with Product with Serializable

    Permalink

    Type descriptor for A | B type where descriptors for A and B are given as arguments.

    Type descriptor for A | B type where descriptors for A and B are given as arguments.

    Definition Classes
    TypeDescs
  135. type Sym = Ref[_]

    Permalink

    Untyped shortcut sinonim of Ref, which is used as untyped reference to graph nodes (definitions).

    Untyped shortcut sinonim of Ref, which is used as untyped reference to graph nodes (definitions). Following a tradition in compiler engineering we call references to definitions as symbols.

    Definition Classes
    Base
  136. type Th[+T] = Ref[Thunk[T]]

    Permalink
    Definition Classes
    Thunks
  137. class ThenIfBranch[T] extends AnyRef

    Permalink

    Defines syntax available after IF (cond) THEN thenp

    Defines syntax available after IF (cond) THEN thenp

    Definition Classes
    IfThenElse
  138. trait Thunk[+A] extends AnyRef

    Permalink

    Phantom type to define thunk-typed graph nodes and thunk based lazy operations.

    Phantom type to define thunk-typed graph nodes and thunk based lazy operations. Usually used inside Ref, see for example Th. See also for details http://gigiigig.github.io/tlp-step-by-step/phantom-types.html

    Definition Classes
    Thunks
  139. class ThunkCompanion extends AnyRef

    Permalink

    A class of factory to create new Thunks by use Thunk { ... } expressions.

    A class of factory to create new Thunks by use Thunk { ... } expressions.

    Definition Classes
    Thunks
  140. case class ThunkConst[ST, T](constValue: Scalan.SThunk[ST], lT: Liftable[ST, T]) extends Scalan.BaseDef[Scalan.Thunk[T]] with LiftedConst[Scalan.SThunk[ST], Scalan.Thunk[T]] with Product with Serializable

    Permalink

    Graph node to represent constants of type Thunk.

    Graph node to represent constants of type Thunk.

    Definition Classes
    Thunks
    See also

    scalan.Base.Liftables.Liftable

  141. class ThunkDef[A] extends Scalan.AstGraph with Scalan.Def[Scalan.Thunk[A]]

    Permalink

    Graph node representing thunk with reified body.

    Graph node representing thunk with reified body. Each thunk node is a specialized implementation of AstGraph abstract class.

    Definition Classes
    Thunks
  142. case class ThunkElem[A](eItem: Scalan.Elem[A]) extends Scalan.EntityElem1[A, Scalan.Thunk[A], Scalan.Thunk] with Product with Serializable

    Permalink

    Implements a type descriptor of Thunk[A] type given the instance of A.

    Implements a type descriptor of Thunk[A] type given the instance of A.

    Definition Classes
    Thunks
  143. case class ThunkForce[A](thunk: Scalan.Ref[Scalan.Thunk[A]]) extends Scalan.Node with Scalan.Def[A] with Product with Serializable

    Permalink

    Graph node to represent thunk forcing operation.

    Graph node to represent thunk forcing operation.

    Definition Classes
    Thunks
  144. class ThunkScope extends AnyRef

    Permalink

    Helper object to handle construction of nested thunks.

    Helper object to handle construction of nested thunks. One instance is created for each ThunkDef under construction. This corresponds to syntactic nesting of thunks.

    Definition Classes
    Thunks
  145. class ThunkStack extends AnyRef

    Permalink

    The stack of nested thunks during graph construction.

    The stack of nested thunks during graph construction.

    Definition Classes
    Thunks
  146. case class ToString[A]() extends Scalan.UnOp[A, String] with Product with Serializable

    Permalink
    Definition Classes
    UniversalOps
  147. abstract class Transformer extends AnyRef

    Permalink

    Base class for Ref to Ref transformations.

    Base class for Ref to Ref transformations. Each transformer keeps a mapping data between references to original nodes and references to the corresponding transformed nodes.

    Definition Classes
    Base
  148. case class Tup[A, B](a: Scalan.Ref[A], b: Scalan.Ref[B]) extends Scalan.Node with Scalan.Def[(A, B)] with Product with Serializable

    Permalink
    Definition Classes
    Tuples
  149. implicit class TupleOps2[A, B] extends AnyRef

    Permalink
    Definition Classes
    Tuples
  150. implicit class TupleOps3[A, B, C] extends AnyRef

    Permalink
    Definition Classes
    Tuples
  151. implicit class TupleOps4[A, B, C, D] extends AnyRef

    Permalink
    Definition Classes
    Tuples
  152. implicit class TupleOps5[A, B, C, D, E] extends AnyRef

    Permalink
    Definition Classes
    Tuples
  153. abstract class TypeDesc extends Serializable

    Permalink
    Definition Classes
    TypeDescs
  154. abstract class UnOp[A, R] extends AnyRef

    Permalink

    Base class for descriptors of unary operations.

    Base class for descriptors of unary operations.

    Definition Classes
    UnBinOps
  155. case class Upcast[From, To](input: Scalan.Ref[From], eTo: Scalan.Elem[To]) extends Scalan.BaseDef[To] with Product with Serializable

    Permalink
    Definition Classes
    UniversalOps
  156. case class Variable[T](varId: Int)(implicit eT: Scalan.LElem[T]) extends Scalan.Node with Scalan.Def[T] with Product with Serializable

    Permalink

    Node class for typed variables.

    Node class for typed variables. In particular for lambda-bound variables.

    varId

    is independent from nodeId, shouldn't be used as node id.

    eT

    type descriptor of the variable type

    Definition Classes
    Base
  157. case class WMethodDesc(wrapSpec: WrapSpec, method: RMethod) extends Scalan.MethodDesc with Product with Serializable

    Permalink

    Descriptor for a method of a wrapper class.

    Descriptor for a method of a wrapper class.

    wrapSpec

    The wrapping specification of the method.

    method

    The RMethod object representing the method.

    Definition Classes
    TypeDescs
  158. trait WOption[A] extends special.wrappers.WrappersModule.Node with special.wrappers.WrappersModule.Def[special.wrappers.WrappersModule.WOption[A]]

    Permalink
    Definition Classes
    WOptions
  159. class WOptionCls extends special.wrappers.WrappersModule.EntityObject

    Permalink
    Definition Classes
    WOptionsDefs
  160. trait WRType[A] extends special.wrappers.WrappersModule.Node with special.wrappers.WrappersModule.Def[special.wrappers.WrappersModule.WRType[A]]

    Permalink
    Definition Classes
    WRTypes
  161. class WRTypeCls extends special.wrappers.WrappersModule.EntityObject

    Permalink

    IR implementation for RType methods.

    IR implementation for RType methods. Prefix W means that this is implementation of IR wrapper over RType.

    Definition Classes
    WRTypesDefs
    See also

    EntityObject, WRType

  162. trait WRTypeCompanion extends AnyRef

    Permalink
    Definition Classes
    WRTypes
  163. trait WSpecialPredef extends special.wrappers.WrappersModule.Node with special.wrappers.WrappersModule.Def[special.wrappers.WrappersModule.WSpecialPredef]

    Permalink
    Definition Classes
    WSpecialPredefs
  164. trait WSpecialPredefCompanion extends AnyRef

    Permalink
    Definition Classes
    WSpecialPredefs
  165. type |[+A, +B] = Either[A, B]

    Permalink
    Definition Classes
    Base

Value Members

  1. def !!!(msg: String, e: Throwable, syms: Ref[_]*): Nothing

    Permalink
    Definition Classes
    Base
  2. def !!!(msg: String, syms: Ref[_]*): Nothing

    Permalink
    Definition Classes
    Base
  3. def !!!: Nothing

    Permalink

    Helper methods to throw errors

    Helper methods to throw errors

    Definition Classes
    Base
  4. final def !=(arg0: Any): Boolean

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

    Permalink
    Definition Classes
    AnyRef → Any
  6. object &&

    Permalink

    Logical AND between two pattern matches of the save value x.

    Logical AND between two pattern matches of the save value x. Can be used to construct patterns like case P1 && P2 => ...

    Definition Classes
    Base
  7. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  8. def ???(value: Any, syms: Ref[_]*): Nothing

    Permalink
    Definition Classes
    Base
  9. def ???: Nothing

    Permalink
    Definition Classes
    Base
  10. object AllOf

    Permalink

    Recognizer of SigmaDslBuilder.allOf method call in Graph-IR.

    Recognizer of SigmaDslBuilder.allOf method call in Graph-IR. This method call represents allOf predefined function.

    Definition Classes
    GraphBuilding
  11. object AllZk

    Permalink

    Recognizer of SigmaDslBuilder.allZK method call in Graph-IR.

    Recognizer of SigmaDslBuilder.allZK method call in Graph-IR. This method call represents allZK predefined function.

    Definition Classes
    GraphBuilding
  12. val And: EndoBinOp[Boolean]

    Permalink

    Logical AND binary operation.

    Logical AND binary operation.

    Definition Classes
    LogicalOps
  13. val AnyElement: Elem[Any]

    Permalink

    Type descriptor for Any, cannot be used implicitly.

    Type descriptor for Any, cannot be used implicitly.

    Definition Classes
    TypeDescs
  14. object AnyOf

    Permalink

    Recognizer of SigmaDslBuilder.anyOf method call in Graph-IR.

    Recognizer of SigmaDslBuilder.anyOf method call in Graph-IR. This method call represents anyOf predefined function.

    Definition Classes
    GraphBuilding
  15. object AnyZk

    Permalink

    Recognizer of SigmaDslBuilder.anyZK method call in Graph-IR.

    Recognizer of SigmaDslBuilder.anyZK method call in Graph-IR. This method call represents anyZK predefined function.

    Definition Classes
    GraphBuilding
  16. object AvlTree extends sigmastate.eval.SigmaLibrary.EntityObject

    Permalink
    Definition Classes
    SigmaDslDefs
  17. object BigInt extends sigmastate.eval.SigmaLibrary.EntityObject

    Permalink
    Definition Classes
    SigmaDslDefs
  18. val BinaryXorOp: EndoBinOp[Boolean]

    Permalink

    Logical XOR binary operation.

    Logical XOR binary operation.

    Definition Classes
    LogicalOps
  19. implicit val BooleanElement: Elem[Boolean]

    Permalink
    Definition Classes
    TypeDescs
  20. val BooleanToInt: UnOp[Boolean, Int]

    Permalink

    Boolean to Int conversion unary operation.

    Boolean to Int conversion unary operation.

    Definition Classes
    LogicalOps
  21. object Box extends sigmastate.eval.SigmaLibrary.EntityObject

    Permalink
    Definition Classes
    SigmaDslDefs
  22. implicit val ByteElement: Elem[Byte]

    Permalink
    Definition Classes
    TypeDescs
  23. val CM: sigma.impl.CollsDefs.Coll.CollMethods.type

    Permalink
    Definition Classes
    Library
  24. object Coll extends scalan.Library.CollCls

    Permalink
    Definition Classes
    CollsDefs
  25. object CollBuilder extends scalan.Library.EntityObject

    Permalink
    Definition Classes
    CollsDefs
  26. object ConstantLambda

    Permalink

    Matcher for lambdas which don't depend on their arguments (but can close over other expressions, unlike VeryConstantLambda).

    Matcher for lambdas which don't depend on their arguments (but can close over other expressions, unlike VeryConstantLambda).

    Definition Classes
    Functions
  27. object ConstantThunk

    Permalink
    Definition Classes
    Thunks
  28. object Context extends sigmastate.eval.SigmaLibrary.EntityObject

    Permalink
    Definition Classes
    SigmaDslDefs
  29. object Def

    Permalink
    Definition Classes
    Base
  30. val DefaultMirror: Mirror

    Permalink

    Default Mirror instance which is used in core IR methods.

    Default Mirror instance which is used in core IR methods.

    Definition Classes
    Transforming
  31. object Elem extends Serializable

    Permalink
    Definition Classes
    TypeDescs
  32. val EmptyArrayOfSym: Array[Sym]

    Permalink

    Immutable empty array of symbols, can be used to avoid unnecessary allocations.

    Immutable empty array of symbols, can be used to avoid unnecessary allocations.

    Definition Classes
    Base
  33. val EmptyDSetOfInt: Set[Int]

    Permalink

    Used internally in IR and should be used with care since it is mutable.

    Used internally in IR and should be used with care since it is mutable. At the same time, it is used in the hotspot and allows to avoid roughly tens of thousands of allocations per second. WARNING: Mutations of this instance can lead to undefined behavior.

    Attributes
    protected
    Definition Classes
    Base
  34. val EmptySeqOfSym: Seq[Sym]

    Permalink

    Immutable empty Seq, can be used to avoid unnecessary allocations.

    Immutable empty Seq, can be used to avoid unnecessary allocations.

    Definition Classes
    Base
  35. val EmptyTypeArgs: ListMap[String, (TypeDesc, Variance)]

    Permalink

    Since ListMap is immutable this empty map can be shared by all other maps created from it.

    Since ListMap is immutable this empty map can be shared by all other maps created from it.

    Definition Classes
    TypeDescs
  36. object EnvRep extends Serializable

    Permalink
    Definition Classes
    TypeDescs
  37. object ExpWithElem

    Permalink
    Definition Classes
    Base
  38. implicit final def FuncElemExtensions[A, B](eAB: Elem[(A) ⇒ B]): FuncElem[A, B]

    Permalink
    Definition Classes
    TypeDescs
  39. object GroupElement extends sigmastate.eval.SigmaLibrary.EntityObject

    Permalink
    Definition Classes
    SigmaDslDefs
  40. object HasSigmas

    Permalink

    Pattern match extractor which recognizes isValid nodes among items.

    Pattern match extractor which recognizes isValid nodes among items.

    returns

    None if there is no isValid node among items Some((bs, ss)) if there are isValid nodes where ss are SigmaProp arguments of those nodes and bs contains all the other nodes.

    Definition Classes
    GraphBuilding
  41. object Header extends sigmastate.eval.SigmaLibrary.EntityObject

    Permalink
    Definition Classes
    SigmaDslDefs
  42. def IF(cond: Ref[Boolean]): IfBranch

    Permalink

    If c then t else e construction with standard lazy evaluation of branches.

    If c then t else e construction with standard lazy evaluation of branches. The representation uses Thunk for each branch

    Definition Classes
    IfThenElse
  43. object IdentityLambda

    Permalink
    Definition Classes
    Functions
  44. implicit val IntElement: Elem[Int]

    Permalink
    Definition Classes
    TypeDescs
  45. final def IntZero: Ref[Int]

    Permalink

    Zero literal node, which is lazily created and can be efficiently reused.

    Zero literal node, which is lazily created and can be efficiently reused. Much faster alternative to (0: Rep[Int]) or toRep(0).

    Definition Classes
    Base
    Annotations
    @inline()
  46. object InvokeImpossible extends Scalan.InvokeResult with Product with Serializable

    Permalink

    Invocation is not possible, e.g.

    Invocation is not possible, e.g. when receiver doesn't implemented the method.

    Definition Classes
    MethodCalls
  47. object IsArithOp

    Permalink

    Recognizes arithmetic operation of graph IR and returns its ErgoTree code.

    Recognizes arithmetic operation of graph IR and returns its ErgoTree code.

    Definition Classes
    TreeBuilding
  48. object IsConstantDef

    Permalink

    Recognizes constants in graph IR.

    Recognizes constants in graph IR.

    Definition Classes
    TreeBuilding
  49. object IsContextProperty

    Permalink

    Recognizes context property in the graph IR and returns the corresponding ErgoTree node.

    Recognizes context property in the graph IR and returns the corresponding ErgoTree node.

    Definition Classes
    TreeBuilding
  50. object IsInternalDef

    Permalink

    Recognizes special graph IR nodes which typically have many usages, but for which no ValDefs should be created.

    Recognizes special graph IR nodes which typically have many usages, but for which no ValDefs should be created.

    Definition Classes
    TreeBuilding
  51. object IsLogicalBinOp

    Permalink

    Recognizes logical binary operation of graph IR and returns the corresponding ErgoTree builder function.

    Recognizes logical binary operation of graph IR and returns the corresponding ErgoTree builder function.

    Definition Classes
    TreeBuilding
  52. object IsLogicalUnOp

    Permalink

    Recognizes unary logical operation of graph IR and returns the corresponding ErgoTree builder function.

    Recognizes unary logical operation of graph IR and returns the corresponding ErgoTree builder function.

    Definition Classes
    TreeBuilding
  53. object IsNumericToInt

    Permalink
    Definition Classes
    Library
  54. object IsNumericToLong

    Permalink
    Definition Classes
    Library
  55. object IsNumericUnOp

    Permalink

    Recognizes unary numeric operation of graph IR and returns the corresponding ErgoTree builder function.

    Recognizes unary numeric operation of graph IR and returns the corresponding ErgoTree builder function.

    Definition Classes
    TreeBuilding
  56. object IsPair

    Permalink
    Definition Classes
    Tuples
  57. object IsRelationOp

    Permalink

    Recognizes comparison operation of graph IR and returns the corresponding ErgoTree builder function.

    Recognizes comparison operation of graph IR and returns the corresponding ErgoTree builder function.

    Definition Classes
    TreeBuilding
  58. object Lambda

    Permalink
    Definition Classes
    Functions
  59. val LazyAnyElement: Lazy[Elem[Any]]

    Permalink

    Predefined Lazy value saved here to be used in hotspot code.

    Predefined Lazy value saved here to be used in hotspot code.

    Definition Classes
    TypeDescs
  60. object Liftables

    Permalink

    Data type ST is liftable is there is Liftable[ST, T] instance for some type T.

    Data type ST is liftable is there is Liftable[ST, T] instance for some type T. Liftable typeclass allows to define which types can have values embedded as literals into graph IR.

    Definition Classes
    Base
  61. implicit val LongElement: Elem[Long]

    Permalink
    Definition Classes
    TypeDescs
  62. object MapTransformer extends Serializable

    Permalink
    Definition Classes
    Transforming
  63. object NoOwner extends Scalan.OwnerKind with Product with Serializable

    Permalink
    Definition Classes
    Base
  64. val NoRewriting: Rewriter

    Permalink

    Identity rewriter, i.e.

    Identity rewriter, i.e. doesn't change the graph when applied.

    Definition Classes
    Transforming
  65. val Not: EndoUnOp[Boolean]

    Permalink

    Logical NOT unary operation.

    Logical NOT unary operation.

    Definition Classes
    LogicalOps
  66. val Or: EndoBinOp[Boolean]

    Permalink

    Logical AND binary operation.

    Logical AND binary operation.

    Definition Classes
    LogicalOps
  67. implicit def OrderingToOrderingOps[T](x: T)(implicit n: ExactOrdering[T], et: Elem[T]): OrderingOpsCls[T]

    Permalink
    Definition Classes
    OrderingOps
  68. object Pair

    Permalink
    Definition Classes
    Tuples
  69. implicit final def PairElemExtensions[A, B](eAB: Elem[(A, B)]): PairElem[A, B]

    Permalink
    Definition Classes
    TypeDescs
  70. object Pass

    Permalink
    Definition Classes
    Transforming
  71. object PreHeader extends sigmastate.eval.SigmaLibrary.EntityObject

    Permalink
    Definition Classes
    SigmaDslDefs
  72. object ScalanOwner extends Scalan.OwnerKind with Product with Serializable

    Permalink
    Definition Classes
    Base
  73. implicit val ShortElement: Elem[Short]

    Permalink
    Definition Classes
    TypeDescs
  74. object SigmaDslBuilder extends sigmastate.eval.SigmaLibrary.EntityObject

    Permalink
    Definition Classes
    SigmaDslDefs
  75. object SigmaProp extends sigmastate.eval.SigmaLibrary.EntityObject

    Permalink
    Definition Classes
    SigmaDslDefs
  76. implicit val StringElement: Elem[String]

    Permalink
    Definition Classes
    TypeDescs
  77. implicit final def SumElemExtensions[A, B](eAB: Elem[|[A, B]]): SumElem[A, B]

    Permalink
    Definition Classes
    TypeDescs
  78. val Thunk: ThunkCompanion

    Permalink

    Allow expressions like Thunk { ... } to create new Thunks.

    Allow expressions like Thunk { ... } to create new Thunks.

    Definition Classes
    Thunks
  79. object ThunkDef

    Permalink
    Definition Classes
    Thunks
  80. final def TypeArgs(descs: (String, (TypeDesc, Variance))*): ListMap[String, (TypeDesc, Variance)]

    Permalink
    Definition Classes
    TypeDescs
  81. implicit val UnitElement: Elem[Unit]

    Permalink
    Definition Classes
    TypeDescs
  82. object VeryConstantLambda

    Permalink

    Matcher for lambdas which return staging-time constants.

    Matcher for lambdas which return staging-time constants. VeryConstantLambda(x) should be equivalent to ConstantLambda(Def(Const(x)))

    Definition Classes
    Functions
  83. object WOption extends special.wrappers.WrappersModule.WOptionCls

    Permalink
    Definition Classes
    WOptionsDefs
  84. object WRType extends special.wrappers.WrappersModule.WRTypeCls

    Permalink
    Definition Classes
    WRTypesDefs
  85. object WSpecialPredef extends special.wrappers.WrappersModule.EntityObject

    Permalink
    Definition Classes
    WSpecialPredefsDefs
  86. var _currentPass: Pass

    Permalink
    Definition Classes
    Transforming
  87. def alphaEqual(s1: Sym, s2: Sym): Boolean

    Permalink
    Definition Classes
    Functions
  88. def applyBinOp[A, R](op: BinOp[A, R], lhs: Ref[A], rhs: Ref[A]): Ref[R]

    Permalink

    Overridable constructor of a binary operation node.

    Overridable constructor of a binary operation node.

    Definition Classes
    UnBinOps
  89. def applyBinOpLazy[A, R](op: BinOp[A, R], lhs: Ref[A], rhs: Ref[Thunk[A]]): Ref[R]

    Permalink

    Overridable constructor of a binary operation node with lazy argument.

    Overridable constructor of a binary operation node with lazy argument.

    Definition Classes
    UnBinOps
  90. def applyUnOp[A, R](op: UnOp[A, R], arg: Ref[A]): Ref[R]

    Permalink

    Overridable constructor of an unary operation node.

    Overridable constructor of an unary operation node.

    Definition Classes
    UnBinOps
  91. final def asElem[T](d: TypeDesc): Elem[T]

    Permalink

    Helper type case method.

    Helper type case method.

    Definition Classes
    TypeDescs
    Annotations
    @inline()
  92. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  93. final def asRep[T](x: Ref[_]): Ref[T]

    Permalink

    Helper to type cast node references.

    Helper to type cast node references.

    Definition Classes
    Base
    Annotations
    @inline()
  94. def assertElem(value: Ref[_], elem: Elem[_], hint: ⇒ String): Unit

    Permalink
    Definition Classes
    TypeDescs
  95. def assertElem(value: Ref[_], elem: Elem[_]): Unit

    Permalink
    Definition Classes
    TypeDescs
  96. def assertEqualElems[A](e1: Elem[A], e2: Elem[A], m: ⇒ String): Unit

    Permalink
    Definition Classes
    TypeDescs
  97. def assertValueIdForOpCost[A, B](value: Ref[A], cost: Ref[B]): Unit

    Permalink
    Definition Classes
    UniversalOps
  98. def beginPass(pass: Pass): Unit

    Permalink

    Called to setup IR before the new pass is executed.

    Called to setup IR before the new pass is executed.

    Definition Classes
    Transforming
  99. def buildGraph[T](env: ScriptEnv, typed: SValue): Ref[(Context) ⇒ T]

    Permalink

    Translates the given typed expression to IR graph representing a function from Context to some type T.

    Translates the given typed expression to IR graph representing a function from Context to some type T.

    env

    contains values for each named constant used

    Definition Classes
    GraphBuilding
  100. def buildNode[T <: SType](ctx: Ref[Context], env: CompilingEnv, node: Value[T]): Ref[GraphBuilding.buildNode.T.WrappedType]

    Permalink

    Builds IR graph for the given ErgoTree expression node.

    Builds IR graph for the given ErgoTree expression node.

    ctx

    reference to a graph node that represents Context value passed to script interpreter

    env

    compilation environment which resolves variables to graph nodes

    node

    ErgoTree expression to be translated to graph

    returns

    reference to the graph node which represents node expression as part of in the IR graph data structure

    Attributes
    protected
    Definition Classes
    GraphBuilding
  101. def buildTree[T <: SType](f: Ref[(Context) ⇒ Any], constantsProcessing: Option[ConstantStore] = None): Value[T]

    Permalink

    Transforms the given function f from graph-based IR to ErgoTree expression.

    Transforms the given function f from graph-based IR to ErgoTree expression.

    f

    reference to the graph node representing function from Context.

    constantsProcessing

    if Some(store) is specified, then each constant is segregated and a placeholder is inserted in the resulting expression.

    returns

    expression of ErgoTree which corresponds to the function f

    Definition Classes
    TreeBuilding
  102. val builder: TransformingSigmaBuilder.type

    Permalink

    Should be specified in the final cake

    Should be specified in the final cake

    Definition Classes
    IRContextGraphBuilding
  103. val cacheElems: Boolean

    Permalink

    Whether IR type descriptors should be cached.

    Whether IR type descriptors should be cached.

    Definition Classes
    Base
  104. val cachePairs: Boolean

    Permalink

    Whether Tup instances should be cached.

    Whether Tup instances should be cached.

    Definition Classes
    Base
  105. final def cachedElemByClass[E <: Elem[_]](args: AnyRef*)(implicit clazz: RClass[E]): E

    Permalink

    Retrieve an instance of the given Elem class by either looking up in the cache or creating a new one.

    Retrieve an instance of the given Elem class by either looking up in the cache or creating a new one. We assume that all Elem instances are uniquely defined by (clazz, args)

    args

    arguments of Elem class constructor

    clazz

    Elem class

    Definition Classes
    TypeDescs
  106. def canBeInvoked(d: Def[_], m: RMethod, args: Array[AnyRef]): Boolean

    Permalink

    Method invocation checker.

    Method invocation checker.

    Attributes
    protected
    Definition Classes
    MethodCalls
  107. def checkTupleType[Ctx <: IRContext, T](ctx: Ctx)(e: GraphBuilding.checkTupleType.Ctx.Elem[_]): Unit

    Permalink

    Check the tuple type is valid.

    Check the tuple type is valid. In v5.x this code is taken from CheckTupleType validation rule which is no longer part of consensus.

    Definition Classes
    GraphBuilding
  108. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  109. def colBuilder: Ref[CollBuilder]

    Permalink
    Definition Classes
    GraphBuildingLibrary
    Annotations
    @inline()
  110. def compose[A, B, C](f: Ref[(B) ⇒ C], g: Ref[(A) ⇒ B]): Ref[(A) ⇒ C]

    Permalink

    Composition of two functions (in mathematical notation), where first g is applied and them f.

    Composition of two functions (in mathematical notation), where first g is applied and them f.

    Definition Classes
    Functions
  111. def constFun[A, B](x: Ref[B])(implicit e: Elem[A]): Ref[(A) ⇒ B]

    Permalink
    Definition Classes
    Functions
  112. final def container[F[_]](implicit arg0: Cont[F]): Cont[F]

    Permalink
    Definition Classes
    TypeDescs
  113. implicit final def containerElem[F[_], A](implicit arg0: Cont[F], arg1: Elem[A]): Elem[F[A]]

    Permalink
    Definition Classes
    TypeDescs
  114. def createDefinition[T](optScope: Nullable[ThunkScope], s: Ref[T], d: Def[T]): Ref[T]

    Permalink

    Create new definition entry in either given Thunk or in the global hash table.

    Create new definition entry in either given Thunk or in the global hash table.

    optScope

    optional thunk scope to put given definition

    s

    symbol refering to d

    d

    definition node to add to the scope of globally

    returns

    reference to d (which is s)

    Attributes
    protected
    Definition Classes
    Base
  115. def currentPass: Pass

    Permalink

    IR global current Pass, changes when the compier switches from one pass to the next one.

    IR global current Pass, changes when the compier switches from one pass to the next one. Should remain constant during the whole pass execution.

    Definition Classes
    Transforming
  116. val debugModeSanityChecks: Boolean

    Permalink

    Whether to perform extended checks of correctness, expected invariants and data consistency.

    Whether to perform extended checks of correctness, expected invariants and data consistency. NOTE: Since it may add substantial overhead, set it to false before using in production.

    Definition Classes
    Base
  117. def defCount: Int

    Permalink

    Returns a number of definitions added to this IR context.

    Returns a number of definitions added to this IR context.

    Definition Classes
    Base
  118. def def_unapply[T](e: Ref[T]): Nullable[Def[T]]

    Permalink
    Definition Classes
    Base
  119. def delayInvoke: Nothing

    Permalink
    Definition Classes
    MethodCalls
  120. def downcast[To](value: Ref[_])(implicit arg0: Elem[To]): Ref[To]

    Permalink
    Definition Classes
    UniversalOps
  121. val elemCache: AVHashMap[RClass[_], ElemCacheEntry]

    Permalink
    Attributes
    protected
    Definition Classes
    TypeDescs
  122. def elemToExactIntegral[T](e: Elem[T]): ExactIntegral[T]

    Permalink

    returns

    ExactIntegral instance for the given type

    Definition Classes
    GraphBuilding
  123. def elemToExactNumeric[T](e: Elem[T]): ExactNumeric[T]

    Permalink

    returns

    ExactNumeric instance for the given type

    Definition Classes
    GraphBuilding
  124. def elemToExactOrdering[T](e: Elem[T]): ExactOrdering[T]

    Permalink

    returns

    ExactOrdering instance for the given type

    Definition Classes
    GraphBuilding
  125. lazy val elemToExactOrderingMap: Map[Elem[_], ExactOrdering[_]]

    Permalink
    Attributes
    protected
    Definition Classes
    GraphBuilding
  126. def elemToSType[T](e: Elem[T]): SType

    Permalink

    Translates Elem descriptor to SType descriptor used in ErgoTree.

    Translates Elem descriptor to SType descriptor used in ErgoTree. Should be inverse to stypeToElem.

    Definition Classes
    GraphBuilding
  127. final def element[A](implicit ea: Elem[A]): Elem[A]

    Permalink
    Definition Classes
    TypeDescs
  128. final def emptyDBufferOfSym: Buffer[Sym]

    Permalink

    Create a new empty buffer around pre-allocated empty array.

    Create a new empty buffer around pre-allocated empty array. This method is preferred, rather that creating empty debox.Buffer directly because it allows to avoid allocation of the empty array.

    Definition Classes
    Base
    Annotations
    @inline()
  129. def emptyMatchSubst: Subst

    Permalink
    Definition Classes
    Functions
    Annotations
    @inline()
  130. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  131. def equalValues[A](x: Any, y: Any)(implicit eA: Elem[A]): Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    Equal
  132. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  133. def error(msg: String, srcCtx: Option[SourceContext]): Nothing

    Permalink
    Definition Classes
    GraphBuilding
  134. def error(msg: String): Nothing

    Permalink
    Definition Classes
    GraphBuilding
  135. implicit def extendThunkElement[T](elem: Elem[Thunk[T]]): ThunkElem[T]

    Permalink

    Implicit conversion (downcast) to access ThunkElem.eItem field.

    Implicit conversion (downcast) to access ThunkElem.eItem field.

    Definition Classes
    Thunks
  136. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  137. def findGlobalDefinition[T](d: Def[T]): Ref[T]

    Permalink

    Lookup definition in this IR context's hash table of definitions.

    Lookup definition in this IR context's hash table of definitions.

    returns

    node reference to an instance stored in hash table, which is equal to d and null if there is no definition which is equal to d

    Definition Classes
    Base
  138. def findIsProven[T](f: Ref[(Context) ⇒ T]): Option[Sym]

    Permalink

    Finds SigmaProp.isProven method calls in the given Lambda f

    Finds SigmaProp.isProven method calls in the given Lambda f

    Definition Classes
    IRContext
  139. def findOrCreateDefinition[T](d: Def[T], newSym: ⇒ Ref[T]): Ref[T]

    Permalink

    Lookup d in the heap of nodes.

    Lookup d in the heap of nodes. If the lookup is successfull, then its reference is returned. If the node is not found in the heap, then it is added and d.self reference is returned.

    d

    node to be added to the head of nodes

    newSym

    producer of the reference to be used as the reference to d node.

    returns

    return a reference to d node in the heap HOTSPOT:

    Definition Classes
    Base
  140. def forceThunkByMirror[A](thunk: Th[A], subst: MapTransformer = MapTransformer.empty()): Ref[A]

    Permalink

    Inlines the given thunk by cloning all its nodes and applying the given substitution (transformer).

    Inlines the given thunk by cloning all its nodes and applying the given substitution (transformer).

    thunk

    reference to the thunk node

    subst

    transformer to be applied for each mirrored (cloned) node.

    returns

    the reference to the graph node, which represents the resulting value of the thunk

    Definition Classes
    Thunks
  141. def forceThunkDefByMirror[A](th: ThunkDef[A], subst: MapTransformer = MapTransformer.empty()): Ref[A]

    Permalink

    Inlines the given thunk by cloning all its nodes and applying the given substitution (transformer).

    Inlines the given thunk by cloning all its nodes and applying the given substitution (transformer).

    th

    the thunk node

    subst

    transformer to be applied for each mirrored (cloned) node.

    returns

    the reference to the graph node, which represents the resulting value of the thunk

    Definition Classes
    Thunks
  142. final def freshId: Int

    Permalink

    Get next fresh node id

    Get next fresh node id

    Definition Classes
    Base
    Annotations
    @inline()
  143. final def freshSym[T](d: Def[T]): Ref[T]

    Permalink

    Lookup of create reference to the given definition.

    Lookup of create reference to the given definition. To lookup d.nodeId is used as the index in the _symbolTable. If Ref is not found in _symbolTable, then new Ref instance is created and stored in _symbolTable at d.nodeId index.

    Definition Classes
    Base
    Annotations
    @inline()
  144. implicit final def fun[A, B](f: (Ref[A]) ⇒ Ref[B])(implicit eA: LElem[A]): Ref[(A) ⇒ B]

    Permalink

    Executes given lambda to construct Lambda node.

    Executes given lambda to construct Lambda node. The function f can be called with any symbol and has an effect of growing a graph starting from the argument symbol. If a reference to Variable node is passed as argument, then the constructed graph nodes can be collected to Lambda node forming its body and schedule.

    f

    function which execution will create body nodes

    eA

    arguments type descriptor

    Definition Classes
    Functions
  145. implicit final def fun2[A, B, C](f: (Ref[A], Ref[B]) ⇒ Ref[C])(implicit eA: LElem[A], eB: LElem[B]): Ref[((A, B)) ⇒ C]

    Permalink
    Definition Classes
    Functions
  146. implicit final def funcElement[A, B](implicit ea: Elem[A], eb: Elem[B]): Elem[(A) ⇒ B]

    Permalink

    Implicitly defines element type for functions.

    Implicitly defines element type for functions.

    Definition Classes
    TypeDescs
  147. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  148. def getEntityObject(name: String): Nullable[EntityObject]

    Permalink
    Definition Classes
    Base
    Annotations
    @inline()
  149. def getOwnerKind(constructor: RConstructor[_]): OwnerKind

    Permalink

    Returns OwnerKind for the given constructor, using its first parameter.

    Returns OwnerKind for the given constructor, using its first parameter.

    Attributes
    protected
    Definition Classes
    Base
  150. final def getSourceValues(dataEnv: DataEnv, forWrapper: Boolean, stagedValues: AnyRef*): Seq[AnyRef]

    Permalink
    Definition Classes
    TypeDescs
  151. final def getSym(id: Int): Sym

    Permalink

    Lookup node reference by its id.

    Lookup node reference by its id. This is simple array access by index O(1) operation.

    Definition Classes
    Base
    Annotations
    @inline()
  152. implicit def groupElementToECPoint(g: sigma.GroupElement): EcPointType

    Permalink
    Attributes
    protected
    Definition Classes
    GraphBuilding
  153. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  154. def identityFun[A](implicit e: Elem[A]): Ref[(A) ⇒ A]

    Permalink
    Definition Classes
    Functions
  155. def ifThenElseLazy[T](cond: Ref[Boolean], thenp: ⇒ Ref[T], elsep: ⇒ Ref[T]): Ref[T]

    Permalink

    Constructs IfThenElse node wrapping by-name args into ThunkDef nodes.

    Constructs IfThenElse node wrapping by-name args into ThunkDef nodes.

    Definition Classes
    IfThenElse
  156. def integral[T](implicit arg0: ExactIntegral[T]): ExactIntegral[T]

    Permalink

    Return an ExactIntegral for a given type T.

    Return an ExactIntegral for a given type T.

    Definition Classes
    NumericOps
  157. def invokeUnlifted(e: Elem[_], mc: MethodCall, dataEnv: DataEnv): Any

    Permalink

    Invoke source type method corresponding to the given MethodCall node.

    Invoke source type method corresponding to the given MethodCall node. This method delegated the work to the given element instance.

    e

    type descriptor of receiver node

    mc

    IR node representing method invocation

    dataEnv

    environment where each symbol of 'mc' has associated data value

    returns

    data value returned from invoked method

    Definition Classes
    LibraryTypeDescs
  158. var isInlineThunksOnForce: Boolean

    Permalink

    Specifies thunk staging strategy with respect to handling thunk_force operation.

    Specifies thunk staging strategy with respect to handling thunk_force operation.

    Definition Classes
    Thunks
    See also

    thunk_force

  159. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  160. def isInvokeEnabled(d: Def[_], m: RMethod): Boolean

    Permalink

    Method invocation enabler.

    Method invocation enabler.

    returns

    true if the given method can be invoked on the given node.

    Definition Classes
    MethodCalls
  161. final def isOne[T](x: T, n: ExactNumeric[T]): Boolean

    Permalink

    Compares the given value with 1 of the given ExactNumeric instance.

    Compares the given value with 1 of the given ExactNumeric instance.

    Definition Classes
    NumericOps
    Annotations
    @inline()
  162. final def isZero[T](x: T, n: ExactNumeric[T]): Boolean

    Permalink

    Compares the given value with zero of the given ExactNumeric instance.

    Compares the given value with zero of the given ExactNumeric instance.

    Definition Classes
    NumericOps
    Annotations
    @inline()
  163. var keepOriginalFunc: Boolean

    Permalink

    Global flag governing lambda reification in fun and mkLambda.

    Global flag governing lambda reification in fun and mkLambda. If this flag is true then original f: Ref[A] => Ref[B] function is stored in Lambda node. As a consequence if f is not stored, then unfoldLambda is done by mirrorLambda.

    Definition Classes
    Functions
  164. var lambdaStack: List[Lambda[_, _]]

    Permalink
    Definition Classes
    Functions
  165. implicit def liftElem[T](eT: Elem[T]): Ref[WRType[T]]

    Permalink
    Definition Classes
    Library
  166. implicit def liftToRep[A](x: A)(implicit arg0: Elem[A]): Ref[A]

    Permalink
    Definition Classes
    Base
    Annotations
    @inline()
  167. def liftableFromElem[WT](eWT: Elem[WT]): Liftable[_, WT]

    Permalink

    Translates Elem to the corresponding Liftable instance.

    Translates Elem to the corresponding Liftable instance.

    eWT

    type descriptor

    Definition Classes
    GraphBuilding
  168. implicit def liftableThunk[ST, T](implicit lT: Liftable[ST, T]): Liftable[SThunk[ST], Thunk[T]]

    Permalink
    Definition Classes
    Thunks
  169. val lock: ReentrantLock

    Permalink

    Can be used to synchronize access to this IR object from multiple threads.

    Can be used to synchronize access to this IR object from multiple threads.

    Definition Classes
    IRContext
  170. def logWarn(msg: ⇒ String): Unit

    Permalink

    Log warning message to the log.

    Log warning message to the log. This is default and simple implementation, which can be overriden.

    Definition Classes
    Base
  171. def matchAny(a1: Any, a2: Any, allowInexactMatch: Boolean, subst: Subst): Nullable[Subst]

    Permalink
    Attributes
    protected
    Definition Classes
    Functions
  172. def matchDefs(d1: Def[_], d2: Def[_], allowInexactMatch: Boolean, subst: Subst): Nullable[Subst]

    Permalink
    Attributes
    protected
    Definition Classes
    ThunksFunctions
  173. def matchExps(s1: Sym, s2: Sym, allowInexactMatch: Boolean, subst: Subst): Nullable[Subst]

    Permalink
    Attributes
    protected
    Definition Classes
    Functions
  174. def matchIterators(i1: Iterator[_], i2: Iterator[_], allowInexactMatch: Boolean, subst: Subst): Nullable[Subst]

    Permalink
    Attributes
    protected
    Definition Classes
    Functions
  175. def mirrorApply[A, B](lam: Lambda[A, B], s: Ref[A]): Ref[B]

    Permalink
    Definition Classes
    Functions
  176. def mkApply[A, B](f: Ref[(A) ⇒ B], x: Ref[A]): Ref[B]

    Permalink
    Definition Classes
    Functions
  177. def mkLambda[A, B, C](f: (Ref[A], Ref[B]) ⇒ Ref[C])(implicit eA: LElem[A], eB: LElem[B]): Ref[((A, B)) ⇒ C]

    Permalink
    Definition Classes
    Functions
  178. def mkLambda[A, B, C](f: (Ref[A]) ⇒ (Ref[B]) ⇒ Ref[C])(implicit eA: LElem[A], eB: Elem[B]): Ref[(A) ⇒ (B) ⇒ C]

    Permalink
    Definition Classes
    Functions
  179. def mkLambda[A, B](f: (Ref[A]) ⇒ Ref[B], mayInline: Boolean, alphaEquality: Boolean, keepOriginalFunc: Boolean)(implicit eA: LElem[A]): Ref[(A) ⇒ B]

    Permalink
    Definition Classes
    Functions
  180. def mkMethodCall(receiver: Sym, method: RMethod, args: Seq[AnyRef], neverInvoke: Boolean, isAdapterCall: Boolean, resultElem: Elem[_]): Sym

    Permalink

    Creates new MethodCall node and returns its node ref.

    Creates new MethodCall node and returns its node ref.

    Definition Classes
    MethodCalls
  181. val nInitialDefs: Int

    Permalink
    Definition Classes
    Base
  182. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  183. def newObjEx[A](args: Any*)(implicit eA: Elem[A]): Ref[A]

    Permalink

    Creates new NewObject node and returns its node ref.

    Creates new NewObject node and returns its node ref.

    Definition Classes
    MethodCalls
  184. lazy val noConstPropagationPass: DefaultPass

    Permalink

    Pass configuration which is used to turn-off constant propagation.

    Pass configuration which is used to turn-off constant propagation.

    Definition Classes
    IRContext
    See also

    beginPass(noCostPropagationPass)

  185. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  187. def numeric[T](implicit arg0: ExactNumeric[T]): ExactNumeric[T]

    Permalink

    Return an ExactNumeric for a given type T.

    Return an ExactNumeric for a given type T.

    Definition Classes
    NumericOps
  188. val okMeasureOperationTime: Boolean

    Permalink
    Definition Classes
    GraphBuilding
  189. def okRegisterModules: Boolean

    Permalink

    Whether staged modules should be registered when cake is constructed and initialized.

    Whether staged modules should be registered when cake is constructed and initialized.

    Definition Classes
    Modules
  190. def onReset(): Unit

    Permalink

    Called during resetContext() operation after the core context state has been reset.

    Called during resetContext() operation after the core context state has been reset. Derived classes can override to define application specific initialization. Don't forget to call super method in the beginning of your overriding method.

    Attributes
    protected
    Definition Classes
    GraphBuildingLibraryBase
  191. def opCost(costedValue: Sym, args: Seq[Ref[Int]], opCost: Ref[Int]): Ref[Int]

    Permalink
    Definition Classes
    UniversalOps
  192. def opcodeToBinOp[A](opCode: Byte, eA: Elem[A]): BinOp[A, _]

    Permalink

    returns

    binary operation for the given opCode and type

    Definition Classes
    GraphBuilding
  193. def opcodeToEndoBinOp[T](opCode: Byte, eT: Elem[T]): EndoBinOp[T]

    Permalink

    returns

    binary operation for the given opCode and type

    Definition Classes
    GraphBuilding
  194. implicit final def pairElement[A, B](implicit ea: Elem[A], eb: Elem[B]): Elem[(A, B)]

    Permalink

    Implicitly defines element type for pairs.

    Implicitly defines element type for pairs.

    Definition Classes
    TypeDescs
  195. def patternMatch(s1: Sym, s2: Sym): Nullable[Subst]

    Permalink
    Definition Classes
    Functions
  196. def placeholder[T](implicit eT: LElem[T]): Ref[T]

    Permalink
    Definition Classes
    Base
    Annotations
    @inline()
  197. def propagateBinOp[T, R](op: BinOp[T, R], x: Ref[T], y: Ref[T]): Ref[R]

    Permalink

    Perform constant propagation if enabled and both arguments are Const.

    Perform constant propagation if enabled and both arguments are Const.

    returns

    null if propagation is not done

    Definition Classes
    DefRewriting
  198. def propagateUnOp[T, R](op: UnOp[T, R], x: Ref[T]): Ref[R]

    Permalink

    Perform constant propagation if enabled and argument is Const.

    Perform constant propagation if enabled and argument is Const.

    returns

    null if propagation is not done

    Definition Classes
    DefRewriting
  199. def registerEntityObject(name: String, obj: EntityObject): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Base
  200. def registerModule(moduleInfo: ModuleInfo): Unit

    Permalink

    Called once for each staged module during this cake initialization.

    Called once for each staged module during this cake initialization.

    Attributes
    protected
    Definition Classes
    Modules
  201. implicit def reifyObject[A](obj: Def[A]): Ref[A]

    Permalink

    Implicit injection of new definition (graph node) into universum of nodes with collapsing semantics.

    Implicit injection of new definition (graph node) into universum of nodes with collapsing semantics. If there exists node n in this IR such that obj equals n, then the value of n.self is returned, i.e. the new node obj is collapsed with already existing one. This has an effect of Common Subexpression Elimination (CSE) when an expression tree is transformed to the graph and identical subtrees are collapsed. After a reference to the node is obtained, global rewriting rules are examined and the reference may be replaced with a new one.

    Definition Classes
    Base
  202. def removeIsProven[T, R](f: (Ref[T]) ⇒ Ref[R]): (Ref[T]) ⇒ Ref[R]

    Permalink

    If f returns isValid graph node, then it is filtered out.

    If f returns isValid graph node, then it is filtered out.

    Definition Classes
    GraphBuilding
  203. implicit def repOrderingToOrderingOps[T](x: Ref[T])(implicit n: ExactOrdering[T]): OrderingOpsCls[T]

    Permalink
    Definition Classes
    OrderingOps
  204. implicit def repToThunk[A](block: Ref[A]): Ref[Thunk[A]]

    Permalink
    Definition Classes
    Thunks
  205. def resetContext(): Unit

    Permalink
    Definition Classes
    CollsDefsBase
  206. final def rewriteBinOp[A, R](op: BinOp[A, R], x: Ref[A], y: Ref[A]): Ref[_]

    Permalink

    Rewrites application of given binary operation to the given arguments.

    Rewrites application of given binary operation to the given arguments.

    returns

    null if no rewriting is defined.

    Definition Classes
    DefRewriting
  207. final def rewriteBoolConsts(lhs: Sym, rhs: Sym, ifTrue: (Sym) ⇒ Sym, ifFalse: (Sym) ⇒ Sym, ifEqual: (Sym) ⇒ Sym, ifNegated: (Sym) ⇒ Sym): Sym

    Permalink

    Helper method which defines rewriting rules with boolean constants.

    Helper method which defines rewriting rules with boolean constants.

    Definition Classes
    LogicalOps
    Annotations
    @inline()
  208. def rewriteDef[T](d: Def[T]): Ref[_]

    Permalink

    For performance reasons the patterns are organized in special (non-declarative) way.

    For performance reasons the patterns are organized in special (non-declarative) way. Unfortunately, this is less readable, but gives significant performance boost Look at comments to understand the logic of the rules.

    HOTSPOT: executed for each node of the graph, don't beautify.

    d

    node to be matched against rewrite patterns

    returns

    reference of new node if RW pattern is found and applied null if no rewriting is defined.

    Definition Classes
    GraphBuildingLibraryDefRewriting
  209. def rewriteNonInvokableMethodCall(mc: MethodCall): Ref[_]

    Permalink

    This method is called for each MethodCall node which is about to be added to the graph.

    This method is called for each MethodCall node which is about to be added to the graph. This means mc has been examined by all the rewrite rules, but has not need rewritten. Now, if this method returns null, then mc will be added to the graph. However, in this method, mc can be examined by a second set of RW rules (kind of lower priority rules). These rules kind of context dependent, because at this point we know that the first RW set didn't triggered any rewrite.

    Definition Classes
    MethodCalls
  210. final def rewriteUnOp[A, R](op: UnOp[A, R], x: Ref[A]): Ref[_]

    Permalink

    Rewrites application of given unary operation to the given argument.

    Rewrites application of given unary operation to the given argument.

    returns

    null if no rewriting is defined.

    Definition Classes
    DefRewriting
  211. var saveGraphsInFile: Boolean

    Permalink

    Whether to save calcF and costF graphs in the file given by ScriptNameProp environment variable

    Whether to save calcF and costF graphs in the file given by ScriptNameProp environment variable

    Definition Classes
    GraphBuilding
  212. def sigmaDslBuilder: Ref[SigmaDslBuilder]

    Permalink

    During compilation represent a global value Global, see also SGlobal type.

    During compilation represent a global value Global, see also SGlobal type.

    Definition Classes
    GraphBuildingSigmaLibrary
    Annotations
    @inline()
  213. val sigmaDslBuilderValue: CSigmaDslBuilder.type

    Permalink

    The value of Global ErgoTree operation

    The value of Global ErgoTree operation

    Definition Classes
    IRContext
  214. def sizeOf[T](value: Ref[T]): Ref[Long]

    Permalink
    Definition Classes
    UniversalOps
  215. def specialPredef: Ref[WSpecialPredefCompanionCtor]

    Permalink
    Definition Classes
    Library
  216. def stagingExceptionMessage(message: String, syms: Seq[Ref[_]]): String

    Permalink

    Prettyprint exception message

    Prettyprint exception message

    Attributes
    protected
    Definition Classes
    Base
  217. def stypeToElem[T <: SType](t: T): Elem[GraphBuilding.stypeToElem.T.WrappedType]

    Permalink

    Translates SType descriptor to Elem descriptor used in graph IR.

    Translates SType descriptor to Elem descriptor used in graph IR. Should be inverse to elemToSType.

    Definition Classes
    GraphBuilding
  218. var substFromCostTable: Boolean

    Permalink

    Whether to create CostOf nodes or substutute costs from CostTable as constants in the graph.

    Whether to create CostOf nodes or substutute costs from CostTable as constants in the graph. true - substitute; false - create CostOf nodes

    Definition Classes
    GraphBuilding
  219. implicit final def sumElement[A, B](implicit ea: Elem[A], eb: Elem[B]): Elem[|[A, B]]

    Permalink

    Implicitly defines element type for sum types.

    Implicitly defines element type for sum types.

    Definition Classes
    TypeDescs
  220. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  221. def throwInvocationException(whatFailed: String, cause: Throwable, receiver: Sym, m: RMethod, args: Seq[Any]): Nothing

    Permalink
    Definition Classes
    MethodCalls
  222. implicit val thunkCont: Cont[Thunk]

    Permalink

    Thunk is an instance of container type class Cont.

    Thunk is an instance of container type class Cont.

    Definition Classes
    Thunks
  223. implicit def thunkElement[T](implicit eItem: Elem[T]): Elem[Thunk[T]]

    Permalink

    Implicitly defines element type for thunks (aka lazy values).

    Implicitly defines element type for thunks (aka lazy values).

    Definition Classes
    Thunks
  224. val thunkStack: ThunkStack

    Permalink
    Attributes
    protected
    Definition Classes
    Thunks
  225. def thunk_create[A](block: ⇒ Ref[A]): Ref[Thunk[A]]

    Permalink

    Constructs a new thunk node by executing the given block and collecting all the graph node created along the way.

    Constructs a new thunk node by executing the given block and collecting all the graph node created along the way. This methods: 1) starts a new nested ThunkScope, 2) executes the block to obtain resulting graph node 3) schedule thunk body for execution order 4) adds a new ThunkDef node and returns its reference.

    returns

    a reference to the newly created ThunkDef node

    Definition Classes
    Thunks
  226. def thunk_force[A](t: Th[A]): Ref[A]

    Permalink

    Logical force of the thunk.

    Logical force of the thunk. Depending on isInlineThunksOnForce it either inlines the thunk body or creates a new ThunkForce node.

    returns

    a reference to the graph node, which represent the result of the thunk's evaluation.

    Definition Classes
    Thunks
  227. def thunk_map[A, B](t: Th[A], f: Ref[(A) ⇒ B]): Th[B]

    Permalink
    Definition Classes
    Thunks
  228. def thunk_map1[A, B](t: Th[A], f: (Ref[A]) ⇒ Ref[B]): Th[B]

    Permalink
    Definition Classes
    Thunks
  229. def toExp[T](d: Def[T], newSym: ⇒ Ref[T]): Ref[T]

    Permalink

    Updates the universe of symbols and definitions, then rewrites until fix-point

    Updates the universe of symbols and definitions, then rewrites until fix-point

    d

    A new graph node to add to the universe

    newSym

    A symbol that will be used if d doesn't exist in the universe

    returns

    The symbol of the graph which is semantically(up to rewrites) equivalent to d

    Attributes
    protected[scalan]
    Definition Classes
    Base
  230. implicit final def toLazyElem[A](implicit eA: Elem[A]): LElem[A]

    Permalink
    Definition Classes
    TypeDescs
  231. def toRep[A](x: A)(implicit eA: Elem[A]): Ref[A]

    Permalink

    Lifting of data values to IR nodes.

    Lifting of data values to IR nodes.

    Definition Classes
    Base
  232. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  233. def transformProductParam(x: Any, t: Transformer): Any

    Permalink

    Transforms this object into new one by applying t to every Ref inside its structure.

    Transforms this object into new one by applying t to every Ref inside its structure. The structure is build out of Seq, Array, Option and Def values. Other structure items remain unchanged and copied to the new instance. HOTSPOT: don't beautify the code

    Attributes
    protected
    Definition Classes
    Base
  234. def tryConvert[From, To](eFrom: Elem[From], eTo: Elem[To], x: Ref[Def[_]], conv: Ref[(From) ⇒ To]): Ref[To]

    Permalink
    Definition Classes
    UniversalOps
  235. val tuplesCache: AVHashMap[Ref[_], (Ref[_], Ref[_])]

    Permalink
    Definition Classes
    Tuples
  236. def unfoldLambda[A, B](f: Ref[(A) ⇒ B], x: Ref[A]): Ref[B]

    Permalink
    Definition Classes
    Functions
  237. def unfoldLambda[A, B](lam: Lambda[A, B], x: Ref[A]): Ref[B]

    Permalink
    Definition Classes
    Functions
  238. var unfoldWithOriginalFunc: Boolean

    Permalink

    Turns on/off lambda unfolding using original function f stored in the Lambda node.

    Turns on/off lambda unfolding using original function f stored in the Lambda node. If this flag is false then this function cannot be used even if it is present in the node.

    Definition Classes
    Functions
  239. def unrefDelegate[T <: AnyRef](x: Ref[T])(implicit ct: ClassTag[T]): T

    Permalink

    Create delegate instance suitable for method invocation.

    Create delegate instance suitable for method invocation. It is used when T is a class or a trait and the node referred by x doesn't conform to T. This method returns dynamically constructed instance, which conforms to T. Whenever a method of T is called on that instance, the call is intercepted and DelegatedInterceptionHandler.invoke method is called, then a new MethodCall can be constructed (which is befavior by default).

    Attributes
    protected
    Definition Classes
    MethodCalls
  240. def unzipPair[A, B](p: Ref[(A, B)]): (Ref[A], Ref[B])

    Permalink
    Definition Classes
    Tuples
  241. def upcast[To](value: Ref[_])(implicit arg0: Elem[To]): Ref[To]

    Permalink
    Definition Classes
    UniversalOps
  242. def upcastFun[A, B >: A](implicit arg0: Elem[A]): Ref[(A) ⇒ B]

    Permalink
    Definition Classes
    Functions
  243. final def updateSymbolTable[T](s: Ref[T], d: Def[T]): Ref[T]

    Permalink

    Create or find symbol (node Ref) which refers to the given node in the table of all created symbols.

    Create or find symbol (node Ref) which refers to the given node in the table of all created symbols. The d.nodeId is the index in the _symbolTable which is DBuffer (backed by Array)

    returns

    new of existing symbol HOTSPOT: the method should be allocation-free (make it sure by examining the generated Java code)

    Definition Classes
    Base
  244. var useAlphaEquality: Boolean

    Permalink

    Global lambda equality mode used by default.

    Global lambda equality mode used by default. It is used in fun and fun2 lambda builders. If this flag is true then Lambda nodes are equal if they are the same up to renaming of symbols. (see Lambda.equals()). Each Lambda node has independent equality mode flag which is setup in the constructor.

    Definition Classes
    Functions
  245. final def valueFromRep[A](x: Ref[A]): A

    Permalink

    Extract data value from Const node or throw an exception.

    Extract data value from Const node or throw an exception.

    Definition Classes
    Base
    Annotations
    @inline()
  246. def variable[T](implicit eT: LElem[T]): Ref[T]

    Permalink
    Definition Classes
    Base
    Annotations
    @inline()
  247. def verifyIsProven[T](f: Ref[(Context) ⇒ T]): Try[Unit]

    Permalink

    Checks that if SigmaProp.isProven method calls exists in the given Lambda's schedule, then it is the last operation.

    Checks that if SigmaProp.isProven method calls exists in the given Lambda's schedule, then it is the last operation.

    Definition Classes
    IRContext
  248. implicit lazy val wRTypeAnyElement: Elem[WRType[Any]]

    Permalink
    Definition Classes
    SigmaLibrary
  249. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  252. implicit def zipPair[A, B](p: (Ref[A], Ref[B])): Ref[(A, B)]

    Permalink
    Definition Classes
    Tuples

Inherited from IRContext

Inherited from GraphBuilding

Inherited from TreeBuilding

Inherited from SigmaLibrary

Inherited from SigmaDslModule

Inherited from SigmaDslDefs

Inherited from SigmaDsl

Inherited from WrappersModule

Inherited from Library

Inherited from CollsModule

Inherited from CollsDefs

Inherited from Colls

Inherited from WrappersModule

Inherited from WRTypesModule

Inherited from WRTypesDefs

Inherited from WRTypes

Inherited from WOptionsModule

Inherited from WOptionsDefs

Inherited from WOptions

Inherited from WSpecialPredefsModule

Inherited from WSpecialPredefsDefs

Inherited from WSpecialPredefs

Inherited from Scalan

Inherited from DefRewriting

Inherited from Modules

Inherited from Entities

Inherited from Thunks

Inherited from IfThenElse

Inherited from Functions

Inherited from ProgramGraphs

Inherited from AstGraphs

Inherited from Transforming

Inherited from UniversalOps

Inherited from Equal

Inherited from OrderingOps

Inherited from LogicalOps

Inherited from UnBinOps

Inherited from NumericOps

Inherited from Tuples

Inherited from MethodCalls

Inherited from TypeDescs

Inherited from Base

Inherited from AnyRef

Inherited from Any

Ungrouped