histogram-fill-0.6.0.0: Library for histograms creation.

Stabilityexperimental
MaintainerAlexey Khudyakov <alexey.skladnoy@gmail.com>

Data.Histogram

Contents

Description

Immutable histograms. This module export same APi as Data.Histogram.Generic but specialzed to unboxed vectors. Refer aforementioned module for documentation.

Synopsis

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.

histogram :: (Unbox a, Bin bin) => bin -> Vector a -> Histogram bin aSource

histogramUO :: (Unbox a, Bin bin) => bin -> Maybe (a, a) -> Vector a -> Histogram bin aSource

data HistIndex b Source

Point inside histogram's domain. It could be either bin index or bin value.

Constructors

Index Int

Index for a bin

Value (BinValue b)

Value

Instances

histIndex :: Bin b => b -> HistIndex b -> IntSource

Convert HistIndex to actual index

Read histograms from string

readHistogram :: (Read bin, Read a, Bin bin, Unbox a) => String -> Histogram bin aSource

readFileHistogram :: (Read bin, Read a, Bin bin, Unbox a) => FilePath -> IO (Histogram bin a)Source

Accessors

bins :: Histogram bin a -> binSource

outOfRange :: Histogram bin a -> Maybe (a, a)Source

Convert to other data types

asList :: (Unbox a, Bin bin) => Histogram bin a -> [(BinValue bin, a)]Source

asVector :: (Bin bin, Unbox a, Unbox (BinValue bin), Unbox (BinValue bin, a)) => Histogram bin a -> Vector (BinValue bin, a)Source

Modification

map :: (Unbox a, Unbox b) => (a -> b) -> Histogram bin a -> Histogram bin bSource

bmap :: (Unbox a, Unbox b, Bin bin) => (BinValue bin -> a -> 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

foldl :: (Bin bin, Unbox a) => (b -> a -> b) -> b -> Histogram bin a -> bSource

bfoldl :: (Bin bin, Unbox a) => (b -> BinValue bin -> a -> b) -> b -> Histogram bin a -> bSource

Slicing & rebinning

sliceSource

Arguments

:: (SliceableBin bin, Unbox a) 
=> HistIndex bin

Lower inclusive bound

-> HistIndex bin

Upper inclusive bound

-> Histogram bin a

Histogram to slice

-> Histogram bin a 

rebinSource

Arguments

:: (MergeableBin bin, Unbox a) 
=> CutDirection 
-> Int 
-> (a -> a -> a)

Accumulation function

-> Histogram bin a 
-> Histogram bin a 

rebinFoldSource

Arguments

:: (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

sliceAlongXSource

Arguments

:: (Unbox a, Bin bX, Bin bY) 
=> Histogram (Bin2D bX bY) a

2D histogram

-> HistIndex bY

Position along Y axis

-> Histogram bX a 

sliceAlongYSource

Arguments

:: (Unbox a, Bin bX, Bin bY) 
=> Histogram (Bin2D bX bY) a

2D histogram

-> HistIndex bX

Position along X axis

-> Histogram bY a 

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

Reducing along axis

reduceXSource

Arguments

:: (Unbox a, Unbox b, Bin bX, Bin bY) 
=> (Histogram bX a -> b)

Function to reduce single slice along X axis

-> Histogram (Bin2D bX bY) a

2D histogram

-> Histogram bY b 

reduceYSource

Arguments

:: (Unbox a, Unbox b, Bin bX, Bin bY) 
=> (Histogram bY a -> b)

Function to reduce histogram along Y axis

-> Histogram (Bin2D bX bY) a

2D histogram

-> Histogram bX b 

Lift histogram transform to 2D

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) bSource

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') bSource