import Data.List ( unzip4 )
mAX_NDP_PROD :: Int
-mAX_NDP_PROD = 4
+mAX_NDP_PROD = 5
mAX_NDP_SUM :: Int
mAX_NDP_SUM = 3
mk gHC_PARR FSLIT("mapP") nDP_COMBINATORS FSLIT("mapPA")
, mk gHC_PARR FSLIT("zipWithP") nDP_COMBINATORS FSLIT("zipWithPA")
, mk gHC_PARR FSLIT("zipP") nDP_COMBINATORS FSLIT("zipPA")
+ , mk gHC_PARR FSLIT("unzipP") nDP_COMBINATORS FSLIT("unzipPA")
, mk gHC_PARR FSLIT("filterP") nDP_COMBINATORS FSLIT("filterPA")
, mk gHC_PARR FSLIT("lengthP") nDP_COMBINATORS FSLIT("lengthPA")
, mk gHC_PARR FSLIT("replicateP") nDP_COMBINATORS FSLIT("replicatePA")
, 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("intDiv") nDP_PRELUDE_INT FSLIT("intDivV")
, 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("divide") nDP_PRELUDE_DOUBLE FSLIT("divideV")
, mk nDP_PRELUDE_DOUBLE FSLIT("sumP") nDP_PRELUDE_DOUBLE FSLIT("sumPA")
, mk nDP_PRELUDE_DOUBLE FSLIT("minIndexP")
nDP_PRELUDE_DOUBLE FSLIT("minIndexPA")
where
mk name mod fs = (name, mod, fs)
- tups = map mk_tup [2..3]
+ tups = map mk_tup [2..mAX_NDP_PROD]
mk_tup n = mk (tyConName $ tupleTyCon Boxed n)
nDP_INSTANCES
(mkFastString $ "dPA_" ++ show n)