Copyright | Copyright (c) 2009 Alexey Khudyakov <alexey.skladnoy@gmail.com> |
---|---|
License | BSD3 |
Maintainer | Alexey Khudyakov <alexey.skladnoy@gmail.com> |
Stability | experimental |
Safe Haskell | None |
Language | Haskell98 |
Mutable histograms.
Synopsis
- data MHistogram s v bin a
- newMHistogram :: (PrimMonad m, Bin bin, MVector v a) => a -> bin -> m (MHistogram (PrimState m) v bin a)
- fill :: (PrimMonad m, MVector v a, Bin bin) => MHistogram (PrimState m) v bin a -> BinValue bin -> (a -> b -> a) -> b -> m ()
- unsafeFreezeHist :: (PrimMonad m, Vector v a, Bin bin) => MHistogram (PrimState m) (Mutable v) bin a -> m (Histogram v bin a)
- freezeHist :: (PrimMonad m, Vector v a, Bin bin) => MHistogram (PrimState m) (Mutable v) bin a -> m (Histogram v bin a)
Mutable histograms
data MHistogram s v bin a Source #
Mutable histogram.
newMHistogram :: (PrimMonad m, Bin bin, MVector v a) => a -> bin -> m (MHistogram (PrimState m) v bin a) Source #
Create new mutable histogram. All bins are set to zero element as passed to function.
:: (PrimMonad m, MVector v a, Bin bin) | |
=> MHistogram (PrimState m) v bin a | Mutable histogram to put value to |
-> BinValue bin | Value being binned |
-> (a -> b -> a) | Fold function |
-> b | Value being put into histogram |
-> m () |
Generic fill. It could be seen as left fold with multiple
accumulators where accumulator is chosen by BinValue bin
.
unsafeFreezeHist :: (PrimMonad m, Vector v a, Bin bin) => MHistogram (PrimState m) (Mutable v) bin a -> m (Histogram v bin a) Source #
Create immutable histogram from mutable one. This operation is unsafe! Accumulator mustn't be used after that
freezeHist :: (PrimMonad m, Vector v a, Bin bin) => MHistogram (PrimState m) (Mutable v) bin a -> m (Histogram v bin a) Source #
Create immutable histogram from mutable one.