trait CompiletimeCosting extends Scalan with RuntimeCosting
- Alphabetic
- By Inheritance
- CompiletimeCosting
- RuntimeCosting
- CostingRules
- SigmaLibrary
- CostedObjectsModule
- CostedObjectsDefs
- CostedObjects
- SigmaDslModule
- SigmaDslDefs
- SigmaDsl
- WrappersModule
- Library
- CostedOptionsModule
- CostedOptionsDefs
- CostedOptions
- MonoidInstancesModule
- MonoidInstancesDefs
- MonoidInstances
- MonoidsModule
- MonoidsDefs
- Monoids
- ConcreteCostsModule
- ConcreteCostsDefs
- ConcreteCosts
- ConcreteSizesModule
- ConcreteSizesDefs
- ConcreteSizes
- CostsModule
- CostsDefs
- Costs
- SizesModule
- SizesDefs
- Sizes
- CollsModule
- CollsDefs
- Colls
- WrappersSpecModule
- WrappersSpecDefs
- WrappersSpec
- WrappersModule
- WRTypesModule
- WRTypesDefs
- WRTypes
- WOptionsModule
- WOptionsDefs
- WOptions
- WSpecialPredefsModule
- WSpecialPredefsDefs
- WSpecialPredefs
- Scalan
- DefRewriting
- Modules
- Entities
- Thunks
- IfThenElse
- Functions
- ProgramGraphs
- AstGraphs
- Transforming
- UniversalOps
- Equal
- OrderingOps
- LogicalOps
- UnBinOps
- NumericOps
- Tuples
- MethodCalls
- GraphVizExport
- TypeDescs
- Base
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
abstract
class
BaseDef[+T] extends Scalan.Node with Scalan.Def[T]
Base class for most predefined operations.
Base class for most predefined operations.
- Definition Classes
- Base
-
abstract
class
CompanionDef[T] extends Scalan.Node with Scalan.Def[T]
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
-
case class
Const[T](x: T)(implicit eT: Scalan.Elem[T]) extends Scalan.BaseDef[T] with Product with Serializable
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
whenElem[T]
is defined, butLiftable[_,T]
is not, i.e. for non-liftable types.- x
literal value
- eT
type descriptor of IR type T
- Definition Classes
- Base
-
trait
Def[+T] extends Scalan.Node
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
-
class
EntityObject extends AnyRef
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
-
case class
EntityObjectOwner(obj: Scalan.EntityObject) extends Scalan.OwnerKind with Product with Serializable
- Definition Classes
- Base
-
abstract
class
Node extends Product
Base class for all IR nodes/operations/definitions.
Base class for all IR nodes/operations/definitions.
- Definition Classes
- Base
-
class
NotImplementedStagingException extends Scalan.StagingException
- Definition Classes
- Base
-
sealed abstract
class
OwnerKind extends AnyRef
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 EntityObjectVariants 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
-
case class
Placeholder[T](eT: Scalan.LElem[T]) extends Scalan.Node with Scalan.Def[T] with Product with Serializable
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
-
abstract
class
Ref[+T] extends AnyRef
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 viaelem
property.- Definition Classes
- Base
- See also
SingleRep
-
final
class
SingleRef[+T] extends Scalan.Ref[T]
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
-
class
StagingException extends RuntimeException
- Definition Classes
- Base
-
abstract
class
Transformer extends AnyRef
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
-
case class
Variable[T](varId: Int)(implicit eT: Scalan.LElem[T]) extends Scalan.Node with Scalan.Def[T] with Product with Serializable
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
-
abstract
class
CompanionElem[T] extends Scalan.Elem[T]
Base class for all descriptors of staged companions
Base class for all descriptors of staged companions
- Definition Classes
- Entities
-
trait
ConcreteElem[TData, TClass] extends Scalan.EntityElem[TClass]
Base class for all descriptors of staged classes.
Base class for all descriptors of staged classes.
- Definition Classes
- Entities
-
trait
ConcreteElem1[A, TData, TClass, C[_]] extends Scalan.EntityElem1[A, TClass, C]
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
-
abstract
class
EntityElem[A] extends Scalan.Elem[A] with Equals
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
-
abstract
class
EntityElem1[A, To, C[_]] extends Scalan.EntityElem[To]
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
-
case class
InvokeFailure(exception: Throwable) extends Scalan.InvokeResult with Product with Serializable
Exception thrown during MethodCall invocation.
Exception thrown during MethodCall invocation.
- Definition Classes
- MethodCalls
-
sealed abstract
class
InvokeResult extends AnyRef
Result of MethodCall invocation.
Result of MethodCall invocation.
- Definition Classes
- MethodCalls
- See also
tryInvoke
-
case class
InvokeSuccess(result: Scalan.Ref[_]) extends Scalan.InvokeResult with Product with Serializable
Successful MethodCall invocation with the given result.
Successful MethodCall invocation with the given result.
- Definition Classes
- MethodCalls
-
case class
MethodCall extends Scalan.Node with Scalan.Def[Any] with Product with Serializable
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
-
case class
NewObject[A](eA: Scalan.Elem[A], args: Seq[Any]) extends Scalan.BaseDef[A] with Product with Serializable
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
-
abstract
class
BaseElem[A] extends Scalan.Elem[A] with Serializable with Equals
- Definition Classes
- TypeDescs
-
class
BaseElemLiftable[A] extends Scalan.BaseElem[A]
Type descriptor for primitive types.
Type descriptor for primitive types. There is implicit
val
declaration for each primitive type.- Definition Classes
- TypeDescs
-
abstract
class
Cont[F[_]] extends Scalan.TypeDesc
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 typesT
,F[T]
etc.- Definition Classes
- TypeDescs
- Annotations
- @implicitNotFound( "No Cont available for ${F}." )
-
abstract
class
Elem[A] extends Scalan.TypeDesc
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}." )
-
class
ElemCacheEntry extends AnyRef
Elements cache information for each Elem class.
Elements cache information for each Elem class.
- Definition Classes
- TypeDescs
-
case class
EnvRep[A](run: (Scalan.DataEnv) ⇒ (Scalan.DataEnv, Scalan.Ref[A])) extends Product with Serializable
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
-
case class
FuncElem[A, B](eDom: Scalan.Elem[A], eRange: Scalan.Elem[B]) extends Scalan.Elem[(A) ⇒ B] with Product with Serializable
Type descriptor for
A => B
type where descriptors forA
andB
are given as arguments.Type descriptor for
A => B
type where descriptors forA
andB
are given as arguments.- Definition Classes
- TypeDescs
-
trait
Functor[F[_]] extends Scalan.Cont[F]
- Definition Classes
- TypeDescs
-
sealed abstract
class
MethodDesc extends AnyRef
- Definition Classes
- TypeDescs
-
case class
PairElem[A, B](eFst: Scalan.Elem[A], eSnd: Scalan.Elem[B]) extends Scalan.Elem[(A, B)] with Product with Serializable
Type descriptor for
(A, B)
type where descriptors forA
andB
are given as arguments.Type descriptor for
(A, B)
type where descriptors forA
andB
are given as arguments.- Definition Classes
- TypeDescs
-
case class
RMethodDesc(method: Method) extends Scalan.MethodDesc with Product with Serializable
- Definition Classes
- TypeDescs
-
case class
SumElem[A, B](eLeft: Scalan.Elem[A], eRight: Scalan.Elem[B]) extends Scalan.Elem[Scalan.|[A, B]] with Product with Serializable
Type descriptor for
A | B
type where descriptors forA
andB
are given as arguments.Type descriptor for
A | B
type where descriptors forA
andB
are given as arguments.- Definition Classes
- TypeDescs
-
abstract
class
TypeDesc extends Serializable
- Definition Classes
- TypeDescs
-
case class
WMethodDesc(wrapSpec: WrapSpec, method: Method) extends Scalan.MethodDesc with Product with Serializable
- Definition Classes
- TypeDescs
-
case class
GraphFile(file: File, fileType: String) extends Product with Serializable
- Definition Classes
- GraphVizExport
-
implicit
class
SeqExpExtensionsForEmitGraph extends AnyRef
- Definition Classes
- GraphVizExport
-
implicit
class
EqualOps[A] extends AnyRef
Extension methods to construct ApplyBinOp nodes
Extension methods to construct ApplyBinOp nodes
- Definition Classes
- Equal
-
case class
Equals[A]()(implicit evidence$1: Scalan.Elem[A]) extends Scalan.BinOp[A, Boolean] with Product with Serializable
Binary operation representing structural equality between arguments.
Binary operation representing structural equality between arguments.
- Definition Classes
- Equal
-
case class
NotEquals[A]()(implicit evidence$2: Scalan.Elem[A]) extends Scalan.BinOp[A, Boolean] with Product with Serializable
Binary operation representing structural inequality between arguments.
Binary operation representing structural inequality between arguments.
- Definition Classes
- Equal
-
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
- Definition Classes
- Functions
-
implicit
class
FuncExtensions[A, B] extends AnyRef
- Definition Classes
- Functions
-
class
Lambda[A, B] extends Scalan.AstGraph with Scalan.Def[(A) ⇒ B]
Represent lambda expression as IR node.
Represent lambda expression as IR node.
- Definition Classes
- Functions
-
implicit
class
LambdaOps[A, B] extends AnyRef
- Definition Classes
- Functions
-
class
LambdaStack extends AnyRef
- Definition Classes
- Functions
-
class
ElseIfBranch[T] extends AnyRef
Defines syntax available after
IF (cond) THEN thenp ELSEIF (cond1)
Defines syntax available after
IF (cond) THEN thenp ELSEIF (cond1)
- Definition Classes
- IfThenElse
-
class
IfBranch extends AnyRef
Defines syntax available after
IF (cond)
Defines syntax available after
IF (cond)
- Definition Classes
- IfThenElse
-
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
IR node to represent IF condition with lazy branches.
IR node to represent IF condition with lazy branches.
- Definition Classes
- IfThenElse
-
class
ThenIfBranch[T] extends AnyRef
Defines syntax available after
IF (cond) THEN thenp
Defines syntax available after
IF (cond) THEN thenp
- Definition Classes
- IfThenElse
-
implicit
class
RepBooleanOps extends AnyRef
- Definition Classes
- LogicalOps
-
case class
Abs[T](n: ExactNumeric[T])(implicit evidence$8: Scalan.Elem[T]) extends Scalan.UnOp[T, T] with Product with Serializable
- Definition Classes
- NumericOps
-
class
DivOp[T] extends Scalan.EndoBinOp[T]
- Definition Classes
- NumericOps
-
case class
IntegralDivide[T](i: ExactIntegral[T])(implicit elem: Scalan.Elem[T]) extends Scalan.DivOp[T] with Product with Serializable
- Definition Classes
- NumericOps
-
case class
IntegralMod[T](i: ExactIntegral[T])(implicit elem: Scalan.Elem[T]) extends Scalan.DivOp[T] with Product with Serializable
- Definition Classes
- NumericOps
-
implicit
class
IntegralOpsCls[T] extends AnyRef
- Definition Classes
- NumericOps
-
case class
NumericMinus[T](n: ExactNumeric[T])(implicit evidence$4: Scalan.Elem[T]) extends Scalan.EndoBinOp[T] with Product with Serializable
- Definition Classes
- NumericOps
-
case class
NumericNegate[T](n: ExactNumeric[T])(implicit evidence$7: Scalan.Elem[T]) extends Scalan.UnOp[T, T] with Product with Serializable
- Definition Classes
- NumericOps
-
implicit
class
NumericOpsCls[T] extends AnyRef
- Definition Classes
- NumericOps
-
case class
NumericPlus[T](n: ExactNumeric[T])(implicit evidence$3: Scalan.Elem[T]) extends Scalan.EndoBinOp[T] with Product with Serializable
- Definition Classes
- NumericOps
-
case class
NumericTimes[T](n: ExactNumeric[T])(implicit evidence$5: Scalan.Elem[T]) extends Scalan.EndoBinOp[T] with Product with Serializable
- Definition Classes
- NumericOps
-
case class
NumericToDouble[T](n: ExactNumeric[T]) extends Scalan.UnOp[T, Double] with Product with Serializable
- Definition Classes
- NumericOps
-
case class
NumericToFloat[T](n: ExactNumeric[T]) extends Scalan.UnOp[T, Float] with Product with Serializable
- Definition Classes
- NumericOps
-
case class
NumericToInt[T](n: ExactNumeric[T]) extends Scalan.UnOp[T, Int] with Product with Serializable
- Definition Classes
- NumericOps
-
case class
NumericToLong[T](n: ExactNumeric[T]) extends Scalan.UnOp[T, Long] with Product with Serializable
- Definition Classes
- NumericOps
-
case class
OrderingCompare[T](ord: ExactOrdering[T]) extends Scalan.BinOp[T, Int] with Product with Serializable
- Definition Classes
- OrderingOps
-
case class
OrderingGT[T](ord: ExactOrdering[T]) extends Scalan.BinOp[T, Boolean] with Product with Serializable
- Definition Classes
- OrderingOps
-
case class
OrderingGTEQ[T](ord: ExactOrdering[T]) extends Scalan.BinOp[T, Boolean] with Product with Serializable
- Definition Classes
- OrderingOps
-
case class
OrderingLT[T](ord: ExactOrdering[T]) extends Scalan.BinOp[T, Boolean] with Product with Serializable
- Definition Classes
- OrderingOps
-
case class
OrderingLTEQ[T](ord: ExactOrdering[T]) extends Scalan.BinOp[T, Boolean] with Product with Serializable
- Definition Classes
- OrderingOps
-
case class
OrderingMax[T](ord: ExactOrdering[T])(implicit evidence$1: Scalan.Elem[T]) extends Scalan.BinOp[T, T] with Product with Serializable
- Definition Classes
- OrderingOps
-
case class
OrderingMin[T](ord: ExactOrdering[T])(implicit evidence$2: Scalan.Elem[T]) extends Scalan.BinOp[T, T] with Product with Serializable
- Definition Classes
- OrderingOps
-
class
OrderingOpsCls[T] extends AnyRef
- Definition Classes
- OrderingOps
-
case class
LiftableThunk[ST, T](lT: Base.Liftables.Liftable[ST, T]) extends Base.Liftables.Liftable[Scalan.SThunk[ST], Scalan.Thunk[T]] with Product with Serializable
- Definition Classes
- Thunks
-
implicit
class
RepThunkOps[T] extends AnyRef
- Definition Classes
- Thunks
-
trait
Thunk[+A] extends AnyRef
- Definition Classes
- Thunks
-
class
ThunkCompanion extends AnyRef
- Definition Classes
- Thunks
-
case class
ThunkConst[ST, T](constValue: Scalan.SThunk[ST], lT: Base.Liftables.Liftable[ST, T]) extends Scalan.BaseDef[Scalan.Thunk[T]] with LiftedConst[Scalan.SThunk[ST], Scalan.Thunk[T]] with Product with Serializable
- Definition Classes
- Thunks
-
class
ThunkDef[A] extends Scalan.AstGraph with Scalan.Def[Scalan.Thunk[A]]
- Definition Classes
- Thunks
-
case class
ThunkElem[A](eItem: Scalan.Elem[A]) extends Scalan.EntityElem1[A, Scalan.Thunk[A], Scalan.Thunk] with Product with Serializable
- Definition Classes
- Thunks
-
case class
ThunkForce[A](thunk: Scalan.Ref[Scalan.Thunk[A]]) extends Scalan.Node with Scalan.Def[A] with Product with Serializable
- Definition Classes
- Thunks
-
class
ThunkScope extends AnyRef
- Definition Classes
- Thunks
-
class
ThunkStack extends AnyRef
- Definition Classes
- Thunks
-
case class
First[A, B](pair: Scalan.Ref[(A, B)]) extends Scalan.Node with Scalan.Def[A] with Product with Serializable
- Definition Classes
- Tuples
-
implicit
class
ListOps[A, B] extends AnyRef
- Definition Classes
- Tuples
-
case class
Second[A, B](pair: Scalan.Ref[(A, B)]) extends Scalan.Node with Scalan.Def[B] with Product with Serializable
- Definition Classes
- Tuples
-
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
- Definition Classes
- Tuples
-
implicit
class
TupleOps2[A, B] extends AnyRef
- Definition Classes
- Tuples
-
implicit
class
TupleOps3[A, B, C] extends AnyRef
- Definition Classes
- Tuples
-
implicit
class
TupleOps4[A, B, C, D] extends AnyRef
- Definition Classes
- Tuples
-
implicit
class
TupleOps5[A, B, C, D, E] extends AnyRef
- Definition Classes
- Tuples
-
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
- Definition Classes
- UnBinOps
-
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
- Definition Classes
- UnBinOps
-
case class
ApplyUnOp[A, R](op: Scalan.UnOp[A, R], arg: Scalan.Ref[A]) extends Scalan.BaseDef[R] with Product with Serializable
- Definition Classes
- UnBinOps
-
class
BinOp[A, R] extends AnyRef
- Definition Classes
- UnBinOps
-
class
UnOp[A, R] extends AnyRef
- Definition Classes
- UnBinOps
-
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
- Definition Classes
- UniversalOps
-
case class
Downcast[From, To](input: Scalan.Ref[From], eTo: Scalan.Elem[To]) extends Scalan.BaseDef[To] with Product with Serializable
- Definition Classes
- UniversalOps
-
case class
HashCode[A]() extends Scalan.UnOp[A, Int] with Product with Serializable
- Definition Classes
- UniversalOps
-
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
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 addresCost
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 xis accumulated both into
cost of yand into
cost of z, so in the
cost of resit 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
-
implicit
class
RepUniversalOps[A] extends AnyRef
- Definition Classes
- UniversalOps
-
case class
SizeOf[T](value: Scalan.Ref[T]) extends Scalan.BaseDef[Long] with Product with Serializable
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
-
case class
ToString[A]() extends Scalan.UnOp[A, String] with Product with Serializable
- Definition Classes
- UniversalOps
-
case class
Upcast[From, To](input: Scalan.Ref[From], eTo: Scalan.Elem[To]) extends Scalan.BaseDef[To] with Product with Serializable
- Definition Classes
- UniversalOps
-
abstract
class
AstGraph extends Scalan.Node
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 toroots
.- Definition Classes
- AstGraphs
-
case class
GraphNode(sym: Scalan.Sym, usages: Buffer[Int]) extends Product with Serializable
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
-
class
PGraphUsages extends DFunc[Int, Buffer[Int]]
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
-
case class
ProgramGraph(roots: Seq[Scalan.Sym], mapping: Nullable[Scalan.Transformer], filterNode: Nullable[(Scalan.Sym) ⇒ Boolean]) extends Scalan.AstGraph with Product with Serializable
Immutable graph collected from
roots
following Ref.node.deps links.Immutable graph collected from
roots
following Ref.node.deps links.- Definition Classes
- ProgramGraphs
-
class
DefaultPass extends Scalan.Pass
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
-
case class
MapTransformer(subst: HashMap[Scalan.Sym, Scalan.Sym]) extends Scalan.Transformer with Product with Serializable
Concrete and default implementation of Transformer using underlying HashMap.
Concrete and default implementation of Transformer using underlying HashMap.
- Definition Classes
- Transforming
-
abstract
class
Mirror extends AnyRef
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.
- Definition Classes
- Transforming
-
implicit
class
PartialRewriter extends Scalan.Rewriter
Turns partial function into rewriter (i.e.
Turns partial function into rewriter (i.e. set of rewriting rules)
- Definition Classes
- Transforming
-
abstract
class
Pass extends AnyRef
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
-
case class
PassConfig(shouldUnpackTuples: Boolean = false, shouldExtractFields: Boolean = true, constantPropagation: Boolean = true, shouldSlice: Boolean = false) extends Product with Serializable
Configuration parameters of the Pass descriptor.
Configuration parameters of the Pass descriptor.
- Definition Classes
- Transforming
-
abstract
class
Rewriter extends AnyRef
- Definition Classes
- Transforming
-
type
CostedCollFunc[A, B] = ((CompiletimeCosting.this)#Costed[A]) ⇒ (CompiletimeCosting.this)#CostedColl[B]
- Definition Classes
- RuntimeCosting
-
type
CostedOptionFunc[A, B] = ((CompiletimeCosting.this)#Costed[A]) ⇒ (CompiletimeCosting.this)#CostedOption[B]
- Definition Classes
- RuntimeCosting
-
type
CostedTh[T] = (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Thunk[(CompiletimeCosting.this)#Costed[T]]]
- Definition Classes
- RuntimeCosting
-
type
CostingEnv = Map[Any, (CompiletimeCosting.this)#RCosted[_]]
- Definition Classes
- RuntimeCosting
-
type
DataEnv = Map[(CompiletimeCosting.this)#Sym, AnyRef]
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
-
type
EndoBinOp[A] = (CompiletimeCosting.this)#BinOp[A, A]
- Definition Classes
- UnBinOps
-
type
EndoUnOp[A] = (CompiletimeCosting.this)#UnOp[A, A]
- Definition Classes
- UnBinOps
-
type
LElem[A] = Lazy[(CompiletimeCosting.this)#Elem[A]]
Type descriptor which is computed lazily on demand.
Type descriptor which is computed lazily on demand.
- Definition Classes
- TypeDescs
-
type
LambdaData[A, B] = ((CompiletimeCosting.this)#Lambda[A, B], Nullable[((CompiletimeCosting.this)#Ref[A]) ⇒ (CompiletimeCosting.this)#Ref[B]], (CompiletimeCosting.this)#Ref[A], (CompiletimeCosting.this)#Ref[B])
- Definition Classes
- Functions
-
type
LazyRep[T] = MutableLazy[(CompiletimeCosting.this)#Ref[T]]
- Definition Classes
- Library
-
type
PGraph = (CompiletimeCosting.this)#ProgramGraph
- Definition Classes
- ProgramGraphs
-
type
RColl[T] = (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Coll[T]]
- Definition Classes
- RuntimeCosting
-
type
RCosted[A] = (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Costed[A]]
- Definition Classes
- Library
-
type
RCostedColl[T] = (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#CostedColl[T]]
- Definition Classes
- RuntimeCosting
-
type
RCostedCollFunc[A, B] = (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#CostedCollFunc[A, B]]
- Definition Classes
- RuntimeCosting
-
type
RCostedOption[T] = (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#CostedOption[T]]
- Definition Classes
- RuntimeCosting
-
type
RCostedOptionFunc[A, B] = (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#CostedOptionFunc[A, B]]
- Definition Classes
- RuntimeCosting
-
type
RFunc[-A, +B] = (CompiletimeCosting.this)#Ref[(A) ⇒ B]
- Definition Classes
- Base
-
type
RFuncCosted[A, B] = (CompiletimeCosting.this)#Ref[((CompiletimeCosting.this)#Costed[A]) ⇒ (CompiletimeCosting.this)#Costed[B]]
- Definition Classes
- RuntimeCosting
-
type
ROption[T] = (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#WOption[T]]
- Definition Classes
- RuntimeCosting
-
type
RPair[+A, +B] = (CompiletimeCosting.this)#Ref[(A, B)]
- Definition Classes
- Base
-
type
RSize[Val] = (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Size[Val]]
- Definition Classes
- Library
-
type
SThunk[T] = () ⇒ T
- Definition Classes
- Thunks
-
type
Schedule = Seq[(CompiletimeCosting.this)#Sym]
Type synonim for graph schedules.
Type synonim for graph schedules.
- Definition Classes
- AstGraphs
-
type
ScheduleIds = Buffer[Int]
Alternative representation of schedules using node ids.
Alternative representation of schedules using node ids.
- Definition Classes
- AstGraphs
-
type
Subst = HashMap[(CompiletimeCosting.this)#Sym, (CompiletimeCosting.this)#Sym]
- Definition Classes
- Functions
-
type
Sym = (CompiletimeCosting.this)#Ref[_]
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
-
type
Th[+T] = (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Thunk[T]]
- Definition Classes
- Thunks
-
type
|[+A, +B] = Either[A, B]
- Definition Classes
- Base
-
class
AvlTreeCoster extends IRContext.Coster[IRContext.AvlTree]
Costing rules for SAvlTree methods
Costing rules for SAvlTree methods
- Definition Classes
- CostingRules
-
class
BoxCoster extends IRContext.Coster[IRContext.Box]
Costing rules for SBox methods
Costing rules for SBox methods
- Definition Classes
- CostingRules
-
case class
Cast[To](eTo: IRContext.Elem[To], x: IRContext.Ref[IRContext.Def[_]]) extends IRContext.BaseDef[To] with Product with Serializable
- Definition Classes
- CostingRules
-
class
CollCoster[T] extends IRContext.Coster[IRContext.Coll[T]]
Costing rules for SCollection methods (see object SCollection)
Costing rules for SCollection methods (see object SCollection)
- Definition Classes
- CostingRules
-
class
ContextCoster extends IRContext.Coster[IRContext.Context]
Costing rules for SContext methods
Costing rules for SContext methods
- Definition Classes
- CostingRules
-
abstract
class
Coster[T] extends AnyRef
For each Sigma type there should be one Coster class (derived from this).
For each Sigma type there should be one Coster class (derived from this). Each coster object implements a set of costing rules, one rule for each method of the corresponding Sigma type. For example, BoxCoster is coster for Box type, it contains rules for all methods registered in SBox type descriptor. This class defines generic costing helpers, to unify and simplify costing rules of individual methods.
- Definition Classes
- CostingRules
-
abstract
class
CostingHandler[T] extends AnyRef
Implements basic costing rule invocation mechanism.
Implements basic costing rule invocation mechanism. Each MethodCall node of ErgoTree is costed using the same mechanism. When MethodCall is matched during traverse of ErgoTree in
RuntimeCosting.evalNode
: 1) the type of the receiver object is used to lookup the corresponding CostingHandler 2) The apply method of CostingHandler is called to create the Coster 3) When Coster is created, the costing-rule-method is looked up using reflection and then invoked. 4) The result of costing-rule-method is returned as the result of MethodCall node costing.Instances of this class are typically singleton objects (see below).
- Definition Classes
- CostingRules
- See also
Coster
-
class
GroupElementCoster extends IRContext.Coster[IRContext.GroupElement]
Costing rules for SGroupElement methods
Costing rules for SGroupElement methods
- Definition Classes
- CostingRules
-
class
HeaderCoster extends IRContext.Coster[IRContext.Header]
Costing rules for SHeader methods
Costing rules for SHeader methods
- Definition Classes
- CostingRules
-
class
KnownCollInfo[T] extends AnyRef
- Definition Classes
- CostingRules
-
class
OptionCoster[T] extends IRContext.Coster[IRContext.WOption[T]]
Costing rules for SOption methods (see object SOption)
Costing rules for SOption methods (see object SOption)
- Definition Classes
- CostingRules
-
class
PreHeaderCoster extends IRContext.Coster[IRContext.PreHeader]
Costing rules for SPreHeader methods
Costing rules for SPreHeader methods
- Definition Classes
- CostingRules
-
class
SigmaDslBuilderCoster extends IRContext.Coster[IRContext.SigmaDslBuilder]
Costing rules for SGlobal methods
Costing rules for SGlobal methods
- Definition Classes
- CostingRules
-
case class
CostOf(opName: String, opType: SFunc) extends IRContext.BaseDef[Int] with Product with Serializable
To enable specific configuration uncomment one of the lines above and use it in the beginPass below.
To enable specific configuration uncomment one of the lines above and use it in the beginPass below.
- Definition Classes
- RuntimeCosting
-
trait
CostedThunk[A] extends IRContext.Node with IRContext.Costed[IRContext.Thunk[A]]
- Definition Classes
- RuntimeCosting
-
case class
CostedThunkCtor[A](costedBlock: IRContext.Ref[IRContext.Thunk[IRContext.Costed[A]]], thunkCost: IRContext.Ref[Int]) extends IRContext.Node with IRContext.CostedThunk[A] with Product with Serializable
- Definition Classes
- RuntimeCosting
-
class
CostingRuleStat extends AnyRef
- Definition Classes
- RuntimeCosting
-
class
ElemAccessor[T] extends AnyRef
- Definition Classes
- RuntimeCosting
-
implicit
class
ElemOpsForCosting extends AnyRef
- Definition Classes
- RuntimeCosting
-
case class
PerKbCostOf(operId: OperationId, size: IRContext.Ref[Long]) extends IRContext.BaseDef[Int] with Product with Serializable
Graph node which represents cost of operation, which depends on size of the data.
Graph node which represents cost of operation, which depends on size of the data.
- operId
id of the operation in CostTable
- size
size of the data which is used to compute operation cost
- Definition Classes
- RuntimeCosting
-
implicit
class
RCostedCollFuncOps[A, B] extends AnyRef
- Definition Classes
- RuntimeCosting
-
implicit
class
RFuncCostedOps[A, B] extends AnyRef
- Definition Classes
- RuntimeCosting
-
trait
SizeThunk[A] extends IRContext.Node with IRContext.Size[IRContext.Thunk[A]]
- Definition Classes
- RuntimeCosting
-
case class
SizeThunkCtor[A](sizeBlock: IRContext.Ref[IRContext.Thunk[IRContext.Size[A]]]) extends IRContext.Node with IRContext.SizeThunk[A] with Product with Serializable
- Definition Classes
- RuntimeCosting
-
trait
Coll[A] extends scalan.Library.Node with scalan.Library.Def[scalan.Library.Coll[A]]
- Definition Classes
- Colls
- Annotations
- @ContainerType() @FunctorType() @Liftable() @WithMethodCallRecognizers()
-
trait
CollBuilder extends scalan.Library.Node with scalan.Library.Def[scalan.Library.CollBuilder]
- Definition Classes
- Colls
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
CollBuilderCompanion extends AnyRef
- Definition Classes
- Colls
-
trait
CollCompanion extends AnyRef
- Definition Classes
- Colls
-
trait
PairColl[L, R] extends scalan.Library.Node with scalan.Library.Coll[(L, R)]
- Definition Classes
- Colls
- Annotations
- @WithMethodCallRecognizers()
-
trait
PairCollCompanion extends AnyRef
- Definition Classes
- Colls
-
trait
ReplColl[A] extends scalan.Library.Node with scalan.Library.Coll[A]
- Definition Classes
- Colls
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
ReplCollCompanion extends AnyRef
- Definition Classes
- Colls
-
abstract
class
CCostedBuilder extends scalan.Library.Node with scalan.Library.CostedBuilder
- Definition Classes
- ConcreteCosts
-
trait
CCostedBuilderCompanion extends AnyRef
- Definition Classes
- ConcreteCosts
-
abstract
class
CCostedColl[Item] extends scalan.Library.Node with scalan.Library.CostedColl[Item]
- Definition Classes
- ConcreteCosts
-
trait
CCostedCollCompanion extends AnyRef
- Definition Classes
- ConcreteCosts
-
abstract
class
CCostedFunc[Env, Arg, Res] extends scalan.Library.Node with scalan.Library.CostedFunc[Env, Arg, Res]
- Definition Classes
- ConcreteCosts
-
trait
CCostedFuncCompanion extends AnyRef
- Definition Classes
- ConcreteCosts
-
abstract
class
CCostedPair[L, R] extends scalan.Library.Node with scalan.Library.CostedPair[L, R]
- Definition Classes
- ConcreteCosts
-
trait
CCostedPairCompanion extends AnyRef
- Definition Classes
- ConcreteCosts
-
abstract
class
CCostedPrim[Val] extends scalan.Library.Node with scalan.Library.CostedPrim[Val]
- Definition Classes
- ConcreteCosts
-
trait
CCostedPrimCompanion extends AnyRef
- Definition Classes
- ConcreteCosts
-
abstract
class
CSizeColl[Item] extends scalan.Library.Node with scalan.Library.SizeColl[Item]
- Definition Classes
- ConcreteSizes
-
trait
CSizeCollCompanion extends AnyRef
- Definition Classes
- ConcreteSizes
-
abstract
class
CSizeFunc[Env, Arg, Res] extends scalan.Library.Node with scalan.Library.SizeFunc[Env, Arg, Res]
- Definition Classes
- ConcreteSizes
-
trait
CSizeFuncCompanion extends AnyRef
- Definition Classes
- ConcreteSizes
-
abstract
class
CSizeOption[Item] extends scalan.Library.Node with scalan.Library.SizeOption[Item]
- Definition Classes
- ConcreteSizes
-
trait
CSizeOptionCompanion extends AnyRef
- Definition Classes
- ConcreteSizes
-
abstract
class
CSizePair[L, R] extends scalan.Library.Node with scalan.Library.SizePair[L, R]
- Definition Classes
- ConcreteSizes
-
trait
CSizePairCompanion extends AnyRef
- Definition Classes
- ConcreteSizes
-
abstract
class
CSizePrim[Val] extends scalan.Library.Node with scalan.Library.SizePrim[Val]
- Definition Classes
- ConcreteSizes
-
trait
CSizePrimCompanion extends AnyRef
- Definition Classes
- ConcreteSizes
-
abstract
class
CCostedOption[T] extends scalan.Library.Node with scalan.Library.CostedOption[T]
- Definition Classes
- CostedOptions
-
trait
CCostedOptionCompanion extends AnyRef
- Definition Classes
- CostedOptions
-
trait
Costed[Val] extends scalan.Library.Node with scalan.Library.Def[scalan.Library.Costed[Val]]
- Definition Classes
- Costs
- Annotations
- @WithMethodCallRecognizers()
-
trait
CostedBuilder extends scalan.Library.Node with scalan.Library.Def[scalan.Library.CostedBuilder]
- Definition Classes
- Costs
- Annotations
- @WithMethodCallRecognizers()
-
trait
CostedBuilderCompanion extends AnyRef
- Definition Classes
- Costs
-
trait
CostedColl[Item] extends scalan.Library.Node with scalan.Library.Costed[scalan.Library.Coll[Item]]
- Definition Classes
- Costs
- Annotations
- @WithMethodCallRecognizers()
-
trait
CostedCollCompanion extends AnyRef
- Definition Classes
- Costs
-
trait
CostedCompanion extends AnyRef
- Definition Classes
- Costs
-
trait
CostedFunc[Env, Arg, Res] extends scalan.Library.Node with scalan.Library.Costed[(Arg) ⇒ Res]
- Definition Classes
- Costs
-
trait
CostedFuncCompanion extends AnyRef
- Definition Classes
- Costs
-
trait
CostedOption[T] extends scalan.Library.Node with scalan.Library.Costed[scalan.Library.WOption[T]]
- Definition Classes
- Costs
-
trait
CostedOptionCompanion extends AnyRef
- Definition Classes
- Costs
-
trait
CostedPair[L, R] extends scalan.Library.Node with scalan.Library.Costed[(L, R)]
- Definition Classes
- Costs
-
trait
CostedPairCompanion extends AnyRef
- Definition Classes
- Costs
-
trait
CostedPrim[Val] extends scalan.Library.Node with scalan.Library.Costed[Val]
- Definition Classes
- Costs
-
trait
CostedPrimCompanion extends AnyRef
- Definition Classes
- Costs
-
abstract
class
IntPlusMonoid extends scalan.Library.Node with scalan.Library.Monoid[Int]
- Definition Classes
- MonoidInstances
-
trait
IntPlusMonoidCompanion extends AnyRef
- Definition Classes
- MonoidInstances
-
abstract
class
LongPlusMonoid extends scalan.Library.Node with scalan.Library.Monoid[Long]
- Definition Classes
- MonoidInstances
-
trait
LongPlusMonoidCompanion extends AnyRef
- Definition Classes
- MonoidInstances
-
abstract
class
MonoidBuilderInst extends scalan.Library.Node with scalan.Library.MonoidBuilder
- Definition Classes
- MonoidInstances
-
trait
MonoidBuilderInstCompanion extends AnyRef
- Definition Classes
- MonoidInstances
-
trait
Monoid[T] extends scalan.Library.Node with scalan.Library.Def[scalan.Library.Monoid[T]]
- Definition Classes
- Monoids
-
trait
MonoidBuilder extends scalan.Library.Node with scalan.Library.Def[scalan.Library.MonoidBuilder]
- Definition Classes
- Monoids
- Annotations
- @WithMethodCallRecognizers()
-
trait
MonoidBuilderCompanion extends AnyRef
- Definition Classes
- Monoids
-
trait
MonoidCompanion extends AnyRef
- Definition Classes
- Monoids
-
trait
Size[Val] extends scalan.Library.Node with scalan.Library.Def[scalan.Library.Size[Val]]
- Definition Classes
- Sizes
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
SizeColl[Item] extends scalan.Library.Node with scalan.Library.Size[scalan.Library.Coll[Item]]
- Definition Classes
- Sizes
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
SizeCollCompanion extends AnyRef
- Definition Classes
- Sizes
-
trait
SizeCompanion extends AnyRef
- Definition Classes
- Sizes
-
trait
SizeFunc[Env, Arg, Res] extends scalan.Library.Node with scalan.Library.Size[(Arg) ⇒ Res]
- Definition Classes
- Sizes
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
SizeFuncCompanion extends AnyRef
- Definition Classes
- Sizes
-
trait
SizeOption[T] extends scalan.Library.Node with scalan.Library.Size[scalan.Library.WOption[T]]
- Definition Classes
- Sizes
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
SizeOptionCompanion extends AnyRef
- Definition Classes
- Sizes
-
trait
SizePair[L, R] extends scalan.Library.Node with scalan.Library.Size[(L, R)]
- Definition Classes
- Sizes
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
SizePairCompanion extends AnyRef
- Definition Classes
- Sizes
- trait SizePrim[Val] extends scalan.Library.Node with scalan.Library.Size[Val]
-
trait
SizePrimCompanion extends AnyRef
- Definition Classes
- Sizes
-
trait
SizeAnyValue extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Size[scalan.SigmaLibrary.AnyValue]
- Definition Classes
- CostedObjects
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
SizeAnyValueCompanion extends AnyRef
- Definition Classes
- CostedObjects
-
trait
SizeBox extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Size[scalan.SigmaLibrary.Box]
- Definition Classes
- CostedObjects
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
SizeBoxCompanion extends AnyRef
- Definition Classes
- CostedObjects
-
trait
SizeBuilder extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Def[scalan.SigmaLibrary.SizeBuilder]
- Definition Classes
- CostedObjects
- Annotations
- @Liftable()
-
trait
SizeBuilderCompanion extends AnyRef
- Definition Classes
- CostedObjects
-
trait
SizeContext extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Size[scalan.SigmaLibrary.Context]
- Definition Classes
- CostedObjects
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
SizeContextCompanion extends AnyRef
- Definition Classes
- CostedObjects
-
trait
SizeSigmaProp extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Size[scalan.SigmaLibrary.SigmaProp]
- Definition Classes
- CostedObjects
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
SizeSigmaPropCompanion extends AnyRef
- Definition Classes
- CostedObjects
-
trait
AnyValue extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Def[scalan.SigmaLibrary.AnyValue]
- Definition Classes
- SigmaDsl
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
AnyValueCompanion extends AnyRef
- Definition Classes
- SigmaDsl
- trait AvlTree extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Def[scalan.SigmaLibrary.AvlTree]
-
trait
AvlTreeCompanion extends AnyRef
- Definition Classes
- SigmaDsl
-
trait
BigInt extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Def[scalan.SigmaLibrary.BigInt]
- Definition Classes
- SigmaDsl
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
BigIntCompanion extends AnyRef
- Definition Classes
- SigmaDsl
-
trait
Box extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Def[scalan.SigmaLibrary.Box]
- Definition Classes
- SigmaDsl
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
BoxCompanion extends AnyRef
- Definition Classes
- SigmaDsl
-
trait
Context extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Def[scalan.SigmaLibrary.Context]
- Definition Classes
- SigmaDsl
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
ContextCompanion extends AnyRef
- Definition Classes
- SigmaDsl
- trait CostModel extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Def[scalan.SigmaLibrary.CostModel]
-
trait
CostModelCompanion extends AnyRef
- Definition Classes
- SigmaDsl
-
trait
GroupElement extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Def[scalan.SigmaLibrary.GroupElement]
- Definition Classes
- SigmaDsl
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
GroupElementCompanion extends AnyRef
- Definition Classes
- SigmaDsl
- trait Header extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Def[scalan.SigmaLibrary.Header]
-
trait
HeaderCompanion extends AnyRef
- Definition Classes
- SigmaDsl
- trait PreHeader extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Def[scalan.SigmaLibrary.PreHeader]
-
trait
PreHeaderCompanion extends AnyRef
- Definition Classes
- SigmaDsl
- trait SigmaContract extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Def[scalan.SigmaLibrary.SigmaContract]
-
trait
SigmaContractCompanion extends AnyRef
- Definition Classes
- SigmaDsl
-
trait
SigmaDslBuilder extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Def[scalan.SigmaLibrary.SigmaDslBuilder]
- Definition Classes
- SigmaDsl
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
SigmaDslBuilderCompanion extends AnyRef
- Definition Classes
- SigmaDsl
-
trait
SigmaProp extends scalan.SigmaLibrary.Node with scalan.SigmaLibrary.Def[scalan.SigmaLibrary.SigmaProp]
- Definition Classes
- SigmaDsl
- Annotations
- @Liftable() @WithMethodCallRecognizers()
-
trait
SigmaPropCompanion extends AnyRef
- Definition Classes
- SigmaDsl
-
trait
OptionWrapSpec extends scalan.Library.Node with scalan.Library.WrapSpecBase
- Definition Classes
- WrappersSpec
-
trait
OptionWrapSpecCompanion extends AnyRef
- Definition Classes
- WrappersSpec
-
trait
RTypeWrapSpec extends scalan.Library.Node with scalan.Library.WrapSpecBase
- Definition Classes
- WrappersSpec
-
trait
RTypeWrapSpecCompanion extends AnyRef
- Definition Classes
- WrappersSpec
-
trait
SpecialPredefWrapSpec extends scalan.Library.Node with scalan.Library.WrapSpecBase
- Definition Classes
- WrappersSpec
-
trait
SpecialPredefWrapSpecCompanion extends AnyRef
- Definition Classes
- WrappersSpec
-
trait
WrapSpecBase extends scalan.Library.Node with scalan.Library.Def[scalan.Library.WrapSpecBase] with WrapSpec
- Definition Classes
- WrappersSpec
-
trait
WrapSpecBaseCompanion extends AnyRef
- Definition Classes
- WrappersSpec
-
trait
WOption[A] extends special.wrappers.WrappersModule.Node with special.wrappers.WrappersModule.Def[special.wrappers.WrappersModule.WOption[A]]
- Definition Classes
- WOptions
- Annotations
- @External() @ContainerType() @FunctorType() @Liftable() @WithMethodCallRecognizers()
-
trait
WOptionCompanion extends AnyRef
- Definition Classes
- WOptions
-
trait
WRType[A] extends special.wrappers.WrappersModule.Node with special.wrappers.WrappersModule.Def[special.wrappers.WrappersModule.WRType[A]]
- Definition Classes
- WRTypes
- Annotations
- @External() @Liftable() @WithMethodCallRecognizers()
-
trait
WRTypeCompanion extends AnyRef
- Definition Classes
- WRTypes
-
trait
WSpecialPredef extends special.wrappers.WrappersModule.Node with special.wrappers.WrappersModule.Def[special.wrappers.WrappersModule.WSpecialPredef]
- Definition Classes
- WSpecialPredefs
- Annotations
- @External() @WithMethodCallRecognizers()
-
trait
WSpecialPredefCompanion extends AnyRef
- Definition Classes
- WSpecialPredefs
Abstract Value Members
-
abstract
val
builder: SigmaBuilder
Should be specified in the final cake
Should be specified in the final cake
- Definition Classes
- RuntimeCosting
Concrete Value Members
-
object
&&
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 likecase P1 && P2 => ...
- Definition Classes
- Base
-
object
Def
- Definition Classes
- Base
-
object
ExpWithElem
- Definition Classes
- Base
-
object
Liftables
Data type
ST
is liftable is there is Liftable[ST, T] instance for some typeT
.Data type
ST
is liftable is there is Liftable[ST, T] instance for some typeT
. Liftable typeclass allows to define which types can have values embedded as literals into graph IR.- Definition Classes
- Base
-
object
NoOwner extends Scalan.OwnerKind with Product with Serializable
- Definition Classes
- Base
-
object
ScalanOwner extends Scalan.OwnerKind with Product with Serializable
- Definition Classes
- Base
-
object
IsNumericToInt
- Definition Classes
- Library
-
object
IsNumericToLong
- Definition Classes
- Library
-
object
InvokeImpossible extends Scalan.InvokeResult with Product with Serializable
Invocation is not possible, e.g.
Invocation is not possible, e.g. when receiver doesn't implemented the method.
- Definition Classes
- MethodCalls
-
object
Elem extends Serializable
- Definition Classes
- TypeDescs
-
object
EnvRep extends Serializable
- Definition Classes
- TypeDescs
-
object
ConstantLambda
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
-
object
IdentityLambda
- Definition Classes
- Functions
-
object
Lambda
- Definition Classes
- Functions
-
object
VeryConstantLambda
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
-
object
ConstantThunk
- Definition Classes
- Thunks
-
object
ThunkDef
- Definition Classes
- Thunks
-
object
IsPair
- Definition Classes
- Tuples
-
object
Pair
- Definition Classes
- Tuples
-
object
ProgramGraph extends Serializable
- Definition Classes
- ProgramGraphs
-
object
MapTransformer extends Serializable
- Definition Classes
- Transforming
-
object
Pass
- Definition Classes
- Transforming
-
def
!!!(msg: String, e: Throwable, syms: (CompiletimeCosting.this)#Ref[_]*): Nothing
- Definition Classes
- Base
-
def
!!!(msg: String, syms: (CompiletimeCosting.this)#Ref[_]*): Nothing
- Definition Classes
- Base
-
def
!!!: Nothing
Helper methods to throw errors
Helper methods to throw errors
- Definition Classes
- Base
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
???(value: Any, syms: (CompiletimeCosting.this)#Ref[_]*): Nothing
- Definition Classes
- Base
-
def
???: Nothing
- Definition Classes
- Base
-
val
And: (CompiletimeCosting.this)#BinOp[Boolean, Boolean]
- Definition Classes
- LogicalOps
-
val
AnyElement: (CompiletimeCosting.this)#Elem[Any]
Type descriptor for
Any
, cannot be used implicitly.Type descriptor for
Any
, cannot be used implicitly.- Definition Classes
- TypeDescs
-
val
AnyRefElement: (CompiletimeCosting.this)#Elem[AnyRef]
Type descriptor for
AnyRef
, cannot be used implicitly.Type descriptor for
AnyRef
, cannot be used implicitly.- Definition Classes
- TypeDescs
-
val
AvlTreeDigestInfo: (CompiletimeCosting.this)#KnownCollInfo[Byte]
- Definition Classes
- CostingRules
-
val
BinaryXorOp: (CompiletimeCosting.this)#BinOp[Boolean, Boolean]
- Definition Classes
- LogicalOps
-
implicit
val
BooleanElement: (CompiletimeCosting.this)#Elem[Boolean]
- Definition Classes
- TypeDescs
-
val
BooleanToInt: (CompiletimeCosting.this)#UnOp[Boolean, Int]
- Definition Classes
- LogicalOps
-
val
BoxBytesInfo: (CompiletimeCosting.this)#KnownCollInfo[Byte]
- Definition Classes
- CostingRules
-
val
BoxBytesWithoutRefsInfo: (CompiletimeCosting.this)#KnownCollInfo[Byte]
- Definition Classes
- CostingRules
-
val
BoxPropositionBytesInfo: (CompiletimeCosting.this)#KnownCollInfo[Byte]
- Definition Classes
- CostingRules
-
implicit
val
ByteElement: (CompiletimeCosting.this)#Elem[Byte]
- Definition Classes
- TypeDescs
-
val
CM: CollMethods.type
- Definition Classes
- Library
-
implicit
val
CharElement: (CompiletimeCosting.this)#Elem[Char]
- Definition Classes
- TypeDescs
-
def
Colls: special.collection.CollBuilder
- Definition Classes
- RuntimeCosting
- Annotations
- @inline()
-
def
CostOfDHTuple: (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- RuntimeCosting
- Annotations
- @inline()
-
def
CostOfProveDlog: (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- RuntimeCosting
- Annotations
- @inline()
-
val
DefaultMirror: (CompiletimeCosting.this)#Mirror
Default Mirror instance which is used in core IR methods.
Default Mirror instance which is used in core IR methods.
- Definition Classes
- Transforming
-
implicit
val
DoubleElement: (CompiletimeCosting.this)#Elem[Double]
- Definition Classes
- TypeDescs
-
val
DowncastBigIntOpType: SFunc
- Definition Classes
- RuntimeCosting
-
val
EValOfSizeColl: (CompiletimeCosting.this)#ElemAccessor[(CompiletimeCosting.this)#Coll[(CompiletimeCosting.this)#Size[Any]]]
- Definition Classes
- RuntimeCosting
-
val
EmptyTypeArgs: ListMap[String, ((CompiletimeCosting.this)#TypeDesc, Variance)]
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
-
val
EncodedGroupElementInfo: (CompiletimeCosting.this)#KnownCollInfo[Byte]
- Definition Classes
- CostingRules
-
implicit
val
FloatElement: (CompiletimeCosting.this)#Elem[Float]
- Definition Classes
- TypeDescs
-
implicit final
def
FuncElemExtensions[A, B](eAB: (CompiletimeCosting.this)#Elem[(A) ⇒ B]): (CompiletimeCosting.this)#FuncElem[A, B]
- Definition Classes
- TypeDescs
-
val
HashInfo: (CompiletimeCosting.this)#KnownCollInfo[Byte]
- Definition Classes
- CostingRules
-
val
HeadersInfo: (CompiletimeCosting.this)#KnownCollInfo[(CompiletimeCosting.this)#Header]
- Definition Classes
- CostingRules
-
def
IF(cond: (CompiletimeCosting.this)#Ref[Boolean]): (CompiletimeCosting.this)#IfBranch
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
-
implicit
val
IntElement: (CompiletimeCosting.this)#Elem[Int]
- Definition Classes
- TypeDescs
-
final
def
IntZero: (CompiletimeCosting.this)#Ref[Int]
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])
ortoRep(0)
.- Definition Classes
- Base
- Annotations
- @inline()
-
val
LazyAnyElement: Lazy[(CompiletimeCosting.this)#Elem[Any]]
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
-
val
LongBytesInfo: (CompiletimeCosting.this)#KnownCollInfo[Byte]
- Definition Classes
- CostingRules
-
implicit
val
LongElement: (CompiletimeCosting.this)#Elem[Long]
- Definition Classes
- TypeDescs
-
val
NoRewriting: (CompiletimeCosting.this)#Rewriter
Identity rewriter, i.e.
Identity rewriter, i.e. doesn't change the graph when applied.
- Definition Classes
- Transforming
-
val
NonceBytesInfo: (CompiletimeCosting.this)#KnownCollInfo[Byte]
- Definition Classes
- CostingRules
-
val
Not: (CompiletimeCosting.this)#UnOp[Boolean, Boolean]
- Definition Classes
- LogicalOps
-
val
NothingElement: (CompiletimeCosting.this)#Elem[Nothing]
- Definition Classes
- TypeDescs
-
val
Or: (CompiletimeCosting.this)#BinOp[Boolean, Boolean]
- Definition Classes
- LogicalOps
-
implicit
def
OrderingToOrderingOps[T](x: T)(implicit n: ExactOrdering[T], et: (CompiletimeCosting.this)#Elem[T]): (CompiletimeCosting.this)#OrderingOpsCls[T]
- Definition Classes
- OrderingOps
-
implicit final
def
PairElemExtensions[A, B](eAB: (CompiletimeCosting.this)#Elem[(A, B)]): (CompiletimeCosting.this)#PairElem[A, B]
- Definition Classes
- TypeDescs
-
def
RCostedThunk[A](costedBlock: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Thunk[(CompiletimeCosting.this)#Costed[A]]], thunkCost: (CompiletimeCosting.this)#Ref[Int]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Costed[(CompiletimeCosting.this)#Thunk[A]]]
- Definition Classes
- RuntimeCosting
-
def
RSizeThunk[A](sizeBlock: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Thunk[(CompiletimeCosting.this)#Size[A]]]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Size[(CompiletimeCosting.this)#Thunk[A]]]
- Definition Classes
- RuntimeCosting
-
def
SOME[A](x: (CompiletimeCosting.this)#Ref[A]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#WOption[A]]
- Definition Classes
- CostingRules
-
implicit
val
ShortElement: (CompiletimeCosting.this)#Elem[Short]
- Definition Classes
- TypeDescs
-
def
SigmaDsl: CostingSigmaDslBuilder.type
- Definition Classes
- RuntimeCosting
- Annotations
- @inline()
-
val
SigmaPropBytesInfo: (CompiletimeCosting.this)#KnownCollInfo[Byte]
- Definition Classes
- CostingRules
-
def
SizeAvlTree: (CompiletimeCosting.this)#RSize[(CompiletimeCosting.this)#AvlTree]
- Definition Classes
- CostingRules
- Annotations
- @inline()
-
def
SizeBigInt: (CompiletimeCosting.this)#RSize[(CompiletimeCosting.this)#BigInt]
- Definition Classes
- CostingRules
- Annotations
- @inline()
-
def
SizeBoolean: (CompiletimeCosting.this)#RSize[Boolean]
- Definition Classes
- CostingRules
- Annotations
- @inline()
-
def
SizeByte: (CompiletimeCosting.this)#RSize[Byte]
- Definition Classes
- CostingRules
- Annotations
- @inline()
-
def
SizeGroupElement: (CompiletimeCosting.this)#RSize[(CompiletimeCosting.this)#GroupElement]
- Definition Classes
- CostingRules
- Annotations
- @inline()
-
def
SizeInt: (CompiletimeCosting.this)#RSize[Int]
- Definition Classes
- CostingRules
- Annotations
- @inline()
-
def
SizeLong: (CompiletimeCosting.this)#RSize[Long]
- Definition Classes
- CostingRules
- Annotations
- @inline()
-
def
SizeShort: (CompiletimeCosting.this)#RSize[Short]
- Definition Classes
- CostingRules
- Annotations
- @inline()
-
def
SizeSigmaProposition: (CompiletimeCosting.this)#RSize[(CompiletimeCosting.this)#SigmaProp]
- Definition Classes
- CostingRules
- Annotations
- @inline()
-
def
SizeString: (CompiletimeCosting.this)#RSize[String]
- Definition Classes
- CostingRules
- Annotations
- @inline()
-
def
SizeUnit: (CompiletimeCosting.this)#RSize[Unit]
- Definition Classes
- CostingRules
- Annotations
- @inline()
-
def
SomeIntZero: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#WOption[Int]]
- Definition Classes
- CostingRules
- Annotations
- @inline()
-
implicit
val
StringElement: (CompiletimeCosting.this)#Elem[String]
- Definition Classes
- TypeDescs
-
implicit final
def
SumElemExtensions[A, B](eAB: (CompiletimeCosting.this)#Elem[(CompiletimeCosting.this)#|[A, B]]): (CompiletimeCosting.this)#SumElem[A, B]
- Definition Classes
- TypeDescs
-
val
Thunk: (CompiletimeCosting.this)#ThunkCompanion
- Definition Classes
- Thunks
-
val
TokensInfo: (CompiletimeCosting.this)#KnownCollInfo[((CompiletimeCosting.this)#Coll[Byte], Long)]
- Definition Classes
- CostingRules
-
final
def
TypeArgs(descs: (String, ((CompiletimeCosting.this)#TypeDesc, Variance))*): ListMap[String, ((CompiletimeCosting.this)#TypeDesc, Variance)]
- Definition Classes
- TypeDescs
-
implicit
val
UnitElement: (CompiletimeCosting.this)#Elem[Unit]
- Definition Classes
- TypeDescs
-
val
UpcastBigIntOpType: SFunc
- Definition Classes
- RuntimeCosting
-
val
VotesInfo: (CompiletimeCosting.this)#KnownCollInfo[Byte]
- Definition Classes
- CostingRules
-
def
WRTypeSigmaProp: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#WRType[(CompiletimeCosting.this)#SigmaProp]]
- Definition Classes
- CostingRules
- Annotations
- @inline()
-
val
_costOfProveDHTuple: (CompiletimeCosting.this)#CostOf
- Definition Classes
- RuntimeCosting
-
val
_costOfProveDlogEval: (CompiletimeCosting.this)#CostOf
- Definition Classes
- RuntimeCosting
-
val
_currentPass: (CompiletimeCosting.this)#Pass
- Definition Classes
- Transforming
-
def
adaptSigmaBoolean(v: BoolValue): Value[SBoolean.type]
- Definition Classes
- RuntimeCosting
-
final
def
allContextDependant(syms: Array[(CompiletimeCosting.this)#Sym]): Boolean
- Definition Classes
- RuntimeCosting
- Annotations
- @inline()
-
def
alphaEqual(s1: (CompiletimeCosting.this)#Sym, s2: (CompiletimeCosting.this)#Sym): Boolean
- Definition Classes
- Functions
-
def
applyBinOp[A, R](op: (CompiletimeCosting.this)#BinOp[A, R], lhs: (CompiletimeCosting.this)#Ref[A], rhs: (CompiletimeCosting.this)#Ref[A]): (CompiletimeCosting.this)#Ref[R]
- Definition Classes
- UnBinOps
-
def
applyBinOpLazy[A, R](op: (CompiletimeCosting.this)#BinOp[A, R], lhs: (CompiletimeCosting.this)#Ref[A], rhs: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Thunk[A]]): (CompiletimeCosting.this)#Ref[R]
- Definition Classes
- UnBinOps
-
def
applyUnOp[A, R](op: (CompiletimeCosting.this)#UnOp[A, R], arg: (CompiletimeCosting.this)#Ref[A]): (CompiletimeCosting.this)#Ref[R]
- Definition Classes
- UnBinOps
-
final
def
asCosted[T](x: (CompiletimeCosting.this)#Ref[_]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Costed[T]]
- Definition Classes
- RuntimeCosting
- Annotations
- @inline()
-
def
asCostedColl[T](collC: (CompiletimeCosting.this)#RCosted[(CompiletimeCosting.this)#Coll[T]]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#CostedColl[T]]
- Definition Classes
- CostingRules
-
def
asCostedFunc[A, B](fC: (CompiletimeCosting.this)#RCosted[(A) ⇒ B]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#CostedFunc[Unit, A, B]]
- Definition Classes
- CostingRules
-
def
asCostedPair[A, B](pC: (CompiletimeCosting.this)#RCosted[(A, B)]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#CostedPair[A, B]]
- Definition Classes
- CostingRules
-
final
def
asElem[T](d: (CompiletimeCosting.this)#TypeDesc): (CompiletimeCosting.this)#Elem[T]
Helper type case method.
Helper type case method.
- Definition Classes
- TypeDescs
- Annotations
- @inline()
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
final
def
asRep[T](x: (CompiletimeCosting.this)#Ref[_]): (CompiletimeCosting.this)#Ref[T]
Helper to type cast node references.
Helper to type cast node references.
- Definition Classes
- Base
- Annotations
- @inline()
-
def
asSizeBox(ctx: (CompiletimeCosting.this)#RSize[(CompiletimeCosting.this)#Box]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#SizeBox]
- Definition Classes
- CostingRules
-
def
asSizeColl[T](collS: (CompiletimeCosting.this)#RSize[(CompiletimeCosting.this)#Coll[T]]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#SizeColl[T]]
- Definition Classes
- CostingRules
-
def
asSizeContext(ctx: (CompiletimeCosting.this)#RSize[(CompiletimeCosting.this)#Context]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#SizeContext]
- Definition Classes
- CostingRules
-
def
asSizeOption[T](optS: (CompiletimeCosting.this)#RSize[(CompiletimeCosting.this)#WOption[T]]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#SizeOption[T]]
- Definition Classes
- CostingRules
-
def
asSizePair[A, B](s: (CompiletimeCosting.this)#RSize[(A, B)]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#SizePair[A, B]]
- Definition Classes
- CostingRules
-
def
assertElem(value: (CompiletimeCosting.this)#Ref[_], elem: (CompiletimeCosting.this)#Elem[_], hint: ⇒ String): Unit
- Definition Classes
- TypeDescs
-
def
assertElem(value: (CompiletimeCosting.this)#Ref[_], elem: (CompiletimeCosting.this)#Elem[_]): Unit
- Definition Classes
- TypeDescs
-
def
assertEqualElems[A](e1: (CompiletimeCosting.this)#Elem[A], e2: (CompiletimeCosting.this)#Elem[A], m: ⇒ String): Unit
- Definition Classes
- TypeDescs
-
def
assertValueIdForOpCost[A, B](value: (CompiletimeCosting.this)#Ref[A], cost: (CompiletimeCosting.this)#Ref[B]): Unit
- Definition Classes
- UniversalOps
-
def
attachCost[T](source: (CompiletimeCosting.this)#RCosted[T], accCost: (CompiletimeCosting.this)#Ref[Int], cost: (CompiletimeCosting.this)#Ref[Int]): (CompiletimeCosting.this)#RCosted[T]
Build a new costed value with the given cost in a dependency list.
Build a new costed value with the given cost in a dependency list. This is required to correctly handle tuple field accesses like
v._1
and not to lose the cost ofv
in the cost of resulting value.- Definition Classes
- RuntimeCosting
-
def
beginPass(pass: (CompiletimeCosting.this)#Pass): Unit
Called to setup IR before the new pass is executed.
Called to setup IR before the new pass is executed.
- Definition Classes
- Transforming
-
def
buildCostedGraph[T](envVals: Map[Any, SValue], tree: SValue): (CompiletimeCosting.this)#Ref[((CompiletimeCosting.this)#Costed[(CompiletimeCosting.this)#Context]) ⇒ (CompiletimeCosting.this)#Costed[T]]
- Definition Classes
- RuntimeCosting
-
val
cacheElems: Boolean
Whether IR type descriptors should be cached.
Whether IR type descriptors should be cached.
- Definition Classes
- Base
-
val
cachePairs: Boolean
Whether Tup instances should be cached.
Whether Tup instances should be cached.
- Definition Classes
- Base
-
final
def
cachedElemByClass[E <: (CompiletimeCosting.this)#Elem[_]](args: AnyRef*)(implicit clazz: Class[E]): E
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
-
def
canBeInvoked(d: (CompiletimeCosting.this)#Def[_], m: Method, args: Array[AnyRef]): Boolean
Method invocation checker.
Method invocation checker.
- Attributes
- protected
- Definition Classes
- MethodCalls
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
clusterColor(g: (CompiletimeCosting.this)#AstGraph): Option[String]
- Attributes
- protected
- Definition Classes
- GraphVizExport
-
def
clusterSchedule(g: (CompiletimeCosting.this)#AstGraph): Seq[(CompiletimeCosting.this)#Sym]
- Attributes
- protected
- Definition Classes
- GraphVizExport
-
def
colBuilder: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#CollBuilder]
- Definition Classes
- RuntimeCosting → Library
- Annotations
- @inline()
-
def
compose[A, B, C](f: (CompiletimeCosting.this)#Ref[(B) ⇒ C], g: (CompiletimeCosting.this)#Ref[(A) ⇒ B]): (CompiletimeCosting.this)#Ref[(A) ⇒ C]
Composition of two functions (in mathematical notation), where first
g
is applied and themf
.Composition of two functions (in mathematical notation), where first
g
is applied and themf
.- Definition Classes
- Functions
-
def
constCost[T](implicit arg0: (CompiletimeCosting.this)#Elem[T]): (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- RuntimeCosting
-
def
constCost(tpe: SType): (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- RuntimeCosting
-
def
constFun[A, B](x: (CompiletimeCosting.this)#Ref[B])(implicit e: (CompiletimeCosting.this)#Elem[A]): (CompiletimeCosting.this)#Ref[(A) ⇒ B]
- Definition Classes
- Functions
-
def
constantTypeSize[T](implicit eT: (CompiletimeCosting.this)#Elem[T]): (CompiletimeCosting.this)#RSize[T]
- Definition Classes
- RuntimeCosting
-
final
def
container[F[_]](implicit arg0: (CompiletimeCosting.this)#Cont[F]): (CompiletimeCosting.this)#Cont[F]
- Definition Classes
- TypeDescs
-
implicit final
def
containerElem[F[_], A](implicit arg0: (CompiletimeCosting.this)#Cont[F], arg1: (CompiletimeCosting.this)#Elem[A]): (CompiletimeCosting.this)#Elem[F[A]]
- Definition Classes
- TypeDescs
-
def
cost[T](env: ScriptEnv, typed: SValue): (CompiletimeCosting.this)#Ref[((CompiletimeCosting.this)#Costed[(CompiletimeCosting.this)#Context]) ⇒ (CompiletimeCosting.this)#Costed[T]]
- Definition Classes
- RuntimeCosting
-
def
costOf(v: SValue): (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- RuntimeCosting
-
def
costOf(method: SMethod): (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- RuntimeCosting
-
def
costOf(opName: String, opType: SFunc): (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- RuntimeCosting
-
def
costOf(opName: String, opType: SFunc, doEval: Boolean): (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- RuntimeCosting
-
def
costOf(costOp: (CompiletimeCosting.this)#CostOf, doEval: Boolean): (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- RuntimeCosting
-
def
costOfSigmaTree(sigmaTree: SigmaBoolean): Int
- Definition Classes
- RuntimeCosting
-
def
costedBooleanTransformer[T](node: BooleanTransformer[_], xs: (CompiletimeCosting.this)#RCostedColl[T], condition: (CompiletimeCosting.this)#RCosted[(T) ⇒ WrappedType], calcF: (CompiletimeCosting.this)#Ref[(T) ⇒ Any], accCost: (CompiletimeCosting.this)#Ref[Int]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Costed[_ >: Boolean with (CompiletimeCosting.this)#SigmaProp]]
- Definition Classes
- RuntimeCosting
-
def
costedBuilder: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#CostedBuilder]
- Definition Classes
- RuntimeCosting → Library
- Annotations
- @inline()
-
def
costedGlobal: (CompiletimeCosting.this)#RCosted[(CompiletimeCosting.this)#SigmaDslBuilder]
- Definition Classes
- RuntimeCosting
- Annotations
- @inline()
-
def
costedPrimToColl[A](coll: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Coll[A]], c: (CompiletimeCosting.this)#Ref[Int], s: (CompiletimeCosting.this)#RSize[(CompiletimeCosting.this)#Coll[A]]): (CompiletimeCosting.this)#RCostedColl[A]
- Definition Classes
- RuntimeCosting
-
def
costedPrimToOption[A](opt: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#WOption[A]], c: (CompiletimeCosting.this)#Ref[Int], s: (CompiletimeCosting.this)#RSize[(CompiletimeCosting.this)#WOption[A]]): (CompiletimeCosting.this)#RCostedOption[A]
- Definition Classes
- RuntimeCosting
-
def
costedPrimToPair[A, B](p: (CompiletimeCosting.this)#Ref[(A, B)], c: (CompiletimeCosting.this)#Ref[Int], s: (CompiletimeCosting.this)#RSize[(A, B)]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#CCostedPair[A, B]]
- Definition Classes
- RuntimeCosting
-
def
createDefinition[T](optScope: Nullable[(CompiletimeCosting.this)#ThunkScope], s: (CompiletimeCosting.this)#Ref[T], d: (CompiletimeCosting.this)#Def[T]): (CompiletimeCosting.this)#Ref[T]
Here we hook into graph building process at the point where each new graph node is added to the graph.
Here we hook into graph building process at the point where each new graph node is added to the graph. First, we call
super.createDefinition
, which adds the new noded
to the graph (s
is the node's symbol). Next, we update context dependence analysis information (see isSupportedIndexExpression) The graph node iscontext-dependent
if: 1) it is the node of Context type 2) all nodes it depends on arecontext-dependent
- 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 iss
)
- Attributes
- protected
- Definition Classes
- RuntimeCosting → Base
- See also
super.createDefinition, isSupportedIndexExpression
-
def
currentPass: (CompiletimeCosting.this)#Pass
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
-
val
debugModeSanityChecks: Boolean
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
-
def
defCount: Int
Returns a number of definitions added to this IR context.
Returns a number of definitions added to this IR context.
- Definition Classes
- Base
-
def
def_unapply[T](e: (CompiletimeCosting.this)#Ref[T]): Nullable[(CompiletimeCosting.this)#Def[T]]
- Definition Classes
- Base
-
def
defaultGraphVizConfig: GraphVizConfig
- Definition Classes
- GraphVizExport
-
def
delayInvoke: Nothing
- Definition Classes
- MethodCalls
-
def
downcast[To](value: (CompiletimeCosting.this)#Ref[_])(implicit arg0: (CompiletimeCosting.this)#Elem[To]): (CompiletimeCosting.this)#Ref[To]
- Definition Classes
- UniversalOps
-
val
eCollByte: (CompiletimeCosting.this)#Elem[(CompiletimeCosting.this)#Coll[Byte]]
- Definition Classes
- RuntimeCosting
-
val
ePairOfCollByte: (CompiletimeCosting.this)#Elem[((CompiletimeCosting.this)#Coll[Byte], (CompiletimeCosting.this)#Coll[Byte])]
- Definition Classes
- RuntimeCosting
-
val
elemCache: AVHashMap[Class[_], (CompiletimeCosting.this)#ElemCacheEntry]
- Attributes
- protected
- Definition Classes
- TypeDescs
-
def
elemToCostedElem[T](implicit e: (CompiletimeCosting.this)#Elem[T]): (CompiletimeCosting.this)#Elem[(CompiletimeCosting.this)#Costed[T]]
For a given data type returns the corresponding specific descendant of CostedElem[T]
For a given data type returns the corresponding specific descendant of CostedElem[T]
- Definition Classes
- RuntimeCosting
-
def
elemToExactIntegral[T](e: (CompiletimeCosting.this)#Elem[T]): ExactIntegral[T]
- Definition Classes
- RuntimeCosting
-
def
elemToExactNumeric[T](e: (CompiletimeCosting.this)#Elem[T]): ExactNumeric[T]
- Definition Classes
- RuntimeCosting
-
def
elemToExactOrdering[T](e: (CompiletimeCosting.this)#Elem[T]): ExactOrdering[T]
- Definition Classes
- RuntimeCosting
-
def
elemToSType[T](e: (CompiletimeCosting.this)#Elem[T]): SType
- Definition Classes
- RuntimeCosting
-
final
def
element[A](implicit ea: (CompiletimeCosting.this)#Elem[A]): (CompiletimeCosting.this)#Elem[A]
- Definition Classes
- TypeDescs
-
def
emitDepGraph(exceptionOrGraph: Either[Throwable, (CompiletimeCosting.this)#AstGraph], directory: File, fileName: String)(implicit config: GraphVizConfig): Option[(CompiletimeCosting.this)#GraphFile]
- Definition Classes
- GraphVizExport
-
def
emitDepGraph(graph: (CompiletimeCosting.this)#AstGraph, directory: File, fileName: String)(implicit config: GraphVizConfig): Option[(CompiletimeCosting.this)#GraphFile]
- Definition Classes
- GraphVizExport
-
def
emitDepGraph(ss: Seq[(CompiletimeCosting.this)#Sym], directory: File, fileName: String)(implicit config: GraphVizConfig): Option[(CompiletimeCosting.this)#GraphFile]
- Definition Classes
- GraphVizExport
-
def
emitDepGraph(start: (CompiletimeCosting.this)#Sym, directory: File, fileName: String)(implicit config: GraphVizConfig): Option[(CompiletimeCosting.this)#GraphFile]
- Definition Classes
- GraphVizExport
-
def
emitDepGraph(d: (CompiletimeCosting.this)#Def[_], directory: File, fileName: String)(implicit config: GraphVizConfig): Option[(CompiletimeCosting.this)#GraphFile]
- Definition Classes
- GraphVizExport
-
def
emitDot(dotText: String, directory: File, fileName: String)(implicit config: GraphVizConfig): Option[(CompiletimeCosting.this)#GraphFile]
- Definition Classes
- GraphVizExport
-
def
emitExceptionGraph(e: Throwable, directory: File, fileName: String)(implicit config: GraphVizConfig): Option[(CompiletimeCosting.this)#GraphFile]
- Definition Classes
- GraphVizExport
-
def
emptyMatchSubst: (CompiletimeCosting.this)#Subst
- Definition Classes
- Functions
- Annotations
- @inline()
-
def
endPass(pass: (CompiletimeCosting.this)#Pass): Unit
Called to let this IR context to finalized the given pass.
Called to let this IR context to finalized the given pass.
- Definition Classes
- Transforming
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equalValues[A](x: Any, y: Any)(implicit eA: (CompiletimeCosting.this)#Elem[A]): Boolean
- Attributes
- protected
- Definition Classes
- Equal
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
error(msg: String, srcCtx: Option[SourceContext]): Nothing
- Definition Classes
- RuntimeCosting
-
def
error(msg: String): Nothing
- Definition Classes
- RuntimeCosting
-
def
evalNode[T <: SType](ctx: (CompiletimeCosting.this)#RCosted[(CompiletimeCosting.this)#Context], env: (CompiletimeCosting.this)#CostingEnv, node: Value[T]): (CompiletimeCosting.this)#RCosted[evalNode.T.WrappedType]
Recursively translates each ErgoTree
node
into the corresponding cost formula.Recursively translates each ErgoTree
node
into the corresponding cost formula. The cost formula is represented using graph-based IR defined by this IRContext cake. Eachnode: Value[T]
which evaluates to the value of typeT
is transformed to a value of typeRCosted[A]
which is a synonym ofRef[Costed[A]]
type. The translation is performed recursively on a structure of the ErgoTree expression.- ctx
reference to the graph node, which represents costed
CONTEXT
expression.- env
environment of costed ValDef nodes (see BlockValue case).
- node
expression to be costed
- returns
a reference to the graph node of type Costed[T#WrappedType]
- Definition Classes
- CompiletimeCosting → RuntimeCosting
-
implicit
def
extendCostedCollElem[A](elem: (CompiletimeCosting.this)#Elem[(CompiletimeCosting.this)#CostedColl[A]]): CostedCollElem[A, (CompiletimeCosting.this)#CostedColl[A]]
- Definition Classes
- RuntimeCosting
-
implicit
def
extendCostedElem[A](elem: (CompiletimeCosting.this)#Elem[(CompiletimeCosting.this)#Costed[A]]): CostedElem[A, (CompiletimeCosting.this)#Costed[A]]
- Definition Classes
- RuntimeCosting
-
implicit
def
extendCostedFuncElem[E, A, B](e: (CompiletimeCosting.this)#Elem[(CompiletimeCosting.this)#CostedFunc[E, A, B]]): CostedFuncElem[E, A, B, _]
- Definition Classes
- RuntimeCosting
-
implicit
def
extendSizeElem[A](elem: (CompiletimeCosting.this)#Elem[(CompiletimeCosting.this)#Size[A]]): SizeElem[A, (CompiletimeCosting.this)#Size[A]]
- Definition Classes
- RuntimeCosting
-
implicit
def
extendThunkElement[T](elem: (CompiletimeCosting.this)#Elem[(CompiletimeCosting.this)#Thunk[T]]): (CompiletimeCosting.this)#ThunkElem[T]
- Definition Classes
- Thunks
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
findGlobalDefinition[T](d: (CompiletimeCosting.this)#Def[T]): (CompiletimeCosting.this)#Ref[T]
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 tod
- Definition Classes
- Base
-
def
findOrCreateDefinition[T](d: (CompiletimeCosting.this)#Def[T], newSym: ⇒ (CompiletimeCosting.this)#Ref[T]): (CompiletimeCosting.this)#Ref[T]
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 andd.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
- Definition Classes
- Base
-
def
forceThunkByMirror[A](thunk: (CompiletimeCosting.this)#Th[A], subst: (CompiletimeCosting.this)#MapTransformer = MapTransformer.empty()): (CompiletimeCosting.this)#Ref[A]
- Definition Classes
- Thunks
-
def
forceThunkDefByMirror[A](th: (CompiletimeCosting.this)#ThunkDef[A], subst: (CompiletimeCosting.this)#MapTransformer = MapTransformer.empty()): (CompiletimeCosting.this)#Ref[A]
- Definition Classes
- Thunks
-
def
formatConst(x: Any): String
- Attributes
- protected
- Definition Classes
- GraphVizExport
-
def
formatDef(d: (CompiletimeCosting.this)#Def[_])(implicit config: GraphVizConfig): String
Used by Graphviz dot file generator to format text label of the graph node.
Used by Graphviz dot file generator to format text label of the graph node.
- Attributes
- protected
- Definition Classes
- RuntimeCosting → Thunks → MethodCalls → GraphVizExport
-
def
formatMetadata(s: (CompiletimeCosting.this)#Sym): List[String]
- Attributes
- protected
- Definition Classes
- GraphVizExport
-
final
def
freshId: Int
Get next fresh node id
Get next fresh node id
- Definition Classes
- Base
- Annotations
- @inline()
-
final
def
freshSym[T](d: (CompiletimeCosting.this)#Def[T]): (CompiletimeCosting.this)#Ref[T]
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
atd.nodeId
index.- Definition Classes
- Base
- Annotations
- @inline()
-
implicit final
def
fun[A, B](f: ((CompiletimeCosting.this)#Ref[A]) ⇒ (CompiletimeCosting.this)#Ref[B])(implicit eA: (CompiletimeCosting.this)#LElem[A]): (CompiletimeCosting.this)#Ref[(A) ⇒ B]
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 toVariable
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
-
implicit final
def
fun2[A, B, C](f: ((CompiletimeCosting.this)#Ref[A], (CompiletimeCosting.this)#Ref[B]) ⇒ (CompiletimeCosting.this)#Ref[C])(implicit eA: (CompiletimeCosting.this)#LElem[A], eB: (CompiletimeCosting.this)#LElem[B]): (CompiletimeCosting.this)#Ref[((A, B)) ⇒ C]
- Definition Classes
- Functions
-
implicit final
def
funcElement[A, B](implicit ea: (CompiletimeCosting.this)#Elem[A], eb: (CompiletimeCosting.this)#Elem[B]): (CompiletimeCosting.this)#Elem[(A) ⇒ B]
- Definition Classes
- TypeDescs
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getEntityObject(name: String): Nullable[(CompiletimeCosting.this)#EntityObject]
- Definition Classes
- Base
- Annotations
- @inline()
-
def
getOwnerKind(constructor: Constructor[_]): (CompiletimeCosting.this)#OwnerKind
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
-
def
getRegisterCost: (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- CostingRules
- Annotations
- @inline()
-
final
def
getSourceValues(dataEnv: (CompiletimeCosting.this)#DataEnv, forWrapper: Boolean, stagedValues: AnyRef*): Seq[AnyRef]
- Definition Classes
- TypeDescs
-
final
def
getSym(id: Int): (CompiletimeCosting.this)#Sym
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()
-
implicit
def
groupElementToECPoint(g: special.sigma.GroupElement): EcPointType
- Attributes
- protected
- Definition Classes
- RuntimeCosting
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
identityFun[A](implicit e: (CompiletimeCosting.this)#Elem[A]): (CompiletimeCosting.this)#Ref[(A) ⇒ A]
- Definition Classes
- Functions
-
def
ifThenElseLazy[T](cond: (CompiletimeCosting.this)#Ref[Boolean], thenp: ⇒ (CompiletimeCosting.this)#Ref[T], elsep: ⇒ (CompiletimeCosting.this)#Ref[T]): (CompiletimeCosting.this)#Ref[T]
Constructs IfThenElse node wrapping by-name args into ThunkDef nodes.
Constructs IfThenElse node wrapping by-name args into ThunkDef nodes.
- Definition Classes
- IfThenElse
-
def
intPlusMonoid: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Monoid[Int]]
- Definition Classes
- RuntimeCosting → Library
- Annotations
- @inline()
-
val
intPlusMonoidValue: special.collection.IntPlusMonoid
- Definition Classes
- Library
-
def
integral[T](implicit arg0: ExactIntegral[T]): ExactIntegral[T]
- Definition Classes
- NumericOps
-
def
invokeUnlifted(e: (CompiletimeCosting.this)#Elem[_], mc: (CompiletimeCosting.this)#MethodCall, dataEnv: (CompiletimeCosting.this)#DataEnv): AnyRef
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
-
final
def
isContextDependant(sym: (CompiletimeCosting.this)#Sym): Boolean
- Definition Classes
- RuntimeCosting
- Annotations
- @inline()
-
def
isCostingProcess: Boolean
- Definition Classes
- RuntimeCosting
-
val
isInlineThunksOnForce: Boolean
- Definition Classes
- Thunks
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isInvokeEnabled(d: (CompiletimeCosting.this)#Def[_], m: Method): Boolean
Method invocation enabler.
Method invocation enabler.
- returns
true if the given method can be invoked on the given node.
- Definition Classes
- MethodCalls
-
final
def
isOne[T](x: T, n: ExactNumeric[T]): Boolean
- Definition Classes
- NumericOps
- Annotations
- @inline()
-
def
isSupportedIndexExpression(i: (CompiletimeCosting.this)#Ref[Int]): Boolean
Checks that index expression sub-graph (which root is
i
) consists ofcontext-dependent
nodes.Checks that index expression sub-graph (which root is
i
) consists ofcontext-dependent
nodes. This is used in the validation rule for the costing of ByIndex operation.- Definition Classes
- RuntimeCosting
- See also
RuntimeCosting, CheckIsSupportedIndexExpression
-
final
def
isZero[T](x: T, n: ExactNumeric[T]): Boolean
- Definition Classes
- NumericOps
- Annotations
- @inline()
-
val
keepOriginalFunc: Boolean
Global flag governing lambda reification in
fun
andmkLambda
.Global flag governing lambda reification in
fun
andmkLambda
. If this flag istrue
then originalf: Ref[A] => Ref[B]
function is stored in Lambda node. As a consequence iff
is not stored, thenunfoldLambda
is done bymirrorLambda
.- Definition Classes
- Functions
-
val
lambdaStack: List[(CompiletimeCosting.this)#Lambda[_, _]]
- Definition Classes
- Functions
-
implicit
def
liftElem[T](eT: (CompiletimeCosting.this)#Elem[T]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#WRType[T]]
- Definition Classes
- Library
-
implicit
def
liftToRep[A](x: A)(implicit arg0: (CompiletimeCosting.this)#Elem[A]): (CompiletimeCosting.this)#Ref[A]
- Definition Classes
- Base
- Annotations
- @inline()
-
def
liftableFromElem[WT](eWT: (CompiletimeCosting.this)#Elem[WT]): Liftable[_, WT]
- Definition Classes
- RuntimeCosting
-
implicit
def
liftableThunk[ST, T](implicit lT: Liftable[ST, T]): Liftable[(CompiletimeCosting.this)#SThunk[ST], (CompiletimeCosting.this)#Thunk[T]]
- Definition Classes
- Thunks
-
def
logWarn(msg: ⇒ String): Unit
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
-
def
longPlusMonoid: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Monoid[Long]]
- Definition Classes
- RuntimeCosting → Library
- Annotations
- @inline()
-
val
longPlusMonoidValue: special.collection.LongPlusMonoid
- Definition Classes
- Library
-
def
matchAny(a1: Any, a2: Any, allowInexactMatch: Boolean, subst: (CompiletimeCosting.this)#Subst): Nullable[(CompiletimeCosting.this)#Subst]
- Attributes
- protected
- Definition Classes
- Functions
- def matchDefs(d1: (CompiletimeCosting.this)#Def[_], d2: (CompiletimeCosting.this)#Def[_], allowInexactMatch: Boolean, subst: (CompiletimeCosting.this)#Subst): Nullable[(CompiletimeCosting.this)#Subst]
-
def
matchExps(s1: (CompiletimeCosting.this)#Sym, s2: (CompiletimeCosting.this)#Sym, allowInexactMatch: Boolean, subst: (CompiletimeCosting.this)#Subst): Nullable[(CompiletimeCosting.this)#Subst]
- Attributes
- protected
- Definition Classes
- Functions
-
def
matchIterators(i1: Iterator[_], i2: Iterator[_], allowInexactMatch: Boolean, subst: (CompiletimeCosting.this)#Subst): Nullable[(CompiletimeCosting.this)#Subst]
- Attributes
- protected
- Definition Classes
- Functions
-
def
mirrorApply[A, B](lam: (CompiletimeCosting.this)#Lambda[A, B], s: (CompiletimeCosting.this)#Ref[A]): (CompiletimeCosting.this)#Ref[B]
- Definition Classes
- Functions
-
def
mkApply[A, B](f: (CompiletimeCosting.this)#Ref[(A) ⇒ B], x: (CompiletimeCosting.this)#Ref[A]): (CompiletimeCosting.this)#Ref[B]
- Definition Classes
- Functions
-
def
mkCostedColl[T](col: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Coll[T]], len: (CompiletimeCosting.this)#Ref[Int], cost: (CompiletimeCosting.this)#Ref[Int]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#CostedColl[T]]
Helper to create costed collection of some constant size type T
Helper to create costed collection of some constant size type T
- Definition Classes
- RuntimeCosting
-
def
mkCostedColl[T](values: (CompiletimeCosting.this)#RColl[T], costs: (CompiletimeCosting.this)#RColl[Int], sizes: (CompiletimeCosting.this)#RColl[(CompiletimeCosting.this)#Size[T]], valuesCost: (CompiletimeCosting.this)#Ref[Int]): (CompiletimeCosting.this)#RCostedColl[T]
- Definition Classes
- CostingRules
-
def
mkCostedFunc[A, R](f: (CompiletimeCosting.this)#RFuncCosted[A, R], cost: (CompiletimeCosting.this)#Ref[Int], codeSize: (CompiletimeCosting.this)#Ref[Long], eArg: (CompiletimeCosting.this)#Elem[A], eRes: (CompiletimeCosting.this)#Elem[R]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#CostedFunc[Unit, A, R]]
- Definition Classes
- CostingRules
-
def
mkCostedOption[T](value: (CompiletimeCosting.this)#ROption[T], costOpt: (CompiletimeCosting.this)#ROption[Int], sizeOpt: (CompiletimeCosting.this)#ROption[(CompiletimeCosting.this)#Size[T]], accCost: (CompiletimeCosting.this)#Ref[Int]): (CompiletimeCosting.this)#RCostedOption[T]
- Definition Classes
- CostingRules
-
def
mkLambda[A, B, C](f: ((CompiletimeCosting.this)#Ref[A], (CompiletimeCosting.this)#Ref[B]) ⇒ (CompiletimeCosting.this)#Ref[C])(implicit eA: (CompiletimeCosting.this)#LElem[A], eB: (CompiletimeCosting.this)#LElem[B]): (CompiletimeCosting.this)#Ref[((A, B)) ⇒ C]
- Definition Classes
- Functions
-
def
mkLambda[A, B, C](f: ((CompiletimeCosting.this)#Ref[A]) ⇒ ((CompiletimeCosting.this)#Ref[B]) ⇒ (CompiletimeCosting.this)#Ref[C])(implicit eA: (CompiletimeCosting.this)#LElem[A], eB: (CompiletimeCosting.this)#Elem[B]): (CompiletimeCosting.this)#Ref[(A) ⇒ (B) ⇒ C]
- Definition Classes
- Functions
-
def
mkLambda[A, B](f: ((CompiletimeCosting.this)#Ref[A]) ⇒ (CompiletimeCosting.this)#Ref[B], mayInline: Boolean, alphaEquality: Boolean, keepOriginalFunc: Boolean)(implicit eA: (CompiletimeCosting.this)#LElem[A]): (CompiletimeCosting.this)#Ref[(A) ⇒ B]
- Definition Classes
- Functions
-
def
mkMethodCall(receiver: (CompiletimeCosting.this)#Sym, method: Method, args: Seq[AnyRef], neverInvoke: Boolean, isAdapterCall: Boolean, resultElem: (CompiletimeCosting.this)#Elem[_]): (CompiletimeCosting.this)#Sym
Creates new MethodCall node and returns its node ref.
Creates new MethodCall node and returns its node ref.
- Definition Classes
- MethodCalls
-
def
mkNormalizedOpCost(costedValue: (CompiletimeCosting.this)#Sym, costs: Seq[(CompiletimeCosting.this)#Ref[Int]]): (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- RuntimeCosting
-
def
mkSizeColl[T](len: (CompiletimeCosting.this)#Ref[Int])(implicit arg0: (CompiletimeCosting.this)#Elem[T]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Size[(CompiletimeCosting.this)#Coll[T]]]
- Definition Classes
- CostingRules
-
def
mkSizeOption[T](size: (CompiletimeCosting.this)#RSize[T]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Size[(CompiletimeCosting.this)#WOption[T]]]
- Definition Classes
- CostingRules
-
def
mkSizePair[A, B](l: (CompiletimeCosting.this)#RSize[A], r: (CompiletimeCosting.this)#RSize[B]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Size[(A, B)]]
- Definition Classes
- CostingRules
-
def
monoidBuilder: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#MonoidBuilder]
- Definition Classes
- RuntimeCosting
- Annotations
- @inline()
-
val
nInitialDefs: Int
- Definition Classes
- Base
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
newObjEx[A](args: Any*)(implicit eA: (CompiletimeCosting.this)#Elem[A]): (CompiletimeCosting.this)#Ref[A]
Creates new NewObject node and returns its node ref.
Creates new NewObject node and returns its node ref.
- Definition Classes
- MethodCalls
-
def
nodeColor(td: (CompiletimeCosting.this)#TypeDesc, d: (CompiletimeCosting.this)#Def[_])(implicit config: GraphVizConfig): String
- Attributes
- protected
- Definition Classes
- Thunks → GraphVizExport
-
def
nodeColor(td: (CompiletimeCosting.this)#TypeDesc): String
- Attributes
- protected
- Definition Classes
- GraphVizExport
-
final
def
nodeLabel(parts: String*)(implicit config: GraphVizConfig): String
- Attributes
- protected
- Definition Classes
- GraphVizExport
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
numeric[T](implicit arg0: ExactNumeric[T]): ExactNumeric[T]
- Definition Classes
- NumericOps
-
val
okMeasureOperationTime: Boolean
- Definition Classes
- RuntimeCosting
-
val
okPrintEvaluatedEntries: Boolean
Whether to print values of evaluated nodes of the graph.
Whether to print values of evaluated nodes of the graph.
- Definition Classes
- RuntimeCosting
-
def
okRegisterModules: Boolean
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
-
def
onReset(): Unit
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
- RuntimeCosting → CostingRules → Library → Base
-
def
onTreeNodeCosted[T <: SType](ctx: (CompiletimeCosting.this)#RCosted[(CompiletimeCosting.this)#Context], env: (CompiletimeCosting.this)#CostingEnv, node: Value[T], costed: (CompiletimeCosting.this)#RCosted[RuntimeCosting.onTreeNodeCosted.T.WrappedType]): Unit
- Attributes
- protected
- Definition Classes
- RuntimeCosting
-
def
opCost(costedValue: (CompiletimeCosting.this)#Sym, args: Seq[(CompiletimeCosting.this)#Ref[Int]], opCost: (CompiletimeCosting.this)#Ref[Int]): (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- UniversalOps
-
def
opcodeToBinOp[A](opCode: Byte, eA: (CompiletimeCosting.this)#Elem[A]): (CompiletimeCosting.this)#BinOp[A, _]
- Definition Classes
- RuntimeCosting
-
def
opcodeToEndoBinOp[T](opCode: Byte, eT: (CompiletimeCosting.this)#Elem[T]): (CompiletimeCosting.this)#EndoBinOp[T]
- Definition Classes
- RuntimeCosting
-
val
outputComputedResults: Boolean
Whether to output the computed results of the script.
Whether to output the computed results of the script.
- Definition Classes
- RuntimeCosting
-
val
outputEstimatedCost: Boolean
Whether to output the cost value estimated for the script given by ScriptNameProp environment variable
Whether to output the cost value estimated for the script given by ScriptNameProp environment variable
- Definition Classes
- RuntimeCosting
-
implicit final
def
pairElement[A, B](implicit ea: (CompiletimeCosting.this)#Elem[A], eb: (CompiletimeCosting.this)#Elem[B]): (CompiletimeCosting.this)#Elem[(A, B)]
- Definition Classes
- TypeDescs
-
def
partsIterator(td: (CompiletimeCosting.this)#TypeDesc): TraversableOnce[(CompiletimeCosting.this)#TypeDesc] { def seq: scala.collection.TraversableOnce[CompiletimeCosting.this.TypeDesc]{def seq: scala.collection.TraversableOnce[CompiletimeCosting.this.TypeDesc]{def seq: scala.collection.TraversableOnce[CompiletimeCosting.this.TypeDesc]}} }
- Attributes
- protected
- Definition Classes
- GraphVizExport
-
def
patternMatch(s1: (CompiletimeCosting.this)#Sym, s2: (CompiletimeCosting.this)#Sym): Nullable[(CompiletimeCosting.this)#Subst]
- Definition Classes
- Functions
-
def
perItemCostOf(node: SValue, arrLength: (CompiletimeCosting.this)#Ref[Int]): (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- RuntimeCosting
-
def
perKbCostOf(node: SValue, dataSize: (CompiletimeCosting.this)#Ref[Long]): (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- RuntimeCosting
-
def
perKbCostOf(opName: String, opType: SFunc, dataSize: (CompiletimeCosting.this)#Ref[Long]): (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- RuntimeCosting
-
def
perKbCostOf(method: SMethod, dataSize: (CompiletimeCosting.this)#Ref[Long]): (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- RuntimeCosting
-
def
placeholder[T](implicit eT: (CompiletimeCosting.this)#LElem[T]): (CompiletimeCosting.this)#Ref[T]
- Definition Classes
- Base
- Annotations
- @inline()
-
def
propagateBinOp[T, R](op: (CompiletimeCosting.this)#BinOp[T, R], x: (CompiletimeCosting.this)#Ref[T], y: (CompiletimeCosting.this)#Ref[T]): (CompiletimeCosting.this)#Ref[R]
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
-
def
propagateUnOp[T, R](op: (CompiletimeCosting.this)#UnOp[T, R], x: (CompiletimeCosting.this)#Ref[T]): (CompiletimeCosting.this)#Ref[R]
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
-
def
registerEntityObject(name: String, obj: (CompiletimeCosting.this)#EntityObject): Unit
- Attributes
- protected
- Definition Classes
- Base
-
def
registerModule(moduleInfo: ModuleInfo): Unit
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
-
implicit
def
reifyObject[A](obj: (CompiletimeCosting.this)#Def[A]): (CompiletimeCosting.this)#Ref[A]
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 thatobj equals n
, then the value ofn.self
is returned, i.e. the new nodeobj
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
-
def
removeIsProven[T, R](f: ((CompiletimeCosting.this)#Ref[T]) ⇒ (CompiletimeCosting.this)#Ref[Any]): ((CompiletimeCosting.this)#Ref[T]) ⇒ (CompiletimeCosting.this)#Ref[Any]
- Definition Classes
- RuntimeCosting
-
implicit
def
repOrderingToOrderingOps[T](x: (CompiletimeCosting.this)#Ref[T])(implicit n: ExactOrdering[T]): (CompiletimeCosting.this)#OrderingOpsCls[T]
- Definition Classes
- OrderingOps
-
implicit
def
repToThunk[A](block: (CompiletimeCosting.this)#Ref[A]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Thunk[A]]
- Definition Classes
- Thunks
-
def
resetContext(): Unit
- Definition Classes
- CostedObjectsDefs → Base
-
final
def
rewriteBinOp[A, R](op: (CompiletimeCosting.this)#BinOp[A, R], x: (CompiletimeCosting.this)#Ref[A], y: (CompiletimeCosting.this)#Ref[A]): (CompiletimeCosting.this)#Ref[_]
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
-
final
def
rewriteBoolConsts(lhs: (CompiletimeCosting.this)#Sym, rhs: (CompiletimeCosting.this)#Sym, ifTrue: ((CompiletimeCosting.this)#Sym) ⇒ (CompiletimeCosting.this)#Sym, ifFalse: ((CompiletimeCosting.this)#Sym) ⇒ (CompiletimeCosting.this)#Sym, ifEqual: ((CompiletimeCosting.this)#Sym) ⇒ (CompiletimeCosting.this)#Sym, ifNegated: ((CompiletimeCosting.this)#Sym) ⇒ (CompiletimeCosting.this)#Sym): (CompiletimeCosting.this)#Sym
- Definition Classes
- LogicalOps
- Annotations
- @inline()
-
def
rewriteDef[T](d: (CompiletimeCosting.this)#Def[T]): (CompiletimeCosting.this)#Ref[_]
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.
- 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
- CompiletimeCosting → RuntimeCosting → Library → DefRewriting
-
def
rewriteNonInvokableMethodCall(mc: (CompiletimeCosting.this)#MethodCall): (CompiletimeCosting.this)#Ref[_]
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
- RuntimeCosting → MethodCalls
-
final
def
rewriteUnOp[A, R](op: (CompiletimeCosting.this)#UnOp[A, R], x: (CompiletimeCosting.this)#Ref[A]): (CompiletimeCosting.this)#Ref[_]
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
-
val
ruleStack: List[(CompiletimeCosting.this)#CostingRuleStat]
- Definition Classes
- RuntimeCosting
-
val
saveGraphsInFile: Boolean
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
- RuntimeCosting
-
def
selectFieldCost: (CompiletimeCosting.this)#Ref[Int]
- Definition Classes
- CostingRules
- Annotations
- @inline()
-
def
shouldEmitCluster(g: (CompiletimeCosting.this)#AstGraph): Boolean
- Attributes
- protected
- Definition Classes
- GraphVizExport
-
def
showGraphs(graph: (CompiletimeCosting.this)#AstGraph)(implicit config: GraphVizConfig): Unit
- Definition Classes
- GraphVizExport
-
def
showGraphs(roots: (CompiletimeCosting.this)#Sym*)(implicit config: GraphVizConfig): Unit
- Definition Classes
- GraphVizExport
-
def
sigmaDslBuilder: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#SigmaDslBuilder]
- Definition Classes
- RuntimeCosting → SigmaLibrary
- Annotations
- @inline()
-
implicit
lazy val
sizeAnyElement: (CompiletimeCosting.this)#Elem[(CompiletimeCosting.this)#Size[Any]]
- Definition Classes
- SigmaLibrary
-
def
sizeOf[T](value: (CompiletimeCosting.this)#Ref[T]): (CompiletimeCosting.this)#Ref[Long]
- Definition Classes
- UniversalOps
-
def
sizeOfData[ST, T](x: ST)(implicit lT: Liftable[ST, T]): (CompiletimeCosting.this)#RSize[T]
- Definition Classes
- RuntimeCosting
-
def
specialPredef: (CompiletimeCosting.this)#Ref[WSpecialPredefCompanionCtor]
- Definition Classes
- Library
-
def
splitCostedCollFunc[A, B](f: (CompiletimeCosting.this)#RCostedCollFunc[A, B]): ((CompiletimeCosting.this)#Ref[(A) ⇒ (CompiletimeCosting.this)#Coll[B]], (CompiletimeCosting.this)#Ref[((Int, (CompiletimeCosting.this)#Size[A])) ⇒ ((CompiletimeCosting.this)#Coll[Int], Int)], (CompiletimeCosting.this)#Ref[((CompiletimeCosting.this)#Size[A]) ⇒ (CompiletimeCosting.this)#Coll[(CompiletimeCosting.this)#Size[B]]])
- Definition Classes
- RuntimeCosting
-
def
splitCostedFunc[A, B](f: (CompiletimeCosting.this)#RFuncCosted[A, B]): ((CompiletimeCosting.this)#Ref[(A) ⇒ B], (CompiletimeCosting.this)#Ref[((Int, (CompiletimeCosting.this)#Size[A])) ⇒ Int], (CompiletimeCosting.this)#Ref[((CompiletimeCosting.this)#Size[A]) ⇒ (CompiletimeCosting.this)#Size[B]])
- Definition Classes
- RuntimeCosting
-
def
splitCostedFunc2[A, B](f: (CompiletimeCosting.this)#RFuncCosted[A, B], okRemoveIsValid: Boolean): ((CompiletimeCosting.this)#Ref[(A) ⇒ Any], (CompiletimeCosting.this)#Ref[((Int, (CompiletimeCosting.this)#Size[A])) ⇒ Int])
- Definition Classes
- RuntimeCosting
-
def
stagingExceptionMessage(message: String, syms: Seq[(CompiletimeCosting.this)#Ref[_]]): String
Prettyprint exception message
Prettyprint exception message
- Attributes
- protected
- Definition Classes
- Base
-
def
stypeToElem[T <: SType](t: T): (CompiletimeCosting.this)#Elem[RuntimeCosting.stypeToElem.T.WrappedType]
- Definition Classes
- RuntimeCosting
-
val
substFromCostTable: Boolean
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
- RuntimeCosting
-
implicit final
def
sumElement[A, B](implicit ea: (CompiletimeCosting.this)#Elem[A], eb: (CompiletimeCosting.this)#Elem[B]): (CompiletimeCosting.this)#Elem[(CompiletimeCosting.this)#|[A, B]]
- Definition Classes
- TypeDescs
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
throwInvocationException(whatFailed: String, cause: Throwable, receiver: (CompiletimeCosting.this)#Sym, m: Method, args: Seq[Any]): Nothing
- Definition Classes
- MethodCalls
-
implicit
val
thunkCont: (CompiletimeCosting.this)#Cont[(CompiletimeCosting.this)#Thunk]
- Definition Classes
- Thunks
-
implicit
def
thunkElement[T](implicit eItem: (CompiletimeCosting.this)#Elem[T]): (CompiletimeCosting.this)#Elem[(CompiletimeCosting.this)#Thunk[T]]
- Definition Classes
- Thunks
-
val
thunkStack: (CompiletimeCosting.this)#ThunkStack
- Attributes
- protected
- Definition Classes
- Thunks
-
def
thunk_create[A](block: ⇒ (CompiletimeCosting.this)#Ref[A]): (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Thunk[A]]
- Definition Classes
- Thunks
-
def
thunk_force[A](t: (CompiletimeCosting.this)#Th[A]): (CompiletimeCosting.this)#Ref[A]
- Definition Classes
- Thunks
-
def
thunk_map[A, B](t: (CompiletimeCosting.this)#Th[A], f: (CompiletimeCosting.this)#Ref[(A) ⇒ B]): (CompiletimeCosting.this)#Th[B]
- Definition Classes
- Thunks
-
def
thunk_map1[A, B](t: (CompiletimeCosting.this)#Th[A], f: ((CompiletimeCosting.this)#Ref[A]) ⇒ (CompiletimeCosting.this)#Ref[B]): (CompiletimeCosting.this)#Th[B]
- Definition Classes
- Thunks
-
def
toExp[T](d: (CompiletimeCosting.this)#Def[T], newSym: ⇒ (CompiletimeCosting.this)#Ref[T]): (CompiletimeCosting.this)#Ref[T]
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
-
implicit final
def
toLazyElem[A](implicit eA: (CompiletimeCosting.this)#Elem[A]): (CompiletimeCosting.this)#LElem[A]
- Definition Classes
- TypeDescs
-
def
toRep[A](x: A)(implicit eA: (CompiletimeCosting.this)#Elem[A]): (CompiletimeCosting.this)#Ref[A]
Lifting of data values to IR nodes.
Lifting of data values to IR nodes.
- Definition Classes
- Base
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
transformProductParam(x: Any, t: (CompiletimeCosting.this)#Transformer): Any
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.- Attributes
- protected
- Definition Classes
- Base
-
def
tryCast[To](x: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Def[_]])(implicit eTo: (CompiletimeCosting.this)#Elem[To]): (CompiletimeCosting.this)#Ref[To]
- Definition Classes
- CostingRules
-
def
tryConvert[From, To](eFrom: (CompiletimeCosting.this)#Elem[From], eTo: (CompiletimeCosting.this)#Elem[To], x: (CompiletimeCosting.this)#Ref[(CompiletimeCosting.this)#Def[_]], conv: (CompiletimeCosting.this)#Ref[(From) ⇒ To]): (CompiletimeCosting.this)#Ref[To]
- Definition Classes
- UniversalOps
-
val
tuplesCache: AVHashMap[(CompiletimeCosting.this)#Ref[_], ((CompiletimeCosting.this)#Ref[_], (CompiletimeCosting.this)#Ref[_])]
- Definition Classes
- Tuples
-
def
typeSize[T](implicit arg0: (CompiletimeCosting.this)#Elem[T]): (CompiletimeCosting.this)#Ref[Long]
- Definition Classes
- RuntimeCosting
-
def
typeSize(tpe: SType): (CompiletimeCosting.this)#Ref[Long]
- Definition Classes
- RuntimeCosting
-
def
unfoldLambda[A, B](f: (CompiletimeCosting.this)#Ref[(A) ⇒ B], x: (CompiletimeCosting.this)#Ref[A]): (CompiletimeCosting.this)#Ref[B]
- Definition Classes
- Functions
-
def
unfoldLambda[A, B](lam: (CompiletimeCosting.this)#Lambda[A, B], x: (CompiletimeCosting.this)#Ref[A]): (CompiletimeCosting.this)#Ref[B]
- Definition Classes
- Functions
-
val
unfoldWithOriginalFunc: Boolean
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 isfalse
then this function cannot be used even if it is present in the node.- Definition Classes
- Functions
-
def
unrefDelegate[T <: AnyRef](x: (CompiletimeCosting.this)#Ref[T])(implicit ct: ClassTag[T]): T
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
-
def
unzipPair[A, B](p: (CompiletimeCosting.this)#Ref[(A, B)]): ((CompiletimeCosting.this)#Ref[A], (CompiletimeCosting.this)#Ref[B])
- Definition Classes
- Tuples
-
def
upcast[To](value: (CompiletimeCosting.this)#Ref[_])(implicit arg0: (CompiletimeCosting.this)#Elem[To]): (CompiletimeCosting.this)#Ref[To]
- Definition Classes
- UniversalOps
-
def
upcastFun[A, B >: A](implicit arg0: (CompiletimeCosting.this)#Elem[A]): (CompiletimeCosting.this)#Ref[(A) ⇒ B]
- Definition Classes
- Functions
-
final
def
updateSymbolTable[T](s: (CompiletimeCosting.this)#Ref[T], d: (CompiletimeCosting.this)#Def[T]): (CompiletimeCosting.this)#Ref[T]
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
- Definition Classes
- Base
-
val
useAlphaEquality: Boolean
Global lambda equality mode used by default.
Global lambda equality mode used by default. It is used in
fun
andfun2
lambda builders. If this flag istrue
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
-
final
def
valueFromRep[A](x: (CompiletimeCosting.this)#Ref[A]): A
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()
-
def
variable[T](implicit eT: (CompiletimeCosting.this)#LElem[T]): (CompiletimeCosting.this)#Ref[T]
- Definition Classes
- Base
- Annotations
- @inline()
-
implicit
lazy val
wRTypeAnyElement: (CompiletimeCosting.this)#Elem[(CompiletimeCosting.this)#WRType[Any]]
- Definition Classes
- SigmaLibrary
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
withConstantSize[T](v: (CompiletimeCosting.this)#Ref[T], cost: (CompiletimeCosting.this)#Ref[Int]): (CompiletimeCosting.this)#RCosted[T]
- Definition Classes
- RuntimeCosting
-
def
zeroSize[V](eVal: (CompiletimeCosting.this)#Elem[V]): (CompiletimeCosting.this)#RSize[V]
- Definition Classes
- Library
-
implicit
def
zipPair[A, B](p: ((CompiletimeCosting.this)#Ref[A], (CompiletimeCosting.this)#Ref[B])): (CompiletimeCosting.this)#Ref[(A, B)]
- Definition Classes
- Tuples
-
object
AvlTreeCoster extends IRContext.CostingHandler[IRContext.AvlTree]
- Definition Classes
- CostingRules
-
object
BoxCoster extends IRContext.CostingHandler[IRContext.Box]
- Definition Classes
- CostingRules
-
object
CollCoster extends IRContext.CostingHandler[IRContext.Coll[Any]]
- Definition Classes
- CostingRules
-
object
ContextCoster extends IRContext.CostingHandler[IRContext.Context]
- Definition Classes
- CostingRules
-
object
GroupElementCoster extends IRContext.CostingHandler[IRContext.GroupElement]
CostingHandler for SGroupElement, see SGroupElement.coster
CostingHandler for SGroupElement, see SGroupElement.coster
- Definition Classes
- CostingRules
-
object
HeaderCoster extends IRContext.CostingHandler[IRContext.Header]
- Definition Classes
- CostingRules
-
object
OptionCoster extends IRContext.CostingHandler[IRContext.WOption[Any]]
- Definition Classes
- CostingRules
-
object
PreHeaderCoster extends IRContext.CostingHandler[IRContext.PreHeader]
- Definition Classes
- CostingRules
-
object
SigmaDslBuilderCoster extends IRContext.CostingHandler[IRContext.SigmaDslBuilder]
- Definition Classes
- CostingRules
-
object
AllOf
- Definition Classes
- RuntimeCosting
-
object
AllZk
- Definition Classes
- RuntimeCosting
-
object
AnyOf
- Definition Classes
- RuntimeCosting
-
object
AnyZk
- Definition Classes
- RuntimeCosting
-
object
CostedFoldExtractors
- Definition Classes
- RuntimeCosting
-
object
ElemAccessor
- Definition Classes
- RuntimeCosting
-
object
HasSigmas
- Definition Classes
- RuntimeCosting
-
object
IsConstSizeCostedColl
- Definition Classes
- RuntimeCosting
-
object
IsCostedPair
- Definition Classes
- RuntimeCosting
-
object
Coll extends scalan.Library.EntityObject
- Definition Classes
- CollsDefs
-
object
CollBuilder extends scalan.Library.EntityObject
- Definition Classes
- CollsDefs
-
object
PairColl extends scalan.Library.EntityObject
- Definition Classes
- CollsDefs
-
object
ReplColl extends scalan.Library.EntityObject
- Definition Classes
- CollsDefs
-
object
CCostedBuilder extends scalan.Library.EntityObject
- Definition Classes
- ConcreteCostsDefs
-
object
CCostedColl extends scalan.Library.EntityObject
- Definition Classes
- ConcreteCostsDefs
-
object
CCostedFunc extends scalan.Library.EntityObject
- Definition Classes
- ConcreteCostsDefs
-
object
CCostedPair extends scalan.Library.EntityObject
- Definition Classes
- ConcreteCostsDefs
-
object
CCostedPrim extends scalan.Library.EntityObject
- Definition Classes
- ConcreteCostsDefs
-
object
CSizeColl extends scalan.Library.EntityObject
- Definition Classes
- ConcreteSizesDefs
-
object
CSizeFunc extends scalan.Library.EntityObject
- Definition Classes
- ConcreteSizesDefs
-
object
CSizeOption extends scalan.Library.EntityObject
- Definition Classes
- ConcreteSizesDefs
-
object
CSizePair extends scalan.Library.EntityObject
- Definition Classes
- ConcreteSizesDefs
-
object
CSizePrim extends scalan.Library.EntityObject
- Definition Classes
- ConcreteSizesDefs
-
object
CCostedOption extends scalan.Library.EntityObject
- Definition Classes
- CostedOptionsDefs
-
object
Costed extends scalan.Library.EntityObject
- Definition Classes
- CostsDefs
-
object
CostedBuilder extends scalan.Library.EntityObject
- Definition Classes
- CostsDefs
-
object
CostedColl extends scalan.Library.EntityObject
- Definition Classes
- CostsDefs
-
object
CostedFunc extends scalan.Library.EntityObject
- Definition Classes
- CostsDefs
-
object
CostedOption extends scalan.Library.EntityObject
- Definition Classes
- CostsDefs
-
object
CostedPair extends scalan.Library.EntityObject
- Definition Classes
- CostsDefs
-
object
CostedPrim extends scalan.Library.EntityObject
- Definition Classes
- CostsDefs
-
object
IntPlusMonoid extends scalan.Library.EntityObject
- Definition Classes
- MonoidInstancesDefs
-
object
LongPlusMonoid extends scalan.Library.EntityObject
- Definition Classes
- MonoidInstancesDefs
-
object
MonoidBuilderInst extends scalan.Library.EntityObject
- Definition Classes
- MonoidInstancesDefs
-
object
Monoid extends scalan.Library.EntityObject
- Definition Classes
- MonoidsDefs
-
object
MonoidBuilder extends scalan.Library.EntityObject
- Definition Classes
- MonoidsDefs
-
object
Size extends scalan.Library.EntityObject
- Definition Classes
- SizesDefs
-
object
SizeColl extends scalan.Library.EntityObject
- Definition Classes
- SizesDefs
-
object
SizeFunc extends scalan.Library.EntityObject
- Definition Classes
- SizesDefs
-
object
SizeOption extends scalan.Library.EntityObject
- Definition Classes
- SizesDefs
-
object
SizePair extends scalan.Library.EntityObject
- Definition Classes
- SizesDefs
-
object
SizePrim extends scalan.Library.EntityObject
- Definition Classes
- SizesDefs
-
object
SizeAnyValue extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- CostedObjectsDefs
-
object
SizeBox extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- CostedObjectsDefs
-
object
SizeBuilder extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- CostedObjectsDefs
-
object
SizeContext extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- CostedObjectsDefs
-
object
SizeSigmaProp extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- CostedObjectsDefs
-
object
AnyValue extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- SigmaDslDefs
-
object
AvlTree extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- SigmaDslDefs
-
object
BigInt extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- SigmaDslDefs
-
object
Box extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- SigmaDslDefs
-
object
Context extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- SigmaDslDefs
-
object
CostModel extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- SigmaDslDefs
-
object
GroupElement extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- SigmaDslDefs
-
object
Header extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- SigmaDslDefs
-
object
PreHeader extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- SigmaDslDefs
-
object
SigmaContract extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- SigmaDslDefs
-
object
SigmaDslBuilder extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- SigmaDslDefs
-
object
SigmaProp extends scalan.SigmaLibrary.EntityObject
- Definition Classes
- SigmaDslDefs
-
object
OptionWrapSpec extends scalan.Library.EntityObject
- Definition Classes
- WrappersSpecDefs
-
object
RTypeWrapSpec extends scalan.Library.EntityObject
- Definition Classes
- WrappersSpecDefs
-
object
SpecialPredefWrapSpec extends scalan.Library.EntityObject
- Definition Classes
- WrappersSpecDefs
-
object
WrapSpecBase extends scalan.Library.EntityObject
- Definition Classes
- WrappersSpecDefs
-
object
WOption extends special.wrappers.WrappersModule.EntityObject
- Definition Classes
- WOptionsDefs
-
object
WRType extends special.wrappers.WrappersModule.EntityObject
- Definition Classes
- WRTypesDefs
-
object
WSpecialPredef extends special.wrappers.WrappersModule.EntityObject
- Definition Classes
- WSpecialPredefsDefs