dpg-lifted-vseg: fix all warnings
authorBen Lippmeier <benl@ouroborus.net>
Wed, 9 Nov 2011 03:56:31 +0000 (14:56 +1100)
committerBen Lippmeier <benl@ouroborus.net>
Wed, 9 Nov 2011 05:29:00 +0000 (16:29 +1100)
26 files changed:
dph-lifted-reference/dph-lifted-reference.cabal
dph-lifted-vseg/Data/Array/Parallel/Lifted/Combinators.hs
dph-lifted-vseg/Data/Array/Parallel/PArray.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Base.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Double.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Int.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Nested.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Sum2.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Tuple.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Void.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Word8.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Wrap.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PRepr.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PRepr/Instances.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PRepr/Nested.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/PRepr/Tuple.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/Reference.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/Scalar.hs
dph-lifted-vseg/Data/Array/Parallel/PArray/Types.hs
dph-lifted-vseg/Data/Array/Parallel/Prelude/Double.hs
dph-lifted-vseg/Data/Array/Parallel/Prelude/Int.hs
dph-lifted-vseg/Data/Array/Parallel/Prelude/Tuple.hs
dph-lifted-vseg/Data/Array/Parallel/Prelude/Word8.hs
dph-lifted-vseg/Data/Array/Parallel/Prim.hs
dph-lifted-vseg/dph-lifted-vseg.cabal

index 07ec22a..291641a 100644 (file)
@@ -46,7 +46,6 @@ Library
         PatternGuards,
         ExistentialQuantification,
         ScopedTypeVariables
-        
 
   GHC-Options: 
         -Wall -fno-warn-orphans -fno-warn-missing-signatures
index 9f71e74..59a73d5 100644 (file)
@@ -45,9 +45,6 @@ import Data.Array.Parallel.Lifted.Closure
 import Data.Array.Parallel.PArray.PData         as PA
 import Data.Array.Parallel.PArray.PRepr         as PA
 import Data.Array.Parallel.PArray               as PA
-import qualified Data.Array.Parallel.Unlifted   as U
-import qualified Data.Vector                    as V
-import GHC.Exts
 
 
 -- Conversions ================================================================
index fc41c28..252e29a 100644 (file)
@@ -64,7 +64,6 @@ import Data.Array.Parallel.PArray.PRepr
 import Data.Array.Parallel.PArray.Scalar
 import Data.Array.Parallel.PArray.Reference
 import GHC.Exts
-import Data.Maybe
 import Data.Vector                              (Vector)
 import Data.Array.Parallel.Base                 (Tag)
 import qualified Data.Array.Parallel.Array      as A
@@ -77,8 +76,6 @@ import Prelude hiding
         ( length, replicate, concat
         , enumFromTo
         , zip, unzip)
-        
-import Debug.Trace
 
 
 -- Pretty ---------------------------------------------------------------------
@@ -126,7 +123,7 @@ valid (PArray n# darr1)
 
 -- | Force an array to normal form.
 nf :: PA a => PArray a -> ()
-nf (PArray n# d)
+nf (PArray _ d)
         = nfPA d
 {-# INLINE_PA nf #-}
 
@@ -377,9 +374,9 @@ packl xss@(PArray n# xdata@(PNested vsegd _))
         -- Concatenate both arrays to get the flat data.
         --   Although the virtual segmentation should be the same,
         --   the physical segmentation of both arrays may be different.
-        xdata_flat              = concatPA xdata
-        fdata_flat@(PBool sel)  = concatPA fdata
-        tags                    = U.tagsSel2 sel
+        xdata_flat      = concatPA xdata
+        PBool sel       = concatPA fdata
+        tags            = U.tagsSel2 sel
         
         -- Count how many elements go into each segment.        
         segd'           = U.lengthsToSegd $ U.count_s segd tags 1
index 17cf1f4..0715dfe 100644 (file)
@@ -3,9 +3,7 @@
 module Data.Array.Parallel.PArray.PData 
         ( module Data.Array.Parallel.PArray.PData.Base
         , module Data.Array.Parallel.PArray.PData.Wrap
-        , module Data.Array.Parallel.PArray.PData.Double
         , module Data.Array.Parallel.PArray.PData.Nested
-        , module Data.Array.Parallel.PArray.PData.Unit
         , module Data.Array.Parallel.PArray.PData.Tuple
         , fromListPR
         , toListPR
@@ -14,17 +12,15 @@ module Data.Array.Parallel.PArray.PData
 where
 import Data.Array.Parallel.PArray.PData.Base
 import Data.Array.Parallel.PArray.PData.Wrap
-import Data.Array.Parallel.PArray.PData.Int             ()
-import Data.Array.Parallel.PArray.PData.Word8           ()
-import Data.Array.Parallel.PArray.PData.Double
 import Data.Array.Parallel.PArray.PData.Nested
-import Data.Array.Parallel.PArray.PData.Sum2
-import Data.Array.Parallel.PArray.PData.Unit
-import Data.Array.Parallel.PArray.PData.Void
 import Data.Array.Parallel.PArray.PData.Tuple
-import Data.Array.Parallel.PArray.PRepr.Instances
-import Data.Array.Parallel.Base                         (Tag)
-import qualified Data.Array.Parallel.Unlifted           as U
+import Data.Array.Parallel.PArray.PData.Void            ()
+import Data.Array.Parallel.PArray.PData.Unit            ()
+import Data.Array.Parallel.PArray.PData.Int             ()
+import Data.Array.Parallel.PArray.PData.Word8           ()
+import Data.Array.Parallel.PArray.PData.Double          ()
+import Data.Array.Parallel.PArray.PData.Sum2            ()
+import Data.Array.Parallel.PArray.PRepr.Instances       ()
 import qualified Data.Vector                            as V
 
 
index e0ae7f9..36a6b4b 100644 (file)
@@ -15,12 +15,11 @@ module Data.Array.Parallel.PArray.PData.Base
 where
 import Data.Array.Parallel.Pretty
 import GHC.Exts
-import SpecConstr
+import SpecConstr                               ()
 import Data.Vector                              (Vector)
 import Data.Array.Parallel.Base                 (Tag)
 import qualified Data.Array.Parallel.Unlifted   as U
 import qualified Data.Vector                    as V
-import qualified Data.Vector.Unboxed            as VU
 import Prelude hiding (length)
 
 -- PArray ---------------------------------------------------------------------
index c4be3f1..377d515 100644 (file)
@@ -77,7 +77,7 @@ instance PR Double where
         = arr `VU.unsafeIndex` ix
 
   {-# INLINE_PDATA indexlPR #-}
-  indexlPR arr@(PNested vsegd (PDoubles vecpdatas)) (PInt ixs)
+  indexlPR (PNested vsegd (PDoubles vecpdatas)) (PInt ixs)
    = PDouble $ U.zipWith get vsegids ixs
    where
          -- Unbox these vectors outside the get loop.
index 7ae2170..b3a9adb 100644 (file)
@@ -70,7 +70,7 @@ instance PR Int where
         = uarr U.!: ix
 
   {-# INLINE_PDATA indexlPR #-}
-  indexlPR arr@(PNested vsegd (PInts vecpdatas)) (PInt ixs)
+  indexlPR (PNested vsegd (PInts vecpdatas)) (PInt ixs)
    = PInt $ U.zipWith get vsegids ixs
    where
          -- Unbox these vectors outside the get loop.
index 95ed852..65ee9e3 100644 (file)
@@ -64,11 +64,24 @@ data instance PDatas (PData a)
 
 
 -- TODO: we shouldn't be using these directly.
-pnested_vsegids    = U.takeVSegidsOfVSegd . pnested_uvsegd
-pnested_pseglens   = U.lengthsSSegd . U.takeSSegdOfVSegd . pnested_uvsegd
-pnested_psegstarts = U.startsSSegd  . U.takeSSegdOfVSegd . pnested_uvsegd
-pnested_psegsrcids = U.sourcesSSegd . U.takeSSegdOfVSegd . pnested_uvsegd
+pnested_vsegids    :: PData (PArray a) -> U.Array Int
+pnested_vsegids    =  U.takeVSegidsOfVSegd . pnested_uvsegd
 
+pnested_pseglens   :: PData (PArray a) -> U.Array Int
+pnested_pseglens   =  U.lengthsSSegd . U.takeSSegdOfVSegd . pnested_uvsegd
+
+pnested_psegstarts :: PData (PArray a) -> U.Array Int
+pnested_psegstarts  = U.startsSSegd  . U.takeSSegdOfVSegd . pnested_uvsegd
+
+pnested_psegsrcids :: PData (PArray a) -> U.Array Int
+pnested_psegsrcids  = U.sourcesSSegd . U.takeSSegdOfVSegd . pnested_uvsegd
+
+mkPNested :: U.Array Int
+          -> U.Array Int
+          -> U.Array Int
+          -> U.Array Int
+          -> PDatas a
+          -> PData (PArray a)
 mkPNested vsegids pseglens psegstarts psegsrcids psegdata
         = PNested
                 (U.mkVSegd vsegids 
@@ -536,8 +549,7 @@ unsafeFlattenPR arr@(PNested uvsegd _)
 --   of the total number of elements within it.
 --
 concatPR :: PR a => PData (PArray a) -> PData a
-concatPR arr = {-# SCC "concatPR" #-} concatPR' arr
-concatPR' (PNested vsegd pdatas)
+concatPR (PNested vsegd pdatas)
         -- If we know that the segments are in a single contiguous array, 
         -- and there is no sharing between them, then we can just return
         -- that array directly.
@@ -615,7 +627,7 @@ concatlPR arr
 --   segmentation of the template array.
 --
 unconcatPR :: PR b => PData (PArray a) -> PData b -> PData (PArray b)
-unconcatPR (PNested vsegd pdatas) pdata
+unconcatPR (PNested vsegd _) pdata
  = {-# SCC "unconcatPD" #-}
    let  
         -- Demote the vsegd to a manifest vsegd so it contains all the segment
index 388e48e..0385381 100644 (file)
@@ -1,17 +1,14 @@
 #include "fusion-phases.h"
 module Data.Array.Parallel.PArray.PData.Sum2 where
 
+import Data.Array.Parallel.PArray.PData.Int     ()
 import Data.Array.Parallel.PArray.PData.Base
-import Data.Array.Parallel.PArray.PData.Nested
-import Data.Array.Parallel.PArray.PData.Int
 import Data.Array.Parallel.PArray.Types
-import Data.Array.Parallel.PArray.PRepr.Base
 import Data.Array.Parallel.Base                 (Tag)
 import Data.Array.Parallel.Unlifted             as U
 import qualified Data.Vector                    as V
 import Text.PrettyPrint
 import Prelude                                  as P
-import Debug.Trace
 
 
 -------------------------------------------------------------------------------
@@ -29,6 +26,7 @@ data instance PDatas (Sum2 a b)
 
 -- PR -------------------------------------------------------------------------
 -- This stuff isn't implemented yet.
+nope :: String -> a
 nope str   = error $ "Data.Array.Parallel.PData.Sum2: no PR method for Sum2 " ++ str
 
 
index 12800b4..d281f53 100644 (file)
@@ -9,16 +9,14 @@ module Data.Array.Parallel.PArray.PData.Tuple
 where
 import Data.Array.Parallel.PArray.PData.Base
 import Data.Array.Parallel.PArray.PData.Nested
-import Data.Array.Parallel.Base
 import Text.PrettyPrint
 import GHC.Exts
 import Prelude hiding (zip, unzip)
 import qualified Data.Vector                    as V
 import qualified Prelude                        as P
-import Debug.Trace
-import qualified Data.Array.Parallel.Pretty     as T
 import qualified Data.Array.Parallel.Unlifted   as U
 
+
 -------------------------------------------------------------------------------
 data instance PData (a, b)
         = PTuple2  (PData a) (PData b)
@@ -158,9 +156,9 @@ instance (PR a, PR b) => PR (a, b) where
 
 
   {-# INLINE_PDATA lengthdPR #-}
-  lengthdPR (PTuple2s xs ys)
+  lengthdPR (PTuple2s xs _)
         = lengthdPR xs
-
+   
    
   {-# INLINE_PDATA indexdPR #-}
   indexdPR (PTuple2s xs ys) i
@@ -175,8 +173,8 @@ instance (PR a, PR b) => PR (a, b) where
   {-# INLINE_PDATA concatdPR #-}
   concatdPR vecs
         = PTuple2s
-                (concatdPR $ V.map (\(PTuple2s xs ys) -> xs) vecs)
-                (concatdPR $ V.map (\(PTuple2s xs ys) -> ys) vecs)
+                (concatdPR $ V.map (\(PTuple2s xs _) -> xs) vecs)
+                (concatdPR $ V.map (\(PTuple2s _ ys) -> ys) vecs)
 
 
   {-# INLINE_PDATA fromVectordPR #-}
@@ -203,7 +201,7 @@ zipPD   = PTuple2
 
 -- | Lifted zip.
 ziplPR   :: (PR a, PR b) => PData (PArray a) -> PData (PArray b) -> PData (PArray (a, b))
-ziplPR arr1@(PNested vsegd1 pdatas1) arr2@(PNested vsegd2 pdatas2)
+ziplPR arr1 arr2
  = let  (segd1, pdata1) = unsafeFlattenPR arr1
         (_,     pdata2) = unsafeFlattenPR arr2
    in   PNested (U.promoteSegdToVSegd segd1)
index ca5785d..e90dc3b 100644 (file)
@@ -4,10 +4,10 @@ module Data.Array.Parallel.PArray.PData.Void
         (Void, void, pvoid, fromVoid, pvoids)
 where
 import Data.Array.Parallel.PArray.PData.Base
+import Data.Array.Parallel.PArray.PRepr.Base    ()
 import Data.Array.Parallel.PArray.Types
-import Data.Array.Parallel.PArray.PRepr.Base
 import Data.Array.Parallel.Pretty
-import qualified Data.Vector            as V
+import qualified Data.Vector                    as V
 
 -------------------------------------------------------------------------------
 -- | The Void type is used as a place holder in situations where we don't 
@@ -24,7 +24,6 @@ import qualified Data.Vector            as V
 --   was well as a partial lengthPR function.
 --
 data instance PData Void
-        = PVoid
 
 -- | PVoids instance counts how many "vectors" of void we have
 data instance PDatas Void
@@ -38,6 +37,7 @@ pvoids   = PVoids
 
 
 -- PR --------------------------------------------------------------------------
+nope :: String -> a
 nope str    = error $ "Data.Array.Parallel.PData.Void: no PR method for " ++ str
 
 instance PR Void where
index ebe9b19..1b8595f 100644 (file)
@@ -77,7 +77,7 @@ instance PR Word8 where
         = uarr U.!: ix
 
   {-# INLINE_PDATA indexlPR #-}
-  indexlPR arr@(PNested vsegd (PWord8s vecpdatas)) (PInt ixs)
+  indexlPR (PNested vsegd (PWord8s vecpdatas)) (PInt ixs)
    = PWord8 $ U.zipWith get vsegids ixs
    where
          -- Unbox these vectors outside the get loop.
index da619f8..037bec4 100644 (file)
@@ -5,7 +5,6 @@ import Data.Array.Parallel.PArray.PData.Base
 import Data.Array.Parallel.PArray.PData.Nested
 import Data.Array.Parallel.PArray.Types
 import Data.Array.Parallel.PArray.PRepr.Base
-import Data.Vector.Unboxed                      (Vector)
 import qualified Data.Vector                    as V
 
 -------------------------------------------------------------------------------
index 645f0fc..c19c448 100644 (file)
@@ -7,7 +7,6 @@ module Data.Array.Parallel.PArray.PRepr
         , module Data.Array.Parallel.PArray.PRepr.Nested
         , module Data.Array.Parallel.PArray.PRepr.Tuple
         , unpackPA
-        , packByTagsPA
         , mapdPA
         , zipWithdPA)
 where
@@ -18,10 +17,8 @@ import Data.Array.Parallel.PArray.PRepr.Tuple
 import Data.Array.Parallel.PArray.PData
 import Data.Array.Parallel.Pretty
 import Data.Vector                              (Vector)
-import Data.Array.Parallel.Base                 (Tag)
-import qualified Data.Array.Parallel.Unlifted   as U
 import qualified Data.Vector                    as V
-import GHC.Exts
+
 
 -- Pretty -------------------------------------------------------------------
 -- | Show a virtual array.
@@ -58,33 +55,6 @@ instance PA a => PprPhysical (Vector a) where
 unpackPA :: PA a => PArray a -> PData (PRepr a)
 unpackPA (PArray _ pdata)
         = toArrPRepr pdata
-                
---------------------------------------------------------------------------------
--- | Filter some scattered segments according to some tag arrays.
---   The `SSegd` describes the layout of the source data as well as the tags,
---   which must be the same.
-packByTagsPA
-        :: PA a
-        => U.SSegd
-        -> PDatas a             -- ^ Source array
-        -> PDatas Tag           -- ^ Tag arrays
-        -> Tag                  -- ^ Tag of elements to select.
-        -> (U.Segd, PData a)
-
-packByTagsPA ssegd xdatas bdatas tag
- = let
-        -- Gather the scattered data together into contiguous arrays, 
-        -- which is the form packByTag needs.
-        xdata_contig            = extractsPA xdatas ssegd
-        bdata'@(PInt tags)      = extractsPA bdatas ssegd
-         
-        -- Pack all the psegs.
-        xdata'          = packByTagPA xdata_contig tags 1
-
-        -- Rebuild the segd to account for the possibly smaller segments.
-        segd            = U.lengthsToSegd $ U.lengthsSSegd ssegd
-  in    (segd, xdata')
-{-# INLINE_PA packByTagsPA #-}
 
 
 mapdPA  :: (PA a, PA b)
index 92374ce..609d804 100644 (file)
@@ -9,19 +9,19 @@ module Data.Array.Parallel.PArray.PRepr.Instances where
 import Data.Array.Parallel.PArray.Types
 import Data.Array.Parallel.PArray.PRepr.Base
 import Data.Array.Parallel.PArray.PData.Base
-import Data.Array.Parallel.PArray.PData.Wrap
-import Data.Array.Parallel.PArray.PData.Unit
+
 import Data.Array.Parallel.PArray.PData.Void
-import Data.Array.Parallel.PArray.PData.Nested
-import Data.Array.Parallel.PArray.PData.Sum2
-import Data.Array.Parallel.PArray.PData.Tuple
-import Data.Array.Parallel.PArray.PData.Int
-import Data.Array.Parallel.PArray.PData.Word8
-import Data.Array.Parallel.PArray.PData.Double
+import Data.Array.Parallel.PArray.PData.Sum2    
+import Data.Array.Parallel.PArray.PData.Wrap    ()
+import Data.Array.Parallel.PArray.PData.Unit    ()
+import Data.Array.Parallel.PArray.PData.Nested  ()
+import Data.Array.Parallel.PArray.PData.Tuple   ()
+import Data.Array.Parallel.PArray.PData.Int     ()
+import Data.Array.Parallel.PArray.PData.Word8   ()
+import Data.Array.Parallel.PArray.PData.Double  ()
 import Data.Array.Parallel.Base                 (Tag)
 import qualified Data.Array.Parallel.Unlifted   as U
 import qualified Data.Vector                    as V
-import Text.PrettyPrint
 import Data.Word
 
 
index 4af05af..50d9e9e 100644 (file)
@@ -11,9 +11,7 @@ where
 import Data.Array.Parallel.PArray.PRepr.Base
 import Data.Array.Parallel.PArray.PData.Base
 import Data.Array.Parallel.PArray.PData.Nested
-import qualified Data.Array.Parallel.Unlifted           as U
 import qualified Data.Vector                            as V
-import Data.Vector                                      (Vector)
 
 
 -- PArray ---------------------------------------------------------------------
index 0b281bc..f3ab811 100644 (file)
@@ -3,15 +3,14 @@
 -- | PRepr instance for tuples
 --   and PD wrappers for other functions defined in D.A.P.PArray.PData.Tuple.
 module Data.Array.Parallel.PArray.PRepr.Tuple
-        ( PRepr(..)
+        ( PRepr
         , zipl)
 where
 import Data.Array.Parallel.PArray.Types
 import Data.Array.Parallel.PArray.PRepr.Base
 import Data.Array.Parallel.PArray.PData.Base
-import Data.Array.Parallel.PArray.PData.Wrap
 import Data.Array.Parallel.PArray.PData.Tuple
-import Data.Array.Parallel.PArray.PData.Nested
+import Data.Array.Parallel.PArray.PData.Wrap
 
 
 -------------------------------------------------------------------------------
index 1fa9f54..6f29fcb 100644 (file)
@@ -23,7 +23,10 @@ import qualified "dph-lifted-reference"
 import Prelude hiding (length)
 
 -- Config ---------------------------------------------------------------------
+debugLiftedTrace        :: Bool
 debugLiftedTrace        = False
+
+debugLiftedCompare      :: Bool
 debugLiftedCompare      = False
 
 
index ec4541d..972115c 100644 (file)
@@ -31,6 +31,7 @@ module Data.Array.Parallel.PArray.Scalar
         , enumFromTo, enumFromTol)
 where
 import Data.Array.Parallel.PArray.PData.Word8
+import Data.Array.Parallel.PArray.PData.Double
 import Data.Array.Parallel.PArray.PData
 import Data.Array.Parallel.PArray.PRepr
 import Data.Array.Parallel.Base
@@ -53,7 +54,10 @@ class (PA a, U.Elt a) => Scalar a where
 
 
 -- Shorthands for the above methods used in this module only.
+from    :: Scalar a => PData a -> U.Array a
 from    = fromScalarPData
+
+to      :: Scalar a => U.Array a -> PData a
 to      = toScalarPData
 
 
@@ -99,7 +103,7 @@ fromUArray uarr
  
 {-# INLINE_PA toUArray #-}
 toUArray    :: Scalar a => PArray a -> U.Array a
-toUArray (PArray n# pdata)
+toUArray (PArray _ pdata)
         = fromScalarPData pdata
  
 
index f1adc83..31ccc31 100644 (file)
@@ -12,7 +12,7 @@
 -- 
 module Data.Array.Parallel.PArray.Types (
   -- * The Void type
-  Void(..),
+  Void,
   void,
   fromVoid,     
 
index 61ce036..7a49988 100644 (file)
@@ -110,6 +110,7 @@ minIndexPP      = L.closure1' (SC.fold1Index min') (SC.fold1sIndex min')
 {-# INLINE      minIndexPP #-}
 {-# NOVECTORISE minIndexPP #-}
 
+min' :: P.Ord b => (a, b) -> (a, b) -> (a, b)
 min' (i,x) (j,y) | x P.<= y    = (i,x)
                  | P.otherwise = (j,y)
 {-# NOVECTORISE min' #-}
@@ -125,6 +126,7 @@ maxIndexPP      = L.closure1' (SC.fold1Index max') (SC.fold1sIndex max')
 {-# INLINE      maxIndexPP #-}
 {-# NOVECTORISE maxIndexPP #-}
 
+max' :: P.Ord b => (a, b) -> (a, b) -> (a, b)
 max' (i,x) (j,y) | x P.>= y    = (i,x)
                  | P.otherwise = (j,y)
 {-# NOVECTORISE max' #-}
index 2763973..dbf2295 100644 (file)
@@ -103,6 +103,7 @@ minIndexPP      = L.closure1' (SC.fold1Index min') (SC.fold1sIndex min')
 {-# INLINE      minIndexPP #-}
 {-# NOVECTORISE minIndexPP #-}
 
+min' :: P.Ord b => (a, b) -> (a, b) -> (a, b)
 min' (i,x) (j,y) | x P.<= y    = (i,x)
                  | P.otherwise = (j,y)
 {-# NOVECTORISE min' #-}
@@ -118,6 +119,7 @@ maxIndexPP      = L.closure1' (SC.fold1Index max') (SC.fold1sIndex max')
 {-# INLINE      maxIndexPP #-}
 {-# NOVECTORISE maxIndexPP #-}
 
+max' :: P.Ord b => (a, b) -> (a, b) -> (a, b)
 max' (i,x) (j,y) | x P.>= y    = (i,x)
                  | P.otherwise = (j,y)
 {-# NOVECTORISE max' #-}
index d85960d..80c2cdc 100644 (file)
@@ -3,7 +3,6 @@ module Data.Array.Parallel.Prelude.Tuple (
 ) where
   
 import Data.Array.Parallel.Lifted.Closure
-import Data.Array.Parallel.PArray.PData.Tuple
 import Data.Array.Parallel.PArray.PRepr
 import qualified Data.Array.Parallel.PArray     as PA
 
index c6dda98..3f825df 100644 (file)
@@ -103,6 +103,7 @@ minIndexPP      = L.closure1' (SC.fold1Index min') (SC.fold1sIndex min')
 {-# INLINE      minIndexPP #-}
 {-# NOVECTORISE minIndexPP #-}
 
+min' :: P.Ord b => (a, b) -> (a, b) -> (a, b)
 min' (i,x) (j,y) | x P.<= y    = (i,x)
                  | P.otherwise = (j,y)
 {-# NOVECTORISE min' #-}
@@ -118,6 +119,7 @@ maxIndexPP      = L.closure1' (SC.fold1Index max') (SC.fold1sIndex max')
 {-# INLINE      maxIndexPP #-}
 {-# NOVECTORISE maxIndexPP #-}
 
+max' :: P.Ord b => (a, b) -> (a, b) -> (a, b)
 max' (i,x) (j,y) | x P.>= y    = (i,x)
                  | P.otherwise = (j,y)
 {-# NOVECTORISE max' #-}
index 2438f61..e7969cf 100644 (file)
@@ -34,6 +34,7 @@ module Data.Array.Parallel.Prim
         -- Selectors
         , Sel2
         , tagsSel2
+        , pickSel2#
         , replicateSel2#
         , elementsSel2_0#
         , elementsSel2_1#
@@ -96,7 +97,7 @@ packByTagPD xs _ tags tag#
 
 
 combine2PD :: PA a => Int# -> U.Sel2 -> PData a -> PData a -> PData a
-combine2PD len# sel xs ys
+combine2PD _ sel xs ys
         = combine2PA sel xs ys
 
 
@@ -121,6 +122,7 @@ closure fv fl e
 
 -- | Apply a closure.
 {-# INLINE ($:) #-}
+($:) :: forall a b. (a :-> b) -> a -> b
 ($:)    = (C.$:)
 
 
index ebb2682..edc0767 100644 (file)
@@ -82,9 +82,11 @@ Library
         PackageImports
 
   GHC-Options:
-        -Odph -fno-liberate-case -fcpr-off
+        -Odph 
+        -fcpr-off -fno-liberate-case -fno-spec-constr
+        -Wall
         -fno-warn-missing-methods
-        -fno-spec-constr
+        -fno-warn-orphans
 
   Build-Depends:  
         base             == 4.4.*,