Trait

scalan

Entities

Related Doc: package scalan

Permalink

trait Entities extends TypeDescs

Self Type
Scalan
Linear Supertypes
TypeDescs, Base, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Entities
  2. TypeDescs
  3. Base
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract class BaseDef[+T] extends Scalan.Node with Scalan.Def[T]

    Permalink

    Base class for most predefined operations.

    Base class for most predefined operations.

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

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

    Permalink

    Type descriptor for primitive types.

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

    Definition Classes
    TypeDescs
  4. abstract class CompanionDef[T] extends Scalan.Node with Scalan.Def[T]

    Permalink

    Base class for virtualized instances of type companions.

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

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

    Permalink

    Base class for all descriptors of staged companions

  6. trait ConcreteElem[TData, TClass] extends Scalan.EntityElem[TClass]

    Permalink

    Base class for all descriptors of staged classes.

  7. trait ConcreteElem1[A, TData, TClass, C[_]] extends Scalan.EntityElem1[A, TClass, C]

    Permalink

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

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

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

    Permalink

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

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

    x

    literal value

    eT

    type descriptor of IR type T

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

    Permalink

    Descriptor of type constructor of * -> * kind.

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

    Definition Classes
    TypeDescs
    Annotations
    @implicitNotFound( "No Cont available for ${F}." )
  10. type DataEnv = Map[Scalan.Sym, AnyRef]

    Permalink

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

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

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

    Permalink

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

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

    Definition Classes
    Base
  12. abstract class Elem[A] extends Scalan.TypeDesc

    Permalink

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

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

    A

    the type represented by this descriptor

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

    Permalink

    Elements cache information for each Elem class.

    Elements cache information for each Elem class.

    Definition Classes
    TypeDescs
  14. abstract class EntityElem[A] extends Scalan.Elem[A] with Equals

    Permalink

    Base class for all descriptors of staged traits.

  15. abstract class EntityElem1[A, To, C[_]] extends Scalan.EntityElem[To]

    Permalink

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

  16. class EntityObject extends AnyRef

    Permalink

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

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

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

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

    Permalink

    State monad for symbols computed in a data environment.

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

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

    Permalink

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

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

    Definition Classes
    TypeDescs
  20. trait Functor[F[_]] extends Scalan.Cont[F]

    Permalink
    Definition Classes
    TypeDescs
  21. type LElem[A] = Lazy[Scalan.Elem[A]]

    Permalink

    Type descriptor which is computed lazily on demand.

    Type descriptor which is computed lazily on demand.

    Definition Classes
    TypeDescs
  22. sealed abstract class MethodDesc extends AnyRef

    Permalink
    Definition Classes
    TypeDescs
  23. abstract class Node extends Product

    Permalink

    Base class for all IR nodes/operations/definitions.

    Base class for all IR nodes/operations/definitions.

    Definition Classes
    Base
  24. class NotImplementedStagingException extends Scalan.StagingException

    Permalink
    Definition Classes
    Base
  25. sealed abstract class OwnerKind extends AnyRef

    Permalink

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

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

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

    Permalink

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

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

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

    Permalink

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

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

    Definition Classes
    Base
  28. type RFunc[-A, +B] = Scalan.Ref[(A) ⇒ B]

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

    Permalink
    Definition Classes
    TypeDescs
  30. type RPair[+A, +B] = Scalan.Ref[(A, B)]

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

    Permalink

    Abstract representation of a computable value.

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

    Definition Classes
    Base
    See also

    SingleRep

  32. final class SingleRef[+T] extends Scalan.Ref[T]

    Permalink

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

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

    Definition Classes
    Base
  33. class StagingException extends RuntimeException

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

    Permalink

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

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

    Definition Classes
    TypeDescs
  35. type Sym = Scalan.Ref[_]

    Permalink

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

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

    Definition Classes
    Base
  36. abstract class Transformer extends AnyRef

    Permalink

    Base class for Ref to Ref transformations.

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

    Definition Classes
    Base
  37. abstract class TypeDesc extends Serializable

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

    Permalink

    Node class for typed variables.

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

    varId

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

    eT

    type descriptor of the variable type

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

    Permalink
    Definition Classes
    TypeDescs
  40. type |[+A, +B] = Either[A, B]

    Permalink
    Definition Classes
    Base

Value Members

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

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

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

    Permalink

    Helper methods to throw errors

    Helper methods to throw errors

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  6. object &&

    Permalink

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

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

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

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

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

    Permalink
    Definition Classes
    Base
  10. val AnyElement: Scalan.Elem[Any]

    Permalink

    Type descriptor for Any, cannot be used implicitly.

    Type descriptor for Any, cannot be used implicitly.

    Definition Classes
    TypeDescs
  11. val AnyRefElement: Scalan.Elem[AnyRef]

    Permalink

    Type descriptor for AnyRef, cannot be used implicitly.

    Type descriptor for AnyRef, cannot be used implicitly.

    Definition Classes
    TypeDescs
  12. implicit val BooleanElement: Scalan.Elem[Boolean]

    Permalink
    Definition Classes
    TypeDescs
  13. implicit val ByteElement: Scalan.Elem[Byte]

    Permalink
    Definition Classes
    TypeDescs
  14. implicit val CharElement: Scalan.Elem[Char]

    Permalink
    Definition Classes
    TypeDescs
  15. object Def

    Permalink
    Definition Classes
    Base
  16. implicit val DoubleElement: Scalan.Elem[Double]

    Permalink
    Definition Classes
    TypeDescs
  17. object Elem extends Serializable

    Permalink
    Definition Classes
    TypeDescs
  18. val EmptyTypeArgs: ListMap[String, (Scalan.TypeDesc, Variance)]

    Permalink

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

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

    Definition Classes
    TypeDescs
  19. object EnvRep extends Serializable

    Permalink
    Definition Classes
    TypeDescs
  20. object ExpWithElem

    Permalink
    Definition Classes
    Base
  21. implicit val FloatElement: Scalan.Elem[Float]

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

    Permalink
    Definition Classes
    TypeDescs
  23. implicit val IntElement: Scalan.Elem[Int]

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

    Permalink

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

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

    Definition Classes
    Base
    Annotations
    @inline()
  25. val LazyAnyElement: Lazy[Scalan.Elem[Any]]

    Permalink

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

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

    Definition Classes
    TypeDescs
  26. object Liftables

    Permalink

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

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

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

    Permalink
    Definition Classes
    TypeDescs
  28. object NoOwner extends Scalan.OwnerKind with Product with Serializable

    Permalink
    Definition Classes
    Base
  29. val NothingElement: Scalan.Elem[Nothing]

    Permalink
    Definition Classes
    TypeDescs
  30. implicit final def PairElemExtensions[A, B](eAB: Scalan.Elem[(A, B)]): Scalan.PairElem[A, B]

    Permalink
    Definition Classes
    TypeDescs
  31. object ScalanOwner extends Scalan.OwnerKind with Product with Serializable

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

    Permalink
    Definition Classes
    TypeDescs
  33. implicit val StringElement: Scalan.Elem[String]

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

    Permalink
    Definition Classes
    TypeDescs
  35. final def TypeArgs(descs: (String, (Scalan.TypeDesc, Variance))*): ListMap[String, (Scalan.TypeDesc, Variance)]

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

    Permalink
    Definition Classes
    TypeDescs
  37. final def asElem[T](d: Scalan.TypeDesc): Scalan.Elem[T]

    Permalink

    Helper type case method.

    Helper type case method.

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

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

    Permalink

    Helper to type cast node references.

    Helper to type cast node references.

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

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

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

    Permalink
    Definition Classes
    TypeDescs
  43. val cacheElems: Boolean

    Permalink

    Whether IR type descriptors should be cached.

    Whether IR type descriptors should be cached.

    Definition Classes
    Base
  44. val cachePairs: Boolean

    Permalink

    Whether Tup instances should be cached.

    Whether Tup instances should be cached.

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

    Permalink

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

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

    args

    arguments of Elem class constructor

    clazz

    Elem class

    Definition Classes
    TypeDescs
  46. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  47. final def container[F[_]](implicit arg0: Scalan.Cont[F]): Scalan.Cont[F]

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

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

    Permalink

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

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

    optScope

    optional thunk scope to put given definition

    s

    symbol refering to d

    d

    definition node to add to the scope of globally

    returns

    reference to d (which is s)

    Attributes
    protected
    Definition Classes
    Base
  50. val debugModeSanityChecks: Boolean

    Permalink

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

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

    Definition Classes
    Base
  51. def defCount: Int

    Permalink

    Returns a number of definitions added to this IR context.

    Returns a number of definitions added to this IR context.

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

    Permalink
    Definition Classes
    Base
  53. val elemCache: AVHashMap[Class[_], Scalan.ElemCacheEntry]

    Permalink
    Attributes
    protected
    Definition Classes
    TypeDescs
  54. final def element[A](implicit ea: Scalan.Elem[A]): Scalan.Elem[A]

    Permalink
    Definition Classes
    TypeDescs
  55. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  56. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  57. def finalize(): Unit

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

    Permalink

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

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

    returns

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

    Definition Classes
    Base
  59. def findOrCreateDefinition[T](d: Scalan.Def[T], newSym: ⇒ Scalan.Ref[T]): Scalan.Ref[T]

    Permalink

    Lookup d in the heap of nodes.

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

    d

    node to be added to the head of nodes

    newSym

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

    returns

    return a reference to d node in the heap

    Definition Classes
    Base
  60. final def freshId: Int

    Permalink

    Get next fresh node id

    Get next fresh node id

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

    Permalink

    Lookup of create reference to the given definition.

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

    Definition Classes
    Base
    Annotations
    @inline()
  62. implicit final def funcElement[A, B](implicit ea: Scalan.Elem[A], eb: Scalan.Elem[B]): Scalan.Elem[(A) ⇒ B]

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

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

    Permalink
    Definition Classes
    Base
    Annotations
    @inline()
  65. def getOwnerKind(constructor: java.lang.reflect.Constructor[_]): Scalan.OwnerKind

    Permalink

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

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

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

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

    Permalink

    Lookup node reference by its id.

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

    Definition Classes
    Base
    Annotations
    @inline()
  68. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  69. def invokeUnlifted(e: Scalan.Elem[_], mc: Scalan.MethodCall, dataEnv: Scalan.DataEnv): AnyRef

    Permalink

    Invoke source type method corresponding to the given MethodCall node.

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

    e

    type descriptor of receiver node

    mc

    IR node representing method invocation

    dataEnv

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

    returns

    data value returned from invoked method

    Definition Classes
    TypeDescs
  70. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  71. implicit def liftToRep[A](x: A)(implicit arg0: Scalan.Elem[A]): Scalan.Ref[A]

    Permalink
    Definition Classes
    Base
    Annotations
    @inline()
  72. def logWarn(msg: ⇒ String): Unit

    Permalink

    Log warning message to the log.

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

    Definition Classes
    Base
  73. val nInitialDefs: Int

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

    Permalink
    Definition Classes
    AnyRef
  75. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  77. def onReset(): Unit

    Permalink

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

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

    Attributes
    protected
    Definition Classes
    Base
  78. implicit final def pairElement[A, B](implicit ea: Scalan.Elem[A], eb: Scalan.Elem[B]): Scalan.Elem[(A, B)]

    Permalink
    Definition Classes
    TypeDescs
  79. def placeholder[T](implicit eT: Scalan.LElem[T]): Scalan.Ref[T]

    Permalink
    Definition Classes
    Base
    Annotations
    @inline()
  80. def registerEntityObject(name: String, obj: Scalan.EntityObject): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Base
  81. implicit def reifyObject[A](obj: Scalan.Def[A]): Scalan.Ref[A]

    Permalink

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

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

    Definition Classes
    Base
  82. def resetContext(): Unit

    Permalink
    Definition Classes
    Base
  83. def stagingExceptionMessage(message: String, syms: Seq[Scalan.Ref[_]]): String

    Permalink

    Prettyprint exception message

    Prettyprint exception message

    Attributes
    protected
    Definition Classes
    Base
  84. implicit final def sumElement[A, B](implicit ea: Scalan.Elem[A], eb: Scalan.Elem[B]): Scalan.Elem[Scalan.|[A, B]]

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

    Permalink
    Definition Classes
    AnyRef
  86. def toExp[T](d: Scalan.Def[T], newSym: ⇒ Scalan.Ref[T]): Scalan.Ref[T]

    Permalink

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

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

    d

    A new graph node to add to the universe

    newSym

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

    returns

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

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

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

    Permalink

    Lifting of data values to IR nodes.

    Lifting of data values to IR nodes.

    Definition Classes
    Base
  89. def toString(): String

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

    Permalink

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

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

    Attributes
    protected
    Definition Classes
    Base
  91. final def updateSymbolTable[T](s: Scalan.Ref[T], d: Scalan.Def[T]): Scalan.Ref[T]

    Permalink

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

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

    returns

    new of existing symbol

    Definition Classes
    Base
  92. final def valueFromRep[A](x: Scalan.Ref[A]): A

    Permalink

    Extract data value from Const node or throw an exception.

    Extract data value from Const node or throw an exception.

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

    Permalink
    Definition Classes
    Base
    Annotations
    @inline()
  94. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from TypeDescs

Inherited from Base

Inherited from AnyRef

Inherited from Any

Ungrouped