module Data.Histogram (
Histogram
, module Data.Histogram.Bin
, histogram
, histogramUO
, readHistogram
, readFileHistogram
, bins
, histData
, underflows
, overflows
, outOfRange
, asList
, asVector
, sliceByIx
, sliceByVal
, sliceX
, sliceY
, histMap
, histMapBin
, histZip
, histZipSafe
) where
import qualified Data.Vector.Unboxed as U
import Data.Vector.Unboxed (Unbox,Vector)
import qualified Data.Histogram.Generic as H
import Data.Histogram.Bin
type Histogram bin a = H.Histogram U.Vector bin a
histogram :: (Unbox a, Bin bin) => bin -> Vector a -> Histogram bin a
histogram = H.histogram
histogramUO :: (Unbox a, Bin bin) => bin -> Maybe (a,a) -> Vector a -> Histogram bin a
histogramUO = H.histogramUO
readHistogram :: (Read bin, Read a, Bin bin, Unbox a) => String -> Histogram bin a
readHistogram = H.readHistogram
readFileHistogram :: (Read bin, Read a, Bin bin, Unbox a) => FilePath -> IO (Histogram bin a)
readFileHistogram = H.readFileHistogram
bins :: Histogram bin a -> bin
bins = H.bins
histData :: Histogram bin a -> Vector a
histData = H.histData
underflows :: Histogram bin a -> Maybe a
underflows = H.underflows
overflows :: Histogram bin a -> Maybe a
overflows = H.overflows
outOfRange :: Histogram bin a -> Maybe (a,a)
outOfRange = H.outOfRange
asList :: (Unbox a, Bin bin) => Histogram bin a -> [(BinValue bin, a)]
asList = H.asList
asVector :: (Bin bin, Unbox a, Unbox (BinValue bin), Unbox (BinValue bin,a))
=> Histogram bin a -> Vector (BinValue bin, a)
asVector = H.asVector
histMap :: (Unbox a, Unbox b) => (a -> b) -> Histogram bin a -> Histogram bin b
histMap = H.histMap
histMapBin :: (Bin bin, Bin bin') => (bin -> bin') -> Histogram bin a -> Histogram bin' a
histMapBin = H.histMapBin
histZip :: (Bin bin, Eq bin, Unbox a, Unbox b, Unbox c) =>
(a -> b -> c) -> Histogram bin a -> Histogram bin b -> Histogram bin c
histZip = H.histZip
histZipSafe :: (Bin bin, Eq bin, Unbox a, Unbox b, Unbox c) =>
(a -> b -> c) -> Histogram bin a -> Histogram bin b -> Maybe (Histogram bin c)
histZipSafe = H.histZipSafe
sliceByIx :: (Bin1D bin, Unbox a) => Int -> Int -> Histogram bin a -> Histogram bin a
sliceByIx = H.sliceByIx
sliceByVal :: (Bin1D bin, Unbox a) => BinValue bin -> BinValue bin -> Histogram bin a -> Histogram bin a
sliceByVal = H.sliceByVal
sliceY :: (Unbox a, Bin bX, Bin bY) => Histogram (Bin2D bX bY) a -> [(BinValue bY, Histogram bX a)]
sliceY = H.sliceY
sliceX :: (Unbox a, Bin bX, Bin bY) => Histogram (Bin2D bX bY) a -> [(BinValue bX, Histogram bY a)]
sliceX = H.sliceX