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. 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
- Alphabetic
- By Inheritance
- Variable
- Serializable
- Serializable
- Def
- Node
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
Variable(varId: Int)(implicit eT: Scalan.LElem[T])
- varId
is independent from nodeId, shouldn't be used as node id.
- eT
type descriptor of the variable type
Value Members
-
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
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
deps: Array[Scalan.Sym]
Dependencies of this definition from other definitions.
Dependencies of this definition from other definitions. If definition is interpreted as an operation, then dependencies are arguments of the operation. If definition if compound (like Lambda of ThunkDef) then
deps
is equals to free variables used in the body of the compound definition. This array also refers to predecessors of this graph node, so it is used to build topological ordering (execution schedule) of operations.- returns
array of referencies to other definitions.
- Definition Classes
- Node
-
final
def
elements: Array[AnyRef]
All data elements of this graph node to be used in structural equality.
All data elements of this graph node to be used in structural equality.
- Definition Classes
- Node
- See also
equals where elements are used.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(other: Any): Boolean
Default equality of definitions.
Default equality of definitions. Two definitions are equal if they have same
elements
.- Definition Classes
- Node → Equals → AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getDeps: Array[Scalan.Sym]
Override to redefine how dependencies are computed.
Override to redefine how dependencies are computed. For example, in
core
implementation this is overriden in Lambda and ThunkDef using freeVars.- Attributes
- protected
- Definition Classes
- Node
-
def
hashCode(): Int
Computed once and saved to avoid repeated computations, which is not necessary because definitions are immutable by default.
Computed once and saved to avoid repeated computations, which is not necessary because definitions are immutable by default. If some definition require mutability, this method can be overriden accordingly.
- Definition Classes
- Node → AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
mirror(t: Scalan.Transformer): Scalan.Ref[T]
Clone this definition transforming all symbols using
t
.Clone this definition transforming all symbols using
t
. If new Def[A] is created, it is added to the graph with collapsing and rewriting. Can be overriden to implement node-specific mirroring (see MethodCall).- t
mapping of symbols to symbols (Ref[_] => Ref[_])
- returns
symbol of the logical clone. If
d
don't contain symbols, then d.self is returned.
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
nodeId: Int
Unique id of the graph node assigned for each new instance using
freshId
generator.Unique id of the graph node assigned for each new instance using
freshId
generator. Doesn't participate in equality of this Def, thus definitions with different ids may still be structurally equal. Used to provide global Def numbering.- Definition Classes
- Node
- Annotations
- @inline()
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
resultType: Scalan.Elem[T]
Type of a resulting value produced by the operation represented by this definition.
-
final
def
self: Scalan.Ref[T]
Reference to this definition created lazily on demand.
Reference to this definition created lazily on demand.
- Definition Classes
- Def
-
final
def
syms: Array[Scalan.Sym]
References to other nodes in this Def instance.
References to other nodes in this Def instance. Note: This is different form
deps
for compound definitions like Lambda and ThunkDef.- Definition Classes
- Node
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
User readable string representation of this definition.
User readable string representation of this definition. (for debugging only)
- Definition Classes
- Node → AnyRef → Any
-
def
transform(t: Scalan.Transformer): Scalan.Def[T]
Create a copy of this definition applying the given transformer to all
syms
.Create a copy of this definition applying the given transformer to all
syms
.- Definition Classes
- Def
- val varId: Int
-
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()