histogram-fill 0.7.3.0 → 0.7.4.0
raw patch · 3 files changed
+114/−8 lines, 3 filesdep ~vectorPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: vector
API changes (from Hackage documentation)
- Data.Histogram.Generic: instance (NFData a, NFData bin) => NFData (Histogram v bin a)
+ Data.Histogram: maxBin :: (Bin bin, Ord a, Unbox a) => Histogram bin a -> BinValue bin
+ Data.Histogram: maxBinBy :: (Bin bin, Ord a, Unbox a) => (a -> a -> Ordering) -> Histogram bin a -> BinValue bin
+ Data.Histogram: maxIndex :: (Bin bin, Ord a, Unbox a) => Histogram bin a -> Int
+ Data.Histogram: maxIndexBy :: (Bin bin, Ord a, Unbox a) => (a -> a -> Ordering) -> Histogram bin a -> Int
+ Data.Histogram: maximumBy :: (Bin bin, Unbox a) => (a -> a -> Ordering) -> Histogram bin a -> a
+ Data.Histogram: minBin :: (Bin bin, Ord a, Unbox a) => Histogram bin a -> BinValue bin
+ Data.Histogram: minBinBy :: (Bin bin, Ord a, Unbox a) => (a -> a -> Ordering) -> Histogram bin a -> BinValue bin
+ Data.Histogram: minIndex :: (Bin bin, Ord a, Unbox a) => Histogram bin a -> Int
+ Data.Histogram: minIndexBy :: (Bin bin, Ord a, Unbox a) => (a -> a -> Ordering) -> Histogram bin a -> Int
+ Data.Histogram: minimumBy :: (Bin bin, Unbox a) => (a -> a -> Ordering) -> Histogram bin a -> a
+ Data.Histogram.Generic: instance (NFData a, NFData bin, NFData (v a)) => NFData (Histogram v bin a)
+ Data.Histogram.Generic: maxBin :: (Bin bin, Ord a, Vector v a) => Histogram v bin a -> BinValue bin
+ Data.Histogram.Generic: maxBinBy :: (Bin bin, Ord a, Vector v a) => (a -> a -> Ordering) -> Histogram v bin a -> BinValue bin
+ Data.Histogram.Generic: maxIndex :: (Bin bin, Ord a, Vector v a) => Histogram v bin a -> Int
+ Data.Histogram.Generic: maxIndexBy :: (Bin bin, Ord a, Vector v a) => (a -> a -> Ordering) -> Histogram v bin a -> Int
+ Data.Histogram.Generic: maximumBy :: (Bin bin, Vector v a) => (a -> a -> Ordering) -> Histogram v bin a -> a
+ Data.Histogram.Generic: minBin :: (Bin bin, Ord a, Vector v a) => Histogram v bin a -> BinValue bin
+ Data.Histogram.Generic: minBinBy :: (Bin bin, Ord a, Vector v a) => (a -> a -> Ordering) -> Histogram v bin a -> BinValue bin
+ Data.Histogram.Generic: minIndex :: (Bin bin, Ord a, Vector v a) => Histogram v bin a -> Int
+ Data.Histogram.Generic: minIndexBy :: (Bin bin, Ord a, Vector v a) => (a -> a -> Ordering) -> Histogram v bin a -> Int
+ Data.Histogram.Generic: minimumBy :: (Bin bin, Vector v a) => (a -> a -> Ordering) -> Histogram v bin a -> a
Files
- Data/Histogram.hs +46/−1
- Data/Histogram/Generic.hs +60/−5
- histogram-fill.cabal +8/−2
Data/Histogram.hs view
@@ -48,9 +48,20 @@ -- * Folding , foldl , bfoldl+ -- ** Specialized folds , sum , minimum+ , minimumBy , maximum+ , maximumBy+ , minIndex+ , minIndexBy+ , maxIndex+ , maxIndexBy+ , minBin+ , minBinBy+ , maxBin+ , maxBinBy -- * Slicing & rebinning , slice , rebin@@ -181,13 +192,47 @@ bfoldl = H.bfoldl sum :: (Bin bin, Unbox a, Num a) => Histogram bin a -> a-sum = foldl (+) 0+sum = H.sum + minimum :: (Bin bin, Unbox a, Ord a) => Histogram bin a -> a minimum = H.minimum +minimumBy :: (Bin bin, Unbox a) => (a -> a -> Ordering) -> Histogram bin a -> a+minimumBy = H.minimumBy+ maximum :: (Bin bin, Unbox a, Ord a) => Histogram bin a -> a maximum = H.maximum++maximumBy :: (Bin bin, Unbox a) => (a -> a -> Ordering) -> Histogram bin a -> a+maximumBy = H.maximumBy+++minIndex :: (Bin bin, Ord a, Unbox a) => Histogram bin a -> Int+minIndex = H.minIndex++minIndexBy :: (Bin bin, Ord a, Unbox a) => (a -> a -> Ordering) -> Histogram bin a -> Int+minIndexBy = H.minIndexBy++maxIndex :: (Bin bin, Ord a, Unbox a) => Histogram bin a -> Int+maxIndex = H.maxIndex++maxIndexBy :: (Bin bin, Ord a, Unbox a) => (a -> a -> Ordering) -> Histogram bin a -> Int+maxIndexBy = H.maxIndexBy+++minBin :: (Bin bin, Ord a, Unbox a) => Histogram bin a -> BinValue bin+minBin = H.minBin++minBinBy :: (Bin bin, Ord a, Unbox a) => (a -> a -> Ordering) -> Histogram bin a -> BinValue bin+minBinBy = H.minBinBy++maxBin :: (Bin bin, Ord a, Unbox a) => Histogram bin a -> BinValue bin+maxBin = H.maxBin++maxBinBy :: (Bin bin, Ord a, Unbox a) => (a -> a -> Ordering) -> Histogram bin a -> BinValue bin+maxBinBy = H.maxBinBy+ ----------------------------------------------------------------
Data/Histogram/Generic.hs view
@@ -47,9 +47,20 @@ -- * Folding , foldl , bfoldl+ -- ** Specialized folds , sum , minimum+ , minimumBy , maximum+ , maximumBy+ , minIndex+ , minIndexBy+ , maxIndex+ , maxIndexBy+ , minBin+ , minBinBy+ , maxBin+ , maxBinBy -- * Slicing & rebinning , slice , rebin@@ -190,9 +201,9 @@ -- | Vector do not supply 'NFData' instance so let just 'seq' it and -- hope it's enough. Should be enough for unboxed vectors.-instance (NFData a, NFData bin) => NFData (Histogram v bin a) where- rnf (Histogram bin uo vec) = - rnf bin `seq` rnf uo `seq` seq vec ()+instance (NFData a, NFData bin, NFData (v a)) => NFData (Histogram v bin a) where+ rnf (Histogram bin uo vec) =+ rnf bin `seq` rnf uo `seq` rnf vec `seq` () -- | If vector is a functor then histogram is functor as well instance (Functor v) => Functor (Histogram v bin) where@@ -356,13 +367,57 @@ sum :: (Bin bin, Vector v a, Num a) => Histogram v bin a -> a sum = foldl (+) 0 --- | Maximal bin value++-- | Minimal bin content. minimum :: (Bin bin, Vector v a, Ord a) => Histogram v bin a -> a minimum = G.minimum . histData --- | Maximal bin value+-- | Minimal bin content using custom comparison.+minimumBy :: (Bin bin, Vector v a) => (a -> a -> Ordering) -> Histogram v bin a -> a+minimumBy f = G.minimumBy f . histData++-- | Maximal bin content maximum :: (Bin bin, Vector v a, Ord a) => Histogram v bin a -> a maximum = G.maximum . histData++-- | Maximal bin content using custom comparison.+maximumBy :: (Bin bin, Vector v a) => (a -> a -> Ordering) -> Histogram v bin a -> a+maximumBy f = G.maximumBy f . histData+++-- | Index of a bin with minimal content+minIndex :: (Bin bin, Ord a, Vector v a) => Histogram v bin a -> Int+minIndex = G.minIndex . histData++-- | Index of a bin with minimal content using custom comparison.+minIndexBy :: (Bin bin, Ord a, Vector v a) => (a -> a -> Ordering) -> Histogram v bin a -> Int+minIndexBy f = G.minIndexBy f . histData++-- | Index of a bin with maximal content+maxIndex :: (Bin bin, Ord a, Vector v a) => Histogram v bin a -> Int+maxIndex = G.maxIndex . histData++-- | Index of a bin with maximal content using custom comparison.+maxIndexBy :: (Bin bin, Ord a, Vector v a) => (a -> a -> Ordering) -> Histogram v bin a -> Int+maxIndexBy f = G.maxIndexBy f . histData+++-- | Value of a bin with minimal content+minBin :: (Bin bin, Ord a, Vector v a) => Histogram v bin a -> BinValue bin+minBin = minBinBy compare++-- | Value bin with minimal content using custom comparison.+minBinBy :: (Bin bin, Ord a, Vector v a) => (a -> a -> Ordering) -> Histogram v bin a -> BinValue bin+minBinBy f h = fromIndex (bins h) $ minIndexBy f h++-- | Value of a bin with maximal content+maxBin :: (Bin bin, Ord a, Vector v a) => Histogram v bin a -> BinValue bin+maxBin = maxBinBy compare++-- | Value of a bin with maximal content using custom comparison.+maxBinBy :: (Bin bin, Ord a, Vector v a) => (a -> a -> Ordering) -> Histogram v bin a -> BinValue bin+maxBinBy f h = fromIndex (bins h) $ maxIndexBy f h+
histogram-fill.cabal view
@@ -1,5 +1,5 @@ Name: histogram-fill-Version: 0.7.3.0+Version: 0.7.4.0 Synopsis: Library for histograms creation. Description: This is library for histograms filling. Its aim to provide@@ -7,6 +7,12 @@ . Changes in 0.7.3.0 .+ * Function for searching for minimum/maximum added.+ .+ * @NFData@ instance is fixed.+ .+ Changes in 0.7.3.0+ . * @mkStatefulBuilder@ is added and HBuilder constructor is exposed. . * Indexing operators for immutable histograms are added.@@ -77,7 +83,7 @@ Build-Depends: base >=3 && <5, deepseq, primitive,- vector >= 0.7+ vector >= 0.10.0.1 Exposed-modules: Data.Histogram Data.Histogram.Generic Data.Histogram.Fill