#include "fusion-phases.h"
module Data.Array.Parallel.PArray.PReprInstances where
import Data.Array.Parallel.PArray.PRepr
import Data.Array.Parallel.PArray.PData
import Data.Array.Parallel.PArray.PDataInstances
import Data.Array.Parallel.PArray.Base
import Data.Array.Parallel.PArray.ScalarInstances ()
import Data.Array.Parallel.PArray.Types
import qualified Data.Array.Parallel.Unlifted as U
import GHC.Word ( Word8 )
type instance PRepr Void = Void
instance PA Void where
toPRepr = id
fromPRepr = id
toArrPRepr = id
fromArrPRepr = id
type instance PRepr () = ()
instance PA () where
toPRepr = id
fromPRepr = id
toArrPRepr = id
fromArrPRepr = id
type instance PRepr Int = Int
instance PA Int where
toPRepr = id
fromPRepr = id
toArrPRepr = id
fromArrPRepr = id
type instance PRepr Word8 = Word8
instance PA Word8 where
toPRepr = id
fromPRepr = id
toArrPRepr = id
fromArrPRepr = id
type instance PRepr Float = Float
instance PA Float where
toPRepr = id
fromPRepr = id
toArrPRepr = id
fromArrPRepr = id
type instance PRepr Double = Double
instance PA Double where
toPRepr = id
fromPRepr = id
toArrPRepr = id
fromArrPRepr = id
data instance PData Bool
= PBool U.Sel2
type instance PRepr Bool = Sum2 Void Void
instance PA Bool where
toPRepr False = Alt2_1 void
toPRepr True = Alt2_2 void
fromPRepr (Alt2_1 _) = False
fromPRepr (Alt2_2 _) = True
toArrPRepr (PBool sel) = PSum2 sel pvoid pvoid
fromArrPRepr (PSum2 sel _ _) = PBool sel
type instance PRepr (a,b)
= (Wrap a, Wrap b)
instance (PA a, PA b) => PA (a,b) where
toPRepr (a, b)
= (Wrap a, Wrap b)
fromPRepr (Wrap a, Wrap b)
= (a, b)
toArrPRepr (P_2 as bs)
= P_2 (PWrap as) (PWrap bs)
fromArrPRepr (P_2 (PWrap as) (PWrap bs))
= P_2 as bs
type instance PRepr (a,b,c)
= (Wrap a, Wrap b, Wrap c)
instance (PA a, PA b, PA c) => PA (a,b,c) where
toPRepr (a, b, c)
= (Wrap a, Wrap b, Wrap c)
fromPRepr (Wrap a, Wrap b, Wrap c)
= (a, b, c)
toArrPRepr (P_3 as bs cs)
= P_3 (PWrap as) (PWrap bs) (PWrap cs)
fromArrPRepr (P_3 (PWrap as) (PWrap bs) (PWrap cs))
= P_3 as bs cs
type instance PRepr (a,b,c,d)
= (Wrap a, Wrap b, Wrap c, Wrap d)
instance (PA a, PA b, PA c, PA d) => PA (a,b,c,d) where
toPRepr (a, b, c, d)
= (Wrap a, Wrap b, Wrap c, Wrap d)
fromPRepr (Wrap a, Wrap b, Wrap c, Wrap d)
= (a, b, c, d)
toArrPRepr (P_4 as bs cs ds)
= P_4 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds)
fromArrPRepr (P_4 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds))
= P_4 as bs cs ds
type instance PRepr (a,b,c,d,e)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e)
instance (PA a, PA b, PA c, PA d, PA e) => PA (a,b,c,d,e) where
toPRepr (a, b, c, d, e)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e)
fromPRepr (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e)
= (a, b, c, d, e)
toArrPRepr (P_5 as bs cs ds es)
= P_5 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es)
fromArrPRepr (P_5 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es))
= P_5 as bs cs ds es
type instance PRepr (a,b,c,d,e,f)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f)
instance (PA a, PA b, PA c, PA d, PA e, PA f) => PA (a,b,c,d,e,f) where
toPRepr (a, b, c, d, e, f)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f)
fromPRepr (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f)
= (a, b, c, d, e, f)
toArrPRepr (P_6 as bs cs ds es fs)
= P_6 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs)
fromArrPRepr (P_6 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs))
= P_6 as bs cs ds es fs
type instance PRepr (a,b,c,d,e,f,g)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g)
instance (PA a, PA b, PA c, PA d, PA e, PA f, PA g) => PA (a,b,c,d,e,f,g) where
toPRepr (a, b, c, d, e, f, g)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g)
fromPRepr (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g)
= (a, b, c, d, e, f, g)
toArrPRepr (P_7 as bs cs ds es fs gs)
= P_7 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
fromArrPRepr (P_7 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs))
= P_7 as bs cs ds es fs gs
type instance PRepr (a,b,c,d,e,f,g,h)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h)
instance (PA a, PA b, PA c, PA d, PA e, PA f, PA g, PA h) => PA (a,b,c,d,e,f,g,h) where
toPRepr (a, b, c, d, e, f, g, h)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h)
fromPRepr (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h)
= (a, b, c, d, e, f, g, h)
toArrPRepr (P_8 as bs cs ds es fs gs hs)
= P_8 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs)
fromArrPRepr (P_8 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs))
= P_8 as bs cs ds es fs gs hs
type instance PRepr (a,b,c,d,e,f,g,h,i)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i)
instance (PA a, PA b, PA c, PA d, PA e, PA f, PA g, PA h, PA i) => PA (a,b,c,d,e,f,g,h,i) where
toPRepr (a, b, c, d, e, f, g, h, i)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i)
fromPRepr (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i)
= (a, b, c, d, e, f, g, h, i)
toArrPRepr (P_9 as bs cs ds es fs gs hs is)
= P_9 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs) (PWrap is)
fromArrPRepr (P_9 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs) (PWrap is))
= P_9 as bs cs ds es fs gs hs is
type instance PRepr (a,b,c,d,e,f,g,h,i,j)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j)
instance (PA a, PA b, PA c, PA d, PA e, PA f, PA g, PA h, PA i, PA j)
=> PA (a,b,c,d,e,f,g,h,i,j) where
toPRepr (a, b, c, d, e, f, g, h, i, j)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j)
fromPRepr (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j)
= (a, b, c, d, e, f, g, h, i, j)
toArrPRepr (P_10 as bs cs ds es fs gs hs is js)
= P_10 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs) (PWrap is) (PWrap js)
fromArrPRepr (P_10 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs) (PWrap is) (PWrap js))
= P_10 as bs cs ds es fs gs hs is js
type instance PRepr (a,b,c,d,e,f,g,h,i,j,k)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j, Wrap k)
instance (PA a, PA b, PA c, PA d, PA e, PA f, PA g, PA h, PA i, PA j, PA k)
=> PA (a,b,c,d,e,f,g,h,i,j,k) where
toPRepr (a, b, c, d, e, f, g, h, i, j, k)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j, Wrap k)
fromPRepr (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j, Wrap k)
= (a, b, c, d, e, f, g, h, i, j, k)
toArrPRepr (P_11 as bs cs ds es fs gs hs is js ks)
= P_11 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs) (PWrap is) (PWrap js) (PWrap ks)
fromArrPRepr (P_11 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs) (PWrap is) (PWrap js) (PWrap ks))
= P_11 as bs cs ds es fs gs hs is js ks
type instance PRepr (a,b,c,d,e,f,g,h,i,j,k,l)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j, Wrap k,
Wrap l)
instance (PA a, PA b, PA c, PA d, PA e, PA f, PA g, PA h, PA i, PA j, PA k, PA l)
=> PA (a,b,c,d,e,f,g,h,i,j,k,l) where
toPRepr (a, b, c, d, e, f, g, h, i, j, k, l)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j, Wrap k,
Wrap l)
fromPRepr (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j, Wrap k,
Wrap l)
= (a, b, c, d, e, f, g, h, i, j, k, l)
toArrPRepr (P_12 as bs cs ds es fs gs hs is js ks ls)
= P_12 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs) (PWrap is) (PWrap js) (PWrap ks) (PWrap ls)
fromArrPRepr (P_12 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs) (PWrap is) (PWrap js) (PWrap ks) (PWrap ls))
= P_12 as bs cs ds es fs gs hs is js ks ls
type instance PRepr (a,b,c,d,e,f,g,h,i,j,k,l,m)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j, Wrap k,
Wrap l, Wrap m)
instance (PA a, PA b, PA c, PA d, PA e, PA f, PA g, PA h, PA i, PA j, PA k, PA l, PA m)
=> PA (a,b,c,d,e,f,g,h,i,j,k,l,m) where
toPRepr (a, b, c, d, e, f, g, h, i, j, k, l, m)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j, Wrap k,
Wrap l, Wrap m)
fromPRepr (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j, Wrap k,
Wrap l, Wrap m)
= (a, b, c, d, e, f, g, h, i, j, k, l, m)
toArrPRepr (P_13 as bs cs ds es fs gs hs is js ks ls ms)
= P_13 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs) (PWrap is) (PWrap js) (PWrap ks) (PWrap ls) (PWrap ms)
fromArrPRepr (P_13 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs) (PWrap is) (PWrap js) (PWrap ks) (PWrap ls) (PWrap ms))
= P_13 as bs cs ds es fs gs hs is js ks ls ms
type instance PRepr (a,b,c,d,e,f,g,h,i,j,k,l,m,n)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j, Wrap k,
Wrap l, Wrap m, Wrap n)
instance (PA a, PA b, PA c, PA d, PA e, PA f, PA g, PA h, PA i, PA j, PA k, PA l, PA m, PA n)
=> PA (a,b,c,d,e,f,g,h,i,j,k,l,m,n) where
toPRepr (a, b, c, d, e, f, g, h, i, j, k, l, m, n)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j, Wrap k,
Wrap l, Wrap m, Wrap n)
fromPRepr (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j, Wrap k,
Wrap l, Wrap m, Wrap n)
= (a, b, c, d, e, f, g, h, i, j, k, l, m, n)
toArrPRepr (P_14 as bs cs ds es fs gs hs is js ks ls ms ns)
= P_14 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs) (PWrap is) (PWrap js) (PWrap ks) (PWrap ls) (PWrap ms) (PWrap ns)
fromArrPRepr (P_14 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs) (PWrap is) (PWrap js) (PWrap ks) (PWrap ls) (PWrap ms) (PWrap ns))
= P_14 as bs cs ds es fs gs hs is js ks ls ms ns
type instance PRepr (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j, Wrap k,
Wrap l, Wrap m, Wrap n, Wrap o)
instance (PA a, PA b, PA c, PA d, PA e, PA f, PA g, PA h, PA i, PA j, PA k, PA l, PA m, PA n, PA o)
=> PA (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) where
toPRepr (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
= (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j, Wrap k,
Wrap l, Wrap m, Wrap n, Wrap o)
fromPRepr (Wrap a, Wrap b, Wrap c, Wrap d, Wrap e, Wrap f, Wrap g, Wrap h, Wrap i, Wrap j, Wrap k,
Wrap l, Wrap m, Wrap n, Wrap o)
= (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
toArrPRepr (P_15 as bs cs ds es fs gs hs is js ks ls ms ns os)
= P_15 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs) (PWrap is) (PWrap js) (PWrap ks) (PWrap ls) (PWrap ms) (PWrap ns)
(PWrap os)
fromArrPRepr (P_15 (PWrap as) (PWrap bs) (PWrap cs) (PWrap ds) (PWrap es) (PWrap fs) (PWrap gs)
(PWrap hs) (PWrap is) (PWrap js) (PWrap ks) (PWrap ls) (PWrap ms) (PWrap ns)
(PWrap os))
= P_15 as bs cs ds es fs gs hs is js ks ls ms ns os
type instance PRepr (PArray a)
= PArray (PRepr a)
instance PA a => PA (PArray a) where
toPRepr (PArray n# xs)
= PArray n# (toArrPRepr xs)
fromPRepr (PArray n# xs)
= PArray n# (fromArrPRepr xs)
toArrPRepr (PNested segd xs)
= PNested segd (toArrPRepr xs)
fromArrPRepr (PNested segd xs)
= PNested segd (fromArrPRepr xs)