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.
- Alphabetic
- By Inheritance
- Liftables
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
class
BaseLiftable[T] extends Liftable[T, T]
Liftable evidence for primitive (base) types (used in BaseElemLiftable).
-
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.
- class FuncLiftable[SA, SB, A, B] extends Liftable[(SA) ⇒ SB, (A) ⇒ B]
-
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( ... )
-
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
-
class
PairLiftable[SA, SB, A, B] extends Liftable[(SA, SB), (A, B)]
Liftable evidence between
(SA, SB)
and(A, B)
types.
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- implicit lazy val BooleanIsLiftable: Liftable[Boolean, Boolean]
- implicit lazy val ByteIsLiftable: Liftable[Byte, Byte]
- implicit lazy val CharIsLiftable: Liftable[Char, Char]
- implicit lazy val DoubleIsLiftable: Liftable[Double, Double]
- implicit lazy val FloatIsLiftable: Liftable[Float, Float]
- implicit def FuncIsLiftable[SA, SB, A, B](implicit lA: Liftable[SA, A], lB: Liftable[SB, B]): Liftable[(SA) ⇒ SB, (A) ⇒ B]
- implicit lazy val IntIsLiftable: Liftable[Int, Int]
- implicit lazy val LongIsLiftable: Liftable[Long, Long]
- implicit def PairIsLiftable[SA, SB, A, B](implicit lA: Liftable[SA, A], lB: Liftable[SB, B]): Liftable[(SA, SB), (A, B)]
- implicit lazy val ShortIsLiftable: Liftable[Short, Short]
- implicit lazy val StringIsLiftable: Liftable[String, String]
- implicit lazy val UnitIsLiftable: Liftable[Unit, Unit]
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
final
def
asLiftable[ST, T](l: Liftable[_, _]): Liftable[ST, T]
Casts untyped Liftable to typed one.
Casts untyped Liftable to typed one.
- Annotations
- @inline()
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
liftConst[ST, T](x: ST)(implicit lT: Liftable[ST, T]): Scalan.Ref[T]
Given data value of source type
ST
andLiftable
instance betweenST
andT
, producesLiftedConst
node (some concrete implemenation) and returns it's symbol.Given data value of source type
ST
andLiftable
instance betweenST
andT
, producesLiftedConst
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()
-
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()
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()