module Data.Massiv.Core
( Array(LArray)
, List(..)
, Vector
, MVector
, Matrix
, MMatrix
, Load(iterArrayLinearST_, iterArrayLinearWithSetST_)
, Stream(..)
, Source
, Size
, Shape(..)
, LengthHint(..)
, StrideLoad(..)
, Manifest
, Mutable
, Ragged
, L(..)
, ListItem
, Scheduler
, SchedulerWS
, Strategy
, Comp(Seq, Par, Par', ParOn, ParN)
, getComp
, setComp
, appComp
, WorkerStates
, initWorkerStates
, scheduleWork
, scheduleWork_
, withMassivScheduler_
, module Data.Massiv.Core.Index
, FoldNumeric
, Numeric
, NumericFloat
, MonadThrow(..)
, 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
import Data.Massiv.Core.Operations (FoldNumeric, Numeric, NumericFloat)
appComp :: Strategy r => 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. Strategy r => 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. Strategy r => Array r ix e -> Comp
getComp Array r ix e
arr) Array r ix e
arr
{-# INLINEABLE appComp #-}