module Data.Array.Parallel.Prim (
PData, PDatas(..), PRepr, PA(..), PR(..),
replicatePD, emptyPD, packByTagPD, combine2PD,
Scalar(..),
scalar_map, scalar_zipWith, scalar_zipWith3, scalar_zipWith4, scalar_zipWith5, scalar_zipWith6,
scalar_zipWith7, scalar_zipWith8,
Void, Sum2(..), Sum3(..), Wrap(..),
void, fromVoid, pvoid, pvoids#, punit,
(:->)(..),
closure, liftedClosure, ($:), liftedApply, closure1, closure2, closure3, closure4,
closure5, closure6, closure7, closure8,
Sel2, replicateSel2#, tagsSel2, elementsSel2_0#, elementsSel2_1#,
Sels2, lengthSels2#,
replicatePA_Int#, replicatePA_Double#,
emptyPA_Int#, emptyPA_Double#,
packByTagPA_Int#, packByTagPA_Double#,
combine2PA_Int#, combine2PA_Double#,
tup2, tup3, tup4, tup5
) where
import Data.Array.Parallel.PArray.Scalar (Scalar(..))
import Data.Array.Parallel.PArray.ScalarInstances ( )
import Data.Array.Parallel.PArray.PRepr (PRepr, PA(..), replicatePD, emptyPD, packByTagPD,
combine2PD)
import Data.Array.Parallel.PArray.Types (Void, Sum2(..), Sum3(..), Wrap(..), void,
fromVoid)
import Data.Array.Parallel.PArray.PReprInstances ( )
import Data.Array.Parallel.PArray.PData (PData, PDatas, PR(..))
import Data.Array.Parallel.PArray.PDataInstances (pvoid, punit, Sels2)
import Data.Array.Parallel.Lifted.Closure ((:->)(..), closure, liftedClosure, ($:),
liftedApply, closure1, closure2, closure3, closure4,
closure5, closure6, closure7, closure8)
import Data.Array.Parallel.Lifted.Unboxed (Sel2, replicateSel2#, tagsSel2, elementsSel2_0#,
elementsSel2_1#,
replicatePA_Int#, replicatePA_Double#,
emptyPA_Int#, emptyPA_Double#,
combine2PA_Int#, combine2PA_Double#)
import Data.Array.Parallel.Lifted.Scalar (scalar_map, scalar_zipWith, scalar_zipWith3, scalar_zipWith4,
scalar_zipWith5, scalar_zipWith6, scalar_zipWith7, scalar_zipWith8)
import Data.Array.Parallel.Prelude.Tuple (tup2, tup3, tup4)
import GHC.Exts
packByTagPA_Int#, packByTagPA_Double# :: a
packByTagPA_Int# = error "Data.Array.Parallel.Prim: 'packByTagPA_Int#' not implemented"
packByTagPA_Double# = error "Data.Array.Parallel.Prim: 'packByTagPA_Double#' not implemented"
pvoids# :: Int# -> PDatas Void
pvoids# = error "Data.Array.Parallel.Prim.voids: not used in this backend"
lengthSels2# :: Sels2 -> Int#
lengthSels2# _ = 0#
tup5 :: (PA a, PA b, PA c, PA d)
=> a :-> b :-> c :-> d :-> e :-> (a, b, c, d, e)
tup5 = error "Data.Array.Paralle.Prim.tup5: not used in this backend"
data instance PDatas (a, b, c)
= PTuple3s (PDatas a) (PDatas b) (PDatas c)
data instance PDatas (a, b, c, d)
= PTuple4s (PDatas a) (PDatas b) (PDatas c) (PDatas d)
data instance PDatas (a, b, c, d, e)
= PTuple5s (PDatas a) (PDatas b) (PDatas c) (PDatas d) (PDatas e)
newtype instance PDatas (Wrap a)
= PWraps (PDatas a)