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

case class FuncConst[SA, SB, A, B](constValue: (SA) ⇒ SB)(implicit lA: Liftable[SA, A], lB: Liftable[SB, B]) extends Scalan.BaseDef[(A) ⇒ B] with LiftedConst[(SA) ⇒ SB, (A) ⇒ B] with Product with Serializable

Every function can be lifted to the graph IR.

Linear Supertypes
Serializable, Serializable, LiftedConst[(SA) ⇒ SB, (A) ⇒ B], Scalan.BaseDef[(A) ⇒ B], Scalan.Def[(A) ⇒ B], Scalan.Node, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. FuncConst
  2. Serializable
  3. Serializable
  4. LiftedConst
  5. BaseDef
  6. Def
  7. Node
  8. Product
  9. Equals
  10. AnyRef
  11. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new FuncConst(constValue: (SA) ⇒ SB)(implicit lA: Liftable[SA, A], lB: Liftable[SB, B])

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. val constValue: (SA) ⇒ SB

    Value of the source type embedded in this graph node.

    Value of the source type embedded in this graph node.

    Definition Classes
    FuncConstLiftedConst
  7. 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
  8. 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.

  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. 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
  11. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. 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
  14. 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
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. val liftable: Liftable[(SA) ⇒ SB, (A) ⇒ B]

    Evidence that constValue can be lifted to T

    Evidence that constValue can be lifted to T

    Definition Classes
    FuncConstLiftedConst
  17. def mirror(t: Scalan.Transformer): Scalan.Ref[(A) ⇒ B]

    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
  18. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. 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()
  20. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  22. implicit val resultType: Scalan.Elem[(A) ⇒ B]

    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
    BaseDefDef
  23. final def self: Scalan.Ref[(A) ⇒ B]

    Reference to this definition created lazily on demand.

    Reference to this definition created lazily on demand.

    Definition Classes
    Def
  24. 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
  25. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  26. 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
  27. def transform(t: Scalan.Transformer): Scalan.Def[(A) ⇒ B]

    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
  28. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  29. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  30. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from Serializable

Inherited from Serializable

Inherited from LiftedConst[(SA) ⇒ SB, (A) ⇒ B]

Inherited from Scalan.BaseDef[(A) ⇒ B]

Inherited from Scalan.Def[(A) ⇒ B]

Inherited from Scalan.Node

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped