Package

scalan

Permalink

package scalan

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

Type Members

  1. final class AVHashMap[K, V] extends AnyVal

    Permalink

    Allocation free alternative to scala.collection.mutable.Map with similar interface.

    Allocation free alternative to scala.collection.mutable.Map with similar interface. This simplifies optimization of performance critical code.

  2. abstract class Base extends AnyRef

    Permalink

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

  3. class Builtin extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  4. class Constructor extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  5. class ContainerType extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  6. class Convertible extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  7. abstract class DFunc[A, B] extends AnyRef

    Permalink

    Function interface which support specialization and thus unboxed invocations.

  8. class DFuncAdapter[A, B] extends DFunc[A, B]

    Permalink

    Convenient but SLOW adapter to be used in tests.

  9. trait DefRewriting extends AnyRef

    Permalink
  10. class DelayInvokeException extends Exception

    Permalink

    Can be thrown in staged method body to prevent body unfolding.

    Can be thrown in staged method body to prevent body unfolding. When this exception is thrown, the caller can catch it and reify this invocation as MethodCall graph node.

  11. class Enforcer extends AnyRef

    Permalink

    This file is necessary to make this module non-empty.

    This file is necessary to make this module non-empty. Otherwise, the compilation doesn't happen and TargetModulePipeline is not executed.

  12. trait Entities extends TypeDescs

    Permalink

    A slice in the Scalan cake with base classes for various descriptors.

  13. trait ExactIntegral[T] extends Integral[T]

    Permalink

    Integral operations with overflow checks.

    Integral operations with overflow checks. Raise exception when overflow is detected. Each instance of this typeclass overrides three methods plus, minus, times. All other methods are implemented by delegating to the corresponding Integral instance from standard Scala library. This trait is used in core IR to avoid implicitly using standard scala implementations.

  14. trait ExactNumeric[T] extends AnyRef

    Permalink

    Numeric operations with overflow checks.

    Numeric operations with overflow checks. Raise exception when overflow is detected. Each instance of this typeclass overrides three methods plus, minus, times. All other methods are implemented by delegating to the corresponding Numeric instance from standard Scala library. This trait is used in core IR to avoid implicitly using standard scala implementations

  15. trait ExactOrdering[T] extends Ordering[T]

    Permalink

    Ordering operations to be used with other Exact traits.

    Ordering operations to be used with other Exact traits. All methods are implemented by delegating to the corresponding Ordering instance from standard Scala library. This trait is used in core IR to avoid implicitly using standard scala implementations.

  16. class ExactOrderingImpl[T] extends ExactOrdering[T]

    Permalink
  17. class External extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  18. class FunctorType extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  19. class InlineAt extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  20. class Internal extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  21. class Isospec extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  22. class Lazy[A] extends AnyRef

    Permalink

    Non-thread safe (but efficient on single thread) immutable lazy value.

    Non-thread safe (but efficient on single thread) immutable lazy value. The block is executed only once.

  23. trait Library extends Scalan with WrappersModule with WrappersSpecModule with CollsModule with SizesModule with CostsModule with ConcreteSizesModule with ConcreteCostsModule with MonoidsModule with MonoidInstancesModule with CostedOptionsModule

    Permalink
  24. class Liftable extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  25. trait MethodCalls extends Base with GraphVizExport

    Permalink
  26. case class ModuleInfo(packageName: String, moduleName: String, extension: String = ".scalan") extends Product with Serializable

    Permalink

    Information about generated Special library module.

    Information about generated Special library module. Instances are created in generated code.

    See also

    *Impl.scala files

  27. trait Modules extends Base

    Permalink
  28. final class MutableLazy[A] extends AnyRef

    Permalink

    Non-thread safe (but efficient on single thread) immutable lazy value with reset.

    Non-thread safe (but efficient on single thread) immutable lazy value with reset. The block may execute potentially many times, but only once before each reset.

  29. class NeverInline extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  30. final class Nullable[+T] extends AnyVal

    Permalink

    Allocation free alternative to scala.Option with similar interface.

    Allocation free alternative to scala.Option with similar interface. Using this in recognizers allows: 1) to avoid allocation of Some(x) 2) reading random memory location (where Some is stored) to access x

  31. class OverloadId extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  32. abstract class RType[A] extends AnyRef

    Permalink

    Base type for all runtime type descriptors.

    Base type for all runtime type descriptors. Sigma uses type descriptors to represent structure of the data values. Data values of registers and context variables come equipped with type descriptors in order to check the actual type is the same as the type expected by the script.

    Annotations
    @implicitNotFound( "No RType available for ${A}." )
    See also

    getReg, getVar

  33. class Reified extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  34. class Scalan extends TypeDescs with MethodCalls with Tuples with NumericOps with UnBinOps with LogicalOps with OrderingOps with Equal with UniversalOps with Functions with IfThenElse with Transforming with Thunks with Entities with Modules with DefRewriting

    Permalink

    Aggregate cake with all inter-dependent modules assembled together.

    Aggregate cake with all inter-dependent modules assembled together. Each instance of this class contains independent IR context, thus many instances can be created simultaneously. However, the inner types declared in the traits are path-dependant. This in particular means that ctx1.Ref[_] and ctx2.Ref[_] are different types. The typical usage is to create val ctx = new Scalan and then import inner declarations using import ctx._. This way the declaration will be directly available as if they were global declarations. At the same time cake design pattern allow to override many methods and values in classed derived from Scalan, this is significant benefit over *everything is global* design.

  35. trait SigmaLibrary extends Scalan with Library with WrappersModule with SigmaDslModule with CostedObjectsModule

    Permalink
  36. abstract class TypeDescs extends Base

    Permalink
  37. class Typeclass extends Annotation with StaticAnnotation

    Permalink
  38. class WithMethodCallRecognizers extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  39. trait WrapSpec extends AnyRef

    Permalink

    Base type for all wrapper specification classes.

    Base type for all wrapper specification classes.

    See also

    OptionWrapSpec as an example

Value Members

  1. object AVHashMap

    Permalink
  2. val EmptyArrayOfInt: Array[Int]

    Permalink

    Immutable empty array of integers, should be used instead of allocating new empty arrays.

  3. val EmptySeqOfInt: Seq[Int]

    Permalink

    Immutable empty Seq[Int] backed by empty array.

    Immutable empty Seq[Int] backed by empty array. You should prefer using it instead of Seq[Int]() or Seq.empty[Int]

  4. object ExactIntegral extends Serializable

    Permalink

    ExactNumeric instances for all types.

  5. object ExactNumeric

    Permalink

    ExactNumeric instances for all types.

  6. object ExactOrdering extends Serializable

    Permalink

    ExactOrdering instances for all types.

  7. object Lazy

    Permalink
  8. object MutableLazy

    Permalink
  9. object Nullable

    Permalink
  10. object OverloadHack

    Permalink

    Scala specific trick to appease erasure of methods argument types.

    Scala specific trick to appease erasure of methods argument types. Example usage: def m1(l: List[Int])(implicit o: Overloaded1) def m2(l: List[String])(implicit o: Overloaded2) Without the implicit arguments the methods would have identical signatures after erasure, which is a compilation time error.

  11. object RType

    Permalink
  12. package compilation

    Permalink
  13. def emptyDBufferOfInt: Buffer[Int]

    Permalink

    Create a new empty buffer around pre-allocated empty array.

    Create a new empty buffer around pre-allocated empty array. This method is preferred, rather that creating empty debox.Buffer directly because it allows to avoid allocation of the empty array.

  14. package meta

    Permalink
  15. package primitives

    Permalink
  16. implicit def rtypeToClassTag[A](implicit t: RType[A]): ClassTag[A]

    Permalink

    Allows implicit resolution to find appropriate instance of ClassTag in the scope where RType is implicitly available.

  17. package staged

    Permalink
  18. package util

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped