module Data.Massiv.Core
( Array(List, unList)
, Vector
, MVector
, Matrix
, MMatrix
, Elt
, Construct
, Load(R, loadArrayM, loadArrayWithSetM)
, Stream(..)
, Source
, Resize
, Extract
, StrideLoad(..)
, Slice
, OuterSlice
, InnerSlice
, Manifest
, Mutable
, Ragged
, Nested(..)
, NestedStruct
, L(..)
, LN
, ListItem
, Scheduler
, SchedulerWS
, Comp(Seq, Par, Par', ParOn, ParN)
, appComp
, WorkerStates
, initWorkerStates
, module Data.Massiv.Core.Index
, MonadThrow(..)
, throw
, IndexException(..)
, SizeException(..)
, ShapeException(..)
, module Data.Massiv.Core.Exception
, MonadUnliftIO
, MonadIO(liftIO)
, PrimMonad(PrimState)
) where
import Control.Scheduler (SchedulerWS, initWorkerStates)
import Data.Massiv.Core.Common
import Data.Massiv.Core.Index
import Data.Massiv.Core.List
import Data.Massiv.Core.Exception
appComp :: (Construct r ix e, Load r ix e) => Comp -> Array r ix e -> Array r ix e
appComp :: Comp -> Array r ix e -> Array r ix e
appComp Comp
comp Array r ix e
arr = Comp -> Array r ix e -> Array r ix e
forall r ix e.
Construct r ix e =>
Comp -> Array r ix e -> Array r ix e
setComp (Comp
comp Comp -> Comp -> Comp
forall a. Semigroup a => a -> a -> a
<> Array r ix e -> Comp
forall r ix e. Load r ix e => Array r ix e -> Comp
getComp Array r ix e
arr) Array r ix e
arr
{-# INLINEABLE appComp #-}