nDP_PRELUDE_PARR = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Base.PArr")
nDP_PRELUDE_INT = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Base.Int")
+nDP_PRELUDE_DOUBLE = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Base.Double")
data Builtins = Builtins {
parrayTyCon :: TyCon
upToPAIntPrimVar <- externalVar nDP_PRIM FSLIT("upToPA_Int#")
selectPAIntPrimVar <- externalVar nDP_PRIM FSLIT("selectPA_Int#")
truesPABoolPrimVar <- externalVar nDP_PRIM FSLIT("truesPA_Bool#")
- lengthPAVar <- externalVar nDP_PARRAY FSLIT("lengthPA")
- replicatePAVar <- externalVar nDP_PARRAY FSLIT("replicatePA")
+ lengthPAVar <- externalVar nDP_PARRAY FSLIT("lengthPA#")
+ replicatePAVar <- externalVar nDP_PARRAY FSLIT("replicatePA#")
emptyPAVar <- externalVar nDP_PARRAY FSLIT("emptyPA")
- packPAVar <- externalVar nDP_PARRAY FSLIT("packPA")
+ packPAVar <- externalVar nDP_PARRAY FSLIT("packPA#")
combines <- mapM (externalVar nDP_PARRAY)
- [mkFastString ("combine" ++ show i ++ "PA")
+ [mkFastString ("combine" ++ show i ++ "PA#")
| i <- [2..mAX_NDP_COMBINE]]
let combinePAVars = listArray (2, mAX_NDP_COMBINE) combines
= [
mk gHC_PARR FSLIT("mapP") nDP_COMBINATORS FSLIT("mapPA")
, mk gHC_PARR FSLIT("zipWithP") nDP_COMBINATORS FSLIT("zipWithPA")
+
, mk nDP_PRELUDE_INT FSLIT("plus") nDP_PRELUDE_INT FSLIT("plusV")
, mk nDP_PRELUDE_INT FSLIT("minus") nDP_PRELUDE_INT FSLIT("minusV")
+ , mk nDP_PRELUDE_INT FSLIT("mult") nDP_PRELUDE_INT FSLIT("multV")
, mk nDP_PRELUDE_INT FSLIT("sumP") nDP_PRELUDE_INT FSLIT("sumPA")
, mk nDP_PRELUDE_INT FSLIT("upToP") nDP_PRELUDE_INT FSLIT("upToPA")
+ , mk nDP_PRELUDE_DOUBLE FSLIT("plus") nDP_PRELUDE_DOUBLE FSLIT("plusV")
+ , mk nDP_PRELUDE_DOUBLE FSLIT("minus") nDP_PRELUDE_DOUBLE FSLIT("minusV")
+ , mk nDP_PRELUDE_DOUBLE FSLIT("mult") nDP_PRELUDE_DOUBLE FSLIT("multV")
+ , mk nDP_PRELUDE_DOUBLE FSLIT("sumP") nDP_PRELUDE_DOUBLE FSLIT("sumPA")
+
-- FIXME: temporary
, mk nDP_PRELUDE_PARR FSLIT("fromPArrayP") nDP_PRELUDE_PARR FSLIT("fromPArrayPA")
]