Packages

  • package root
    Definition Classes
    root
  • package scalan
    Definition Classes
    root
  • abstract class Base extends AnyRef

    The Base trait houses common AST nodes.

    The Base trait houses common AST nodes. It also manages a list of encountered definitions which allows for common sub-expression elimination (CSE).

    Definition Classes
    scalan
  • object Liftables

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

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

    Definition Classes
    Base
  • BaseLiftable
  • FuncConst
  • FuncLiftable
  • Liftable
  • LiftedConst
  • PairLiftable
t

scalan.Base.Liftables

LiftedConst

trait LiftedConst[ST, T] extends Scalan.Node with Scalan.Def[T]

Base class for graph nodes which represent data values of liftable types as literal nodes in the graph IR.

ST

source type of the liftable value

T

virtualized type (aka IR type) corresponding to source type

Linear Supertypes
Scalan.Def[T], Scalan.Node, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. LiftedConst
  2. Def
  3. Node
  4. Product
  5. Equals
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def canEqual(that: Any): Boolean
    Definition Classes
    Equals
  2. abstract def constValue: ST

    Value of the source type embedded in this graph node.

  3. abstract def liftable: Liftable[ST, T]

    Evidence that constValue can be lifted to T

  4. abstract def productArity: Int
    Definition Classes
    Product
  5. abstract def productElement(n: Int): Any
    Definition Classes
    Product
  6. abstract def resultType: Scalan.Elem[T]

    Type of a resulting value produced by the operation represented by this definition.

    Type of a resulting value produced by the operation represented by this definition. For example, if this definition represents application of +: (Int, Int) => Int operation then the result type is Int and resultType should return IntElement.

    Definition Classes
    Def

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  6. 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
  7. 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.

  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. 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
  10. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. 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
  13. 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
  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. def mirror(t: Scalan.Transformer): Scalan.Ref[T]

    This default implementation assumes there is no symbols in this node.

    This default implementation assumes there is no symbols in this node. Can be overriden if it is not true for some ST.

    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.

    Definition Classes
    LiftedConstDef
  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. 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()
  18. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  20. def productIterator: Iterator[Any]
    Definition Classes
    Product
  21. def productPrefix: String
    Definition Classes
    Product
  22. 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
  23. 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
  24. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  25. 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
  26. 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
  27. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  29. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from Scalan.Def[T]

Inherited from Scalan.Node

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped