HORIZON HASKELLDocslts/ghc-10.0.x8c2f8e82026-10-19Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 8c2f8e8 · 2026-10-19

Modulemassiv-1.0.5.0Haskell2010

Data.Massiv.Array.Delayed

  • 6 types
  • 16 values
  • Packagemassiv-1.0.5.0
  • Exports22
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourcePull.hs

Delayed

0 declarations

Delayed Pull Array

datadata D
#

Delayed representation.

Instances18Size, Strategy, Shape, Source, FoldNumeric, Numeric, …
  • Show DDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • Size DDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • Strategy DDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • Index ix => Shape D ixDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • Source D eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • Num e => FoldNumeric D eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • Num e => Numeric D eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • Floating e => NumericFloat D eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • Index ix => Load D ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • Index ix => Stream D ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • Index ix => StrideLoad D ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • Functor (Array D ix)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • Index ix => Applicative (Array D ix)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • Index ix => Foldable (Array D ix)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull

    Row-major sequential folding over a Delayed array.

  • (Eq e, Index ix) => Eq (Array D ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • (Ord e, Index ix) => Ord (Array D ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • (Ragged L ix e, Show e) => Show (Array D ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull
  • data Array DDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Pull

Delayed Push Array

datadata DL
#

Delayed load representation. Also known as Push array.

Instances10Size, Strategy, Shape, Load, Functor, Show, …
  • Show DLDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Push
  • Size DLDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Push
  • Strategy DLDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Push
  • Index ix => Shape DL ixDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Push
  • Index ix => Load DL ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Push
  • Index ix => Functor (Array DL ix)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Push
  • (Ragged L ix e, Show e) => Show (Array DL ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed · orphan
  • Semigroup (Array DL Ix1 e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Push
  • Monoid (Array DL Ix1 e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Push
  • data Array DLDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Push
valuemakeLoadArrayS
  1. :: Index ix
  2. => Sz ix

    Size of the resulting array

  3. -> e

    Default value to use for all cells that might have been ommitted by the writing function

  4. -> (forall (m :: Type -> Type). Monad m => (ix -> e -> m Bool) -> m ())

    Writing function that described which elements to write into the target array.

  5. -> Array DL ix e
#

Describe how an array should be loaded into memory sequentially. For parallelizable version see makeLoadArray.

valuemakeLoadArray
  1. :: Index ix
  2. => Comp

    Computation strategy to use. Directly affects the scheduler that gets created for the loading function.

  3. -> Sz ix

    Size of the resulting array

  4. -> e

    Default value to use for all cells that might have been ommitted by the writing function

  5. -> (forall s. Scheduler s () -> (ix -> e -> ST s Bool) -> ST s ())

    Writing function that described which elements to write into the target array. It accepts a scheduler, that can be used for parallelization, as well as a safe element writing function.

  6. -> Array DL ix e
#

Specify how an array should be loaded into memory. Unlike makeLoadArrayS, loading function accepts a scheduler, thus can be parallelized. If you need an unsafe version of this function see unsafeMakeLoadArray.

Delayed Stream Array

datadata DS
#

Delayed stream array that represents a sequence of values that can be loaded sequentially. Important distinction from other arrays is that its size might no be known until it is computed.

Instances14Strategy, Shape, Load, Stream, Monad, Functor, …
  • Strategy DSDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Stream

    For now only Seq strategy.

  • Shape DS Ix1Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Stream
  • Load DS Ix1 eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Stream

    O(n) - size implementation.

  • Stream DS Ix1 eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Stream
  • Monad (Array DS Ix1)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Stream
  • Functor (Array DS Ix1)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Stream
  • Applicative (Array DS Ix1)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Stream
  • Foldable (Array DS Ix1)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Stream
  • IsList (Array DS Ix1 e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Stream
  • Show e => Show (Array DS Ix1 e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Manifest.Boxed · orphan
  • Semigroup (Array DS Ix1 e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Stream
  • Monoid (Array DS Ix1 e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Stream
  • type Item (Array DS Ix1 e) = eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Stream
  • data Array DS Ix1Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Stream
valuetoSteps :: Vector DS e -> Steps Id e
#

O(1) - Convert delayed stream array into Steps.

Delayed Interleaved Array

datadata DI
#

Delayed array that will be loaded in an interleaved fashion during parallel computation.

Warning - Will be deprecated in the next major version update.

Instances12Size, Strategy, Shape, Load, StrideLoad, Functor, …
  • Size DIDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Interleaved
  • Strategy DIDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Interleaved
  • Index ix => Shape DI ixDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Interleaved
  • Index ix => Load DI ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Interleaved
  • Index ix => StrideLoad DI ix eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Interleaved
  • Functor (Array DI ix)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Interleaved
  • Index ix => Applicative (Array DI ix)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Interleaved
  • Index ix => Foldable (Array DI ix)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Interleaved
  • (Eq e, Index ix) => Eq (Array DI ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Interleaved
  • (Ord e, Index ix) => Ord (Array DI ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Interleaved
  • (Ragged L ix e, Show e) => Show (Array DI ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Interleaved
  • data Array DIDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Interleaved
valuetoInterleaved :: (Index ix, Source r e) => Array r ix e -> Array DI ix e
#

Convert a source array into an array that, when computed, will have its elemets evaluated out of order (interleaved amongst cores), hence making unbalanced computation better parallelizable.

Delayed Windowed Array

datadata DW
#

Delayed Windowed Array representation.

Instances11Strategy, Shape, Load, StrideLoad, Functor, Show, …
  • Strategy DWDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Windowed
  • Index ix => Shape DW ixDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Windowed
  • Load DW Ix1 eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Windowed
  • Load DW Ix2 eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Windowed
  • StrideLoad DW Ix1 eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Windowed
  • StrideLoad DW Ix2 eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Windowed
  • (Index (IxN n), Load DW (Ix (n - 1)) e) => Load DW (IxN n) eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Windowed
  • (Index (IxN n), StrideLoad DW (Ix (n - 1)) e) => StrideLoad DW (IxN n) eDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Windowed
  • Functor (Array DW ix)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Windowed
  • (Ragged L ix e, Load DW ix e, Show e) => Show (Array DW ix e)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Windowed
  • data Array DWDefined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Windowed
datadata Window ix e
#

Constructors

  • Window
    • windowStart :: !ix

      Index of where window will start at.

    • windowSize :: !Sz ix

      Size of the window

    • windowIndex :: ix -> e

      Indexing function for the window

    • windowUnrollIx2 :: !Maybe Int

      Setting this value during stencil application improves cache utilization by unrolling the loop for Ix2 and higher dimensions. Has no affect on arrays with one dimension.

Instances1Functor
  • Functor (Window ix)Defined in massiv-1.0.5.0 · Data.Massiv.Array.Delayed.Windowed
valueinsertWindow
  1. :: Index ix
  2. => Array D ix e

    Source array that will have a window inserted into it

  3. -> Window ix e

    Window to place inside the delayed array

  4. -> Array DW ix e
#

Inserts a Window into a delayed array while scaling the window down if it doesn't fit inside that array.

valuemakeWindowedArray
  1. :: (Index ix, Source r e)
  2. => Array r ix e

    Source array that will have a window inserted into it

  3. -> ix

    Start index for the window

  4. -> Sz ix

    Size of the window

  5. -> (ix -> e)

    Indexing function foto use inside window

  6. -> Array DW ix e
#

Construct a delayed windowed array by supply a separate element producing function for the interior of an array. This is very usful for stencil mapping, where interior function does not perform boundary checks, thus significantly speeding up computation process.