Packages

o

scalan.Base

Liftables

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]

    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

    Every function can be lifted to the graph IR.

  3. class FuncLiftable[SA, SB, A, B] extends Liftable[(SA) ⇒ SB, (A) ⇒ B]
  4. abstract class Liftable[ST, T] extends AnyRef

    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]

    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)]

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

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. implicit lazy val BooleanIsLiftable: Liftable[Boolean, Boolean]
  5. implicit lazy val ByteIsLiftable: Liftable[Byte, Byte]
  6. implicit lazy val CharIsLiftable: Liftable[Char, Char]
  7. implicit lazy val DoubleIsLiftable: Liftable[Double, Double]
  8. implicit lazy val FloatIsLiftable: Liftable[Float, Float]
  9. implicit def FuncIsLiftable[SA, SB, A, B](implicit lA: Liftable[SA, A], lB: Liftable[SB, B]): Liftable[(SA) ⇒ SB, (A) ⇒ B]
  10. implicit lazy val IntIsLiftable: Liftable[Int, Int]
  11. implicit lazy val LongIsLiftable: Liftable[Long, Long]
  12. implicit def PairIsLiftable[SA, SB, A, B](implicit lA: Liftable[SA, A], lB: Liftable[SB, B]): Liftable[(SA, SB), (A, B)]
  13. implicit lazy val ShortIsLiftable: Liftable[Short, Short]
  14. implicit lazy val StringIsLiftable: Liftable[String, String]
  15. implicit lazy val UnitIsLiftable: Liftable[Unit, Unit]
  16. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  17. final def asLiftable[ST, T](l: Liftable[_, _]): Liftable[ST, T]

    Casts untyped Liftable to typed one.

    Casts untyped Liftable to typed one.

    Annotations
    @inline()
  18. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  19. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  21. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  22. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  23. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  24. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  25. final def liftConst[ST, T](x: ST)(implicit lT: Liftable[ST, T]): Scalan.Ref[T]

    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]

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

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

    Annotations
    @inline()
  27. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  28. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  29. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  30. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  31. def toString(): String
    Definition Classes
    AnyRef → Any
  32. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from AnyRef

Inherited from Any

Ungrouped