hw-rankselect-base 0.1.0.0 → 0.2.0.0
raw patch · 6 files changed
+75/−34 lines, 6 filesdep +criteriondep +hw-intdep ~hw-bitsdep ~hw-primPVP ok
version bump matches the API change (PVP)
Dependencies added: criterion, hw-int
Dependency ranges changed: hw-bits, hw-prim
API changes (from Hackage documentation)
Files
- LICENSE +26/−17
- README.md +2/−7
- bench/Main.hs +23/−0
- hw-rankselect-base.cabal +22/−8
- src/HaskellWorks/Data/RankSelect/Base/Rank1.hs +1/−1
- src/HaskellWorks/Data/RankSelect/Base/Select1.hs +1/−1
LICENSE view
@@ -1,21 +1,30 @@-MIT License+Copyright John Ky (c) 2016 -Copyright (c) 2016 John Ky+All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy-of this software and associated documentation files (the "Software"), to deal-in the Software without restriction, including without limitation the rights-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell-copies of the Software, and to permit persons to whom the Software is-furnished to do so, subject to the following conditions:+Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in all-copies or substantial portions of the Software.+ * Redistributions of source code must retain the above copyright+ notice, this list of conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE-SOFTWARE.+ * Redistributions in binary form must reproduce the above+ copyright notice, this list of conditions and the following+ disclaimer in the documentation and/or other materials provided+ with the distribution.++ * Neither the name of Author name here nor the names of other+ contributors may be used to endorse or promote products derived+ from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
README.md view
@@ -1,9 +1,4 @@-# hw-rankselect-[](https://circleci.com/gh/haskell-works/hw-rankselect/tree/0.0-branch)+# hw-rankselect-base+[](https://circleci.com/gh/haskell-works/hw-rankselect-base/tree/0.0-branch) Rank and select operations.--```-cabal repl hw-rankselect-test-λ> :trace main-```
+ bench/Main.hs view
@@ -0,0 +1,23 @@+{-# LANGUAGE OverloadedStrings #-}++module Main where++import Criterion.Main+import qualified Data.Vector.Storable as DVS+import Data.Word+import HaskellWorks.Data.RankSelect.Base++setupEnvVector :: Int -> IO (DVS.Vector Word64)+setupEnvVector n = return $ DVS.fromList (take n (cycle [maxBound, 0]))++benchRankSelect :: [Benchmark]+benchRankSelect =+ [ env (setupEnvVector 1000000) $ \bv -> bgroup "Rank"+ [ bench "Rank - Once" (whnf (rank1 bv) 1)+ , bench "Select - Once" (whnf (select1 bv) 1)+ , bench "Rank - Many" (nf (map (rank1 bv)) [0, 1000..10000000])+ ]+ ]++main :: IO ()+main = defaultMain benchRankSelect
hw-rankselect-base.cabal view
@@ -1,14 +1,14 @@ name: hw-rankselect-base-version: 0.1.0.0-synopsis: Conduits for tokenizing streams.+version: 0.2.0.0+synopsis: Rank-select base description: Please see README.md homepage: http://github.com/haskell-works/hw-rankselect-base#readme-license: MIT+license: BSD3 license-file: LICENSE author: John Ky maintainer: newhoggy@gmail.com copyright: 2016 John Ky-category: Data, Conduit+category: Data build-type: Simple extra-source-files: README.md cabal-version: >= 1.22@@ -23,8 +23,9 @@ , HaskellWorks.Data.RankSelect.Base.Select0 , HaskellWorks.Data.RankSelect.Base.Select1 build-depends: base >= 4 && < 5- , hw-bits >= 0.3.0.0- , hw-prim >= 0.3.0.5+ , hw-bits >= 0.4.0.0+ , hw-int >= 0.0.0.1+ , hw-prim >= 0.4.0.0 , hw-string-parse >= 0.0.0.2 , safe , vector@@ -43,8 +44,8 @@ build-depends: base >= 4 && < 5 , hspec- , hw-bits >= 0.3.0.0- , hw-prim >= 0.3.0.5+ , hw-bits >= 0.4.0.0+ , hw-prim >= 0.4.0.0 , hw-rankselect-base , QuickCheck , vector@@ -54,3 +55,16 @@ source-repository head type: git location: https://github.com/haskell-works/hw-rankselect-base++benchmark bench+ Type: exitcode-stdio-1.0+ HS-Source-Dirs: bench+ Main-Is: Main.hs+ GHC-Options: -O2 -Wall -msse4.2+ Default-Language: Haskell2010+ Build-Depends: base >= 4 && < 5+ , criterion+ , hw-bits >= 0.4.0.0+ , hw-prim >= 0.4.0.0+ , hw-rankselect-base+ , vector
src/HaskellWorks/Data/RankSelect/Base/Rank1.hs view
@@ -14,8 +14,8 @@ import HaskellWorks.Data.Bits.BitWise import HaskellWorks.Data.Bits.ElemFixedBitSize import HaskellWorks.Data.Bits.PopCount.PopCount1+import HaskellWorks.Data.Int.Widen.Widen64 import HaskellWorks.Data.Positioning-import HaskellWorks.Data.Widen.Widen64 import Prelude as P {-# ANN module ("HLint: Ignore Reduce duplication" :: String) #-}
src/HaskellWorks/Data/RankSelect/Base/Select1.hs view
@@ -14,7 +14,7 @@ import HaskellWorks.Data.Bits.BitWise import HaskellWorks.Data.Bits.ElemFixedBitSize import HaskellWorks.Data.Bits.PopCount.PopCount1-import HaskellWorks.Data.Narrow+import HaskellWorks.Data.Int.Narrow import HaskellWorks.Data.Positioning import Prelude as P