Stability | experimental |
---|---|
Maintainer | Alexey Khudyakov <alexey.skladnoy@gmail.com> |
Safe Haskell | Safe-Infered |
Immutable histograms. This module export same APi as
Generic
but specialzed to unboxed vectors. Refer
aforementioned module for documentation.
- type Histogram bin a = Histogram Vector bin a
- module Data.Histogram.Bin
- histogram :: (Unbox a, Bin bin) => bin -> Vector a -> Histogram bin a
- histogramUO :: (Unbox a, Bin bin) => bin -> Maybe (a, a) -> Vector a -> Histogram bin a
- data HistIndex b
- histIndex :: Bin b => b -> HistIndex b -> Int
- readHistogram :: (Read bin, Read a, Bin bin, Unbox a) => String -> Histogram bin a
- readFileHistogram :: (Read bin, Read a, Bin bin, Unbox a) => FilePath -> IO (Histogram bin a)
- bins :: Histogram bin a -> bin
- histData :: Histogram bin a -> Vector a
- underflows :: Histogram bin a -> Maybe a
- overflows :: Histogram bin a -> Maybe a
- outOfRange :: Histogram bin a -> Maybe (a, a)
- asList :: (Unbox a, Bin bin) => Histogram bin a -> [(BinValue bin, a)]
- asVector :: (Bin bin, Unbox a, Unbox (BinValue bin), Unbox (BinValue bin, a)) => Histogram bin a -> Vector (BinValue bin, a)
- map :: (Unbox a, Unbox b) => (a -> b) -> Histogram bin a -> Histogram bin b
- bmap :: (Unbox a, Unbox b, Bin bin) => (BinValue bin -> a -> b) -> Histogram bin a -> Histogram bin b
- mapData :: (Unbox a, Unbox b, Bin bin) => (Vector a -> Vector b) -> Histogram bin a -> Histogram bin b
- zip :: (Bin bin, BinEq bin, Unbox a, Unbox b, Unbox c) => (a -> b -> c) -> Histogram bin a -> Histogram bin b -> Histogram bin c
- zipSafe :: (Bin bin, BinEq bin, Unbox a, Unbox b, Unbox c) => (a -> b -> c) -> Histogram bin a -> Histogram bin b -> Maybe (Histogram bin c)
- convertBinning :: (ConvertBin bin bin', Unbox a) => Histogram bin a -> Histogram bin' a
- foldl :: (Bin bin, Unbox a) => (b -> a -> b) -> b -> Histogram bin a -> b
- bfoldl :: (Bin bin, Unbox a) => (b -> BinValue bin -> a -> b) -> b -> Histogram bin a -> b
- slice :: (SliceableBin bin, Unbox a) => HistIndex bin -> HistIndex bin -> Histogram bin a -> Histogram bin a
- rebin :: (MergeableBin bin, Unbox a) => CutDirection -> Int -> (a -> a -> a) -> Histogram bin a -> Histogram bin a
- rebinFold :: (MergeableBin bin, Unbox a, Unbox b) => CutDirection -> Int -> (b -> a -> b) -> b -> Histogram bin a -> Histogram bin b
- sliceAlongX :: (Unbox a, Bin bX, Bin bY) => Histogram (Bin2D bX bY) a -> HistIndex bY -> Histogram bX a
- sliceAlongY :: (Unbox a, Bin bX, Bin bY) => Histogram (Bin2D bX bY) a -> HistIndex bX -> Histogram bY a
- listSlicesAlongX :: (Unbox a, Bin bX, Bin bY) => Histogram (Bin2D bX bY) a -> [(BinValue bY, Histogram bX a)]
- listSlicesAlongY :: (Unbox a, Bin bX, Bin bY) => Histogram (Bin2D bX bY) a -> [(BinValue bX, Histogram bY a)]
- reduceX :: (Unbox a, Unbox b, Bin bX, Bin bY) => (Histogram bX a -> b) -> Histogram (Bin2D bX bY) a -> Histogram bY b
- reduceY :: (Unbox a, Unbox b, Bin bX, Bin bY) => (Histogram bY a -> b) -> Histogram (Bin2D bX bY) a -> Histogram bX b
- liftX :: (Bin bX, Bin bY, Bin bX', BinEq bX', Unbox a, Unbox b) => (Histogram bX a -> Histogram bX' b) -> Histogram (Bin2D bX bY) a -> Histogram (Bin2D bX' bY) b
- liftY :: (Bin bX, Bin bY, Bin bY', BinEq bY', Unbox a, Unbox b) => (Histogram bY a -> Histogram bY' b) -> Histogram (Bin2D bX bY) a -> Histogram (Bin2D bX bY') b
Immutable histogram
Data type
type Histogram bin a = Histogram Vector bin aSource
Immutable histogram. Histogram consists of binning algorithm, optional number of under and overflows, and data.
module Data.Histogram.Bin
Point inside histogram's domain. It could be either bin index or bin value.
Read histograms from string
Accessors
underflows :: Histogram bin a -> Maybe aSource
outOfRange :: Histogram bin a -> Maybe (a, a)Source
Convert to other data types
asVector :: (Bin bin, Unbox a, Unbox (BinValue bin), Unbox (BinValue bin, a)) => Histogram bin a -> Vector (BinValue bin, a)Source
Modification
bmap :: (Unbox a, Unbox b, Bin bin) => (BinValue bin -> a -> b) -> Histogram bin a -> Histogram bin bSource
mapData :: (Unbox a, Unbox b, Bin bin) => (Vector a -> Vector b) -> Histogram bin a -> Histogram bin bSource
zip :: (Bin bin, BinEq bin, Unbox a, Unbox b, Unbox c) => (a -> b -> c) -> Histogram bin a -> Histogram bin b -> Histogram bin cSource
zipSafe :: (Bin bin, BinEq bin, Unbox a, Unbox b, Unbox c) => (a -> b -> c) -> Histogram bin a -> Histogram bin b -> Maybe (Histogram bin c)Source
Type conversion
convertBinning :: (ConvertBin bin bin', Unbox a) => Histogram bin a -> Histogram bin' aSource
Folding
Slicing & rebinning
:: (MergeableBin bin, Unbox a) | |
=> CutDirection | |
-> Int | |
-> (a -> a -> a) | Accumulation function |
-> Histogram bin a | |
-> Histogram bin a |
:: (MergeableBin bin, Unbox a, Unbox b) | |
=> CutDirection | |
-> Int | |
-> (b -> a -> b) | Accumulation function |
-> b | Initial value |
-> Histogram bin a | |
-> Histogram bin b |
Rebin histogram
2D histograms
Slicing
listSlicesAlongX :: (Unbox a, Bin bX, Bin bY) => Histogram (Bin2D bX bY) a -> [(BinValue bY, Histogram bX a)]Source
listSlicesAlongY :: (Unbox a, Bin bX, Bin bY) => Histogram (Bin2D bX bY) a -> [(BinValue bX, Histogram bY a)]Source