Make fromBool and toBool monomorphic
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Mon, 2 Nov 2009 13:00:32 +0000 (13:00 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Mon, 2 Nov 2009 13:00:32 +0000 (13:00 +0000)
They weren't getting inlined otherwise. Big performance ouch: this change
makes sequential Quickhull about 30% faster.

dph-base/Data/Array/Parallel/Base/Util.hs

index 85a057d..7baa730 100644 (file)
@@ -2,12 +2,12 @@ module Data.Array.Parallel.Base.Util (
   fromBool, toBool
 ) where
 
-fromBool :: Num a => Bool -> a
+fromBool :: Bool -> Int
 fromBool False = 0
 fromBool True  = 1
 {-# INLINE fromBool #-}
 
-toBool :: Num a => a -> Bool
+toBool :: Int -> Bool
 toBool n | n == 0    = False
          | otherwise = True
 {-# INLINE toBool #-}