Object

scalan.Base

Liftables

Related Doc: package Base

Permalink

object Liftables

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.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Liftables
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. class BaseLiftable[T] extends Liftable[T, T]

    Permalink

    Liftable evidence for primitive (base) types (used in BaseElemLiftable).

  2. 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

    Permalink

    Every function can be lifted to the graph IR.

  3. class FuncLiftable[SA, SB, A, B] extends Liftable[(SA) ⇒ SB, (A) ⇒ B]

    Permalink
  4. abstract class Liftable[ST, T] extends AnyRef

    Permalink

    Describes lifting data values of type ST (Source Type) to IR nodes of the correspoding staged type T.

    Describes lifting data values of type ST (Source Type) to IR nodes of the correspoding staged type T. In general T is different type obtained by virtualization procedure from ST. However ST can be the same as T as is the case for Byte, Int, String etc.

    Annotations
    @implicitNotFound( ... )
  5. trait LiftedConst[ST, T] extends Scalan.Node with Scalan.Def[T]

    Permalink

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

    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

  6. class PairLiftable[SA, SB, A, B] extends Liftable[(SA, SB), (A, B)]

    Permalink

    Liftable evidence between (SA, SB) and (A, B) types.

Value Members

  1. final def !=(arg0: Any): Boolean

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

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. implicit lazy val BooleanIsLiftable: Liftable[Boolean, Boolean]

    Permalink
  5. implicit lazy val ByteIsLiftable: Liftable[Byte, Byte]

    Permalink
  6. implicit lazy val CharIsLiftable: Liftable[Char, Char]

    Permalink
  7. implicit lazy val DoubleIsLiftable: Liftable[Double, Double]

    Permalink
  8. implicit lazy val FloatIsLiftable: Liftable[Float, Float]

    Permalink
  9. implicit def FuncIsLiftable[SA, SB, A, B](implicit lA: Liftable[SA, A], lB: Liftable[SB, B]): Liftable[(SA) ⇒ SB, (A) ⇒ B]

    Permalink
  10. implicit lazy val IntIsLiftable: Liftable[Int, Int]

    Permalink
  11. implicit lazy val LongIsLiftable: Liftable[Long, Long]

    Permalink
  12. implicit def PairIsLiftable[SA, SB, A, B](implicit lA: Liftable[SA, A], lB: Liftable[SB, B]): Liftable[(SA, SB), (A, B)]

    Permalink
  13. implicit lazy val ShortIsLiftable: Liftable[Short, Short]

    Permalink
  14. implicit lazy val StringIsLiftable: Liftable[String, String]

    Permalink
  15. implicit lazy val UnitIsLiftable: Liftable[Unit, Unit]

    Permalink
  16. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  17. final def asLiftable[ST, T](l: Liftable[_, _]): Liftable[ST, T]

    Permalink

    Casts untyped Liftable to typed one.

    Casts untyped Liftable to typed one.

    Annotations
    @inline()
  18. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def eq(arg0: AnyRef): Boolean

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

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  22. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  23. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  24. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  25. final def liftConst[ST, T](x: ST)(implicit lT: Liftable[ST, T]): Scalan.Ref[T]

    Permalink

    Given data value of source type ST and Liftable instance between ST and T, produces LiftedConst node (some concrete implemenation) and returns it's symbol.

    Given data value of source type ST and Liftable instance between ST and T, produces LiftedConst node (some concrete implemenation) and returns it's symbol. This is generic way to put any liftable data object into graph and then use its symbol in other nodes.

    Annotations
    @inline()
  26. final def liftable[ST, T](implicit lT: Liftable[ST, T]): Liftable[ST, T]

    Permalink

    Shortcut alternative to implicitly[Liftable[ST,T]]

    Shortcut alternative to implicitly[Liftable[ST,T]]

    Annotations
    @inline()
  27. final def ne(arg0: AnyRef): Boolean

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

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

    Permalink
    Definition Classes
    AnyRef
  30. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  31. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  32. final def wait(): Unit

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

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

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

Inherited from AnyRef

Inherited from Any

Ungrouped