packages feed

hw-bits 0.7.0.1 → 0.7.0.2

raw patch · 5 files changed

+166/−27 lines, 5 filesPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

API changes (from Hackage documentation)

+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word16))
+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word32))
+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word64))
+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word8))
+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word16))
+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word32))
+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word64))
+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word8))
+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word16))
+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word32))
+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word64))
+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word8))
+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word16))
+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word32))
+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word64))
+ HaskellWorks.Data.Bits.PopCount.PopCount0: instance HaskellWorks.Data.Bits.PopCount.PopCount0.PopCount0 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word8))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word16))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word32))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word64))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word8))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word16))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word32))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word64))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Storable.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word8))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word16))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word32))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word64))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Broadword.Broadword GHC.Word.Word8))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word16))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word32))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word64))
+ HaskellWorks.Data.Bits.PopCount.PopCount1: instance HaskellWorks.Data.Bits.PopCount.PopCount1.PopCount1 (Data.Vector.Vector (HaskellWorks.Data.Bits.Types.Builtin.Builtin GHC.Word.Word8))

Files

hw-bits.cabal view
@@ -1,5 +1,5 @@ name:                   hw-bits-version:                0.7.0.1+version:                0.7.0.2 synopsis:               Bit manipulation description:            Please see README.md homepage:               http://github.com/haskell-works/hw-bits#readme
src/HaskellWorks/Data/Bits/Log2.hs view
@@ -2,10 +2,11 @@   ( Log2(..)   ) where +import Data.Word+import HaskellWorks.Data.AtIndex+import HaskellWorks.Data.Bits.BitWise+ import qualified Data.Vector.Storable as DVS-import           Data.Word-import           HaskellWorks.Data.AtIndex-import           HaskellWorks.Data.Bits.BitWise  class Log2 a where   -- | Log base of the given value rounded down to the nearest integer
src/HaskellWorks/Data/Bits/PopCount/PopCount0.hs view
@@ -6,16 +6,17 @@     ( PopCount0(..)     ) where -import qualified Data.Vector                               as DV-import qualified Data.Vector.Storable                      as DVS-import           Data.Word-import           HaskellWorks.Data.Bits.BitWise-import           HaskellWorks.Data.Bits.PopCount.PopCount1-import           HaskellWorks.Data.Bits.Types.Broadword-import           HaskellWorks.Data.Bits.Types.Builtin-import           HaskellWorks.Data.Positioning-import           Prelude                                   as P+import Data.Word+import HaskellWorks.Data.Bits.BitWise+import HaskellWorks.Data.Bits.PopCount.PopCount1+import HaskellWorks.Data.Bits.Types.Broadword+import HaskellWorks.Data.Bits.Types.Builtin+import HaskellWorks.Data.Positioning+import Prelude                                   as P +import qualified Data.Vector          as DV+import qualified Data.Vector.Storable as DVS+ class PopCount0 v where   -- | The number of 0-bits in the value.   popCount0 :: v -> Count@@ -106,5 +107,73 @@   {-# INLINE popCount0 #-}  instance PopCount0 (DVS.Vector Word64) where+  popCount0 = DVS.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++-- Vector of Builtin instances++instance PopCount0 (DV.Vector (Builtin Word8)) where+  popCount0 = DV.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++instance PopCount0 (DV.Vector (Builtin Word16)) where+  popCount0 = DV.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++instance PopCount0 (DV.Vector (Builtin Word32)) where+  popCount0 = DV.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++instance PopCount0 (DV.Vector (Builtin Word64)) where+  popCount0 = DV.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++instance PopCount0 (DVS.Vector (Builtin Word8)) where+  popCount0 = DVS.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++instance PopCount0 (DVS.Vector (Builtin Word16)) where+  popCount0 = DVS.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++instance PopCount0 (DVS.Vector (Builtin Word32)) where+  popCount0 = DVS.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++instance PopCount0 (DVS.Vector (Builtin Word64)) where+  popCount0 = DVS.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++-- Vector of Broadword instances++instance PopCount0 (DV.Vector (Broadword Word8)) where+  popCount0 = DV.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++instance PopCount0 (DV.Vector (Broadword Word16)) where+  popCount0 = DV.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++instance PopCount0 (DV.Vector (Broadword Word32)) where+  popCount0 = DV.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++instance PopCount0 (DV.Vector (Broadword Word64)) where+  popCount0 = DV.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++instance PopCount0 (DVS.Vector (Broadword Word8)) where+  popCount0 = DVS.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++instance PopCount0 (DVS.Vector (Broadword Word16)) where+  popCount0 = DVS.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++instance PopCount0 (DVS.Vector (Broadword Word32)) where+  popCount0 = DVS.foldl' (\c -> (c +) . popCount0) 0+  {-# INLINE popCount0 #-}++instance PopCount0 (DVS.Vector (Broadword Word64)) where   popCount0 = DVS.foldl' (\c -> (c +) . popCount0) 0   {-# INLINE popCount0 #-}
src/HaskellWorks/Data/Bits/PopCount/PopCount1.hs view
@@ -1,20 +1,21 @@-{-# LANGUAGE FlexibleInstances     #-}+{-# LANGUAGE FlexibleInstances #-}  module HaskellWorks.Data.Bits.PopCount.PopCount1     ( PopCount1(..)     ) where -import qualified Data.Bits                              as DB-import qualified Data.Vector                            as DV-import qualified Data.Vector.Storable                   as DVS-import           Data.Word-import           HaskellWorks.Data.Bits.BitWise-import           HaskellWorks.Data.Bits.Types.Broadword-import           HaskellWorks.Data.Bits.Types.Builtin-import           HaskellWorks.Data.Int.Widen.Widen64-import           HaskellWorks.Data.Positioning-import           Prelude                                as P+import Data.Word+import HaskellWorks.Data.Bits.BitWise+import HaskellWorks.Data.Bits.Types.Broadword+import HaskellWorks.Data.Bits.Types.Builtin+import HaskellWorks.Data.Int.Widen.Widen64+import HaskellWorks.Data.Positioning+import Prelude                                as P +import qualified Data.Bits            as DB+import qualified Data.Vector          as DV+import qualified Data.Vector.Storable as DVS+ type FastWord a = Builtin a  fastWord :: a -> FastWord a@@ -127,5 +128,73 @@   {-# INLINE popCount1 #-}  instance PopCount1 (DVS.Vector Word64) where+  popCount1 = DVS.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++-- Vector of Builtin instances++instance PopCount1 (DV.Vector (Builtin Word8)) where+  popCount1 = DV.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++instance PopCount1 (DV.Vector (Builtin Word16)) where+  popCount1 = DV.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++instance PopCount1 (DV.Vector (Builtin Word32)) where+  popCount1 = DV.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++instance PopCount1 (DV.Vector (Builtin Word64)) where+  popCount1 = DV.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++instance PopCount1 (DVS.Vector (Builtin Word8)) where+  popCount1 = DVS.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++instance PopCount1 (DVS.Vector (Builtin Word16)) where+  popCount1 = DVS.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++instance PopCount1 (DVS.Vector (Builtin Word32)) where+  popCount1 = DVS.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++instance PopCount1 (DVS.Vector (Builtin Word64)) where+  popCount1 = DVS.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++-- Vector of Broadword instances++instance PopCount1 (DV.Vector (Broadword Word8)) where+  popCount1 = DV.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++instance PopCount1 (DV.Vector (Broadword Word16)) where+  popCount1 = DV.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++instance PopCount1 (DV.Vector (Broadword Word32)) where+  popCount1 = DV.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++instance PopCount1 (DV.Vector (Broadword Word64)) where+  popCount1 = DV.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++instance PopCount1 (DVS.Vector (Broadword Word8)) where+  popCount1 = DVS.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++instance PopCount1 (DVS.Vector (Broadword Word16)) where+  popCount1 = DVS.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++instance PopCount1 (DVS.Vector (Broadword Word32)) where+  popCount1 = DVS.foldl' (\c -> (c +) . popCount1) 0+  {-# INLINE popCount1 #-}++instance PopCount1 (DVS.Vector (Broadword Word64)) where   popCount1 = DVS.foldl' (\c -> (c +) . popCount1) 0   {-# INLINE popCount1 #-}
src/HaskellWorks/Data/Bits/Word.hs view
@@ -3,9 +3,9 @@  module HaskellWorks.Data.Bits.Word where -import           Data.Word-import           HaskellWorks.Data.Bits.BitLength-import           HaskellWorks.Data.Bits.BitWise+import Data.Word+import HaskellWorks.Data.Bits.BitLength+import HaskellWorks.Data.Bits.BitWise  class WordConcat a where   type DoubleWords a