Repository : ssh://darcs.haskell.org//srv/darcs/packages/containers On branch :
http://hackage.haskell.org/trac/ghc/changeset/e73f6d1f0f38b6832918793bee29719a10cd452a >--------------------------------------------------------------- commit e73f6d1f0f38b6832918793bee29719a10cd452a Author: Joachim Breitner <[email protected]> Date: Sat Sep 17 22:51:33 2011 +0200 Inline highestBitSet/lowstBitSet, little impact though >--------------------------------------------------------------- Data/DenseIntSet.hs | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Data/DenseIntSet.hs b/Data/DenseIntSet.hs index 25f5de9..d500a18 100644 --- a/Data/DenseIntSet.hs +++ b/Data/DenseIntSet.hs @@ -1178,8 +1178,9 @@ lowestBitSet n0 = (n3,b3) = if n2 .&. 0xFF /= 0 then (n2,b2) else (n2 `shiftRL` 8, 8+b2) (n4,b4) = if n3 .&. 0xF /= 0 then (n3,b3) else (n3 `shiftRL` 4, 4+b3) (n5,b5) = if n4 .&. 0x3 /= 0 then (n4,b4) else (n4 `shiftRL` 2, 2+b4) - (n6,b6) = if n5 .&. 0x1 /= 0 then (n5,b5) else (n5 `shiftRL` 2, 1+b5) + b6 = if n5 .&. 0x1 /= 0 then b5 else 1+b5 in b6 +{-# INLINE lowestBitSet #-} highestBitSet :: Word -> Int highestBitSet n0 = @@ -1188,8 +1189,9 @@ highestBitSet n0 = (n3,b3) = if n2 .&. 0xFF00 /= 0 then (n2 `shiftRL` 8, 8+b2) else (n2,b2) (n4,b4) = if n3 .&. 0xF0 /= 0 then (n3 `shiftRL` 4, 4+b3) else (n3,b3) (n5,b5) = if n4 .&. 0xC /= 0 then (n4 `shiftRL` 2, 2+b4) else (n4,b4) - (n6,b6) = if n5 .&. 0x2 /= 0 then (n5 `shiftRL` 2, 1+b5) else (n5,b5) + b6 = if n5 .&. 0x2 /= 0 then 1+b5 else b5 in b6 +{-# INLINE highestBitSet #-} {---------------------------------------------------------------------- [wordMask] sets the last n bits to zero, where n is the word size of the _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
