-- | Distributed types and operations. -- -- * This is an internal API and shouldn't need to be used directly. -- Client programs should use "Data.Array.Parallel.Unlifted" -- module Data.Array.Parallel.Unlifted.Distributed ( -- * Gang operations Gang, forkGang, gangSize -- * Gang hacks , theGang -- * Distributed types and classes , DT(..) -- * Higher-order combinators , mapD, zipWithD , foldD , scanD -- * Equality , eqD, neqD -- * Distributed scalars , scalarD , andD, orD , sumD -- * Distributed pairs , zipD, unzipD , fstD, sndD -- * Distributed arrays , lengthD , splitLenD , splitLenIdxD , splitD , splitAsD , joinLengthD , joinD , splitJoinD , joinDM , carryD , Distribution , balanced , unbalanced -- * Permutations , permuteD, bpermuteD -- * Update , atomicUpdateD -- * Debugging , fromD, toD, debugD) where import Data.Array.Parallel.Unlifted.Distributed.Combinators import Data.Array.Parallel.Unlifted.Distributed.Data.Bool import Data.Array.Parallel.Unlifted.Distributed.Data.Scalar import Data.Array.Parallel.Unlifted.Distributed.Data.Ordering () import Data.Array.Parallel.Unlifted.Distributed.Arrays import Data.Array.Parallel.Unlifted.Distributed.Basics import Data.Array.Parallel.Unlifted.Distributed.Primitive