>m      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~   experimental,Alexey Khudyakov <alexey.skladnoy@gmail.com>1Class for conversion between binning algorithms.  Convert bins >1D binning algorithms with constant size bins. Constant sized B bins could be thought as specialization of variable-sized bins & therefore a superclass constraint. 7Size of bin. Default implementation just uses 0th bin. -1D binning algorithms with variable bin size  Size of n'th bin. $Binning algorithm which individual DSet numbers to zero. By convention bins are shrinked to lower bound Append one bin at upper bound Prepend one bin at lower bin 7IntervalBin for which domain is single finite interval $Minimal accepted value of histogram $Maximal accepted value of histogram )Slice bin by indices. This function doesn't perform any checks  and may produce invalid bin BFor binning algorithms which work with bin values which have some 9 natural ordering and every bin is continous interval. Interval for n'th bin 6List of all bins. Could be overridden for efficiency. >This type represent some abstract data binning algorithms. It  maps sets/intervals of values of type ' BinValue b' to integer  indices. )Following invariant is expected to hold:  toIndex . fromIndex == id Type of value to bin <Convert from value to index. Function must not fail for any D input and should produce out of range indices for invalid input. >Convert from index to value. Returned value should correspond A to center of bin. Definition of center is left for definition 9 of instance. Funtion may fail for invalid indices but  encouraged not to do so. Total number of bins. +Check whether value in range. Have default # implementation. Should satisfy:  inRange b x ! toIndex b x " [0,nBins b) Return vector of bin centers Slice bin using indices        @Simple binning algorithm which map continous range of bins onto 4 indices. Each number correcsponds to different bin  Lower bound (inclusive)  Upper bound (inclusive) >Safe constructor for BinI. It does checks that upper bound is % greater or equal than lower bound GConstruct BinI with n bins. Indexing starts from 0. n must be positive ,Integer bins with size which differ from 1.  Low bound  Bin size  Number of bins Construct BinInt.  Lower bound  Bin size  Upper bound  Lower bound  Bin size  Upper bound    !5Bin for types which are instnaces of Enum type class "#Create enum based bin $Use full range of data !"#$!"#$!""#$ %?Floaintg point bins with equal sizes. If you work with Doubles 0 this data type should be used instead of BinF.  Lower bound  Size of bin  Number of bins &'&Floaintg point bins with equal sizes. Note that due to GHC bug #&2271 this toIndex is really slow (20x ? slowdown with respect to BinD) and use of BinD is recommended  Lower bound  Size of bin  Number of bins () Create bins. Lower bound of range Number of bins Upper bound of range *ECreate bins. Note that actual upper bound can differ from specified. Begin of range  Size of step Approximation of end of range + Create bins Begin of range  Size of step Number of bins ,' scaleBinF a b'$ scales BinF using linear transform 'a+b*x' - Create bins. Lower bound of range Number of bins Upper bound of range .ECreate bins. Note that actual upper bound can differ from specified. Begin of range  Size of step Approximation of end of range / Create bins Begin of range  Size of step Number of bins 0' scaleBinF a b'$ scales BinF using linear transform 'a+b*x' %&'()*+,-./0 '()*+,%&-./0 %&&'(()*+,-./01Logarithmic scale bins.  Lower bound  Increment ratio  Number of bins 23Create log-scale bins. 1231231223 4>2D bins. binX is binning along X axis and binY is one along Y + axis. Data is stored in row-major order 56Binning algorithm for X axis 7Binning algorithm for Y axis 8 Alias for 54. 4Convert index into pair of indices for X and Y axes 9(2-dimensional size of binning algorithm :@Apply function to X binning algorithm. If new binning algorithm , have different number of bins will fail. ;@Apply function to Y binning algorithm. If new binning algorithm , have different number of bins will fail. 456789:;456789:;456756789:; experimental,Alexey Khudyakov <alexey.skladnoy@gmail.com><  !"#$%&'()*+,-./0123456789:; experimental,Alexey Khudyakov <alexey.skladnoy@gmail.com><>Immutable histogram. Histogram consists of binning algorithm, 6 optional number of under and overflows, and data. =8Create histogram from binning algorithm and vector with & data. Overflows are set to Nothing. +Number of bins and vector size must match. >?Create histogram from binning algorithm and vector with data. +Number of bins and vector size must match. ?AConvert String to histogram. Histogram do not have Read instance  because of slowness of ReadP @Read histogram from file. AHistogram bins BHistogram data as vector CNumber of underflows DNumber of overflows EUnderflows and overflows FConvert histogram to list. GConvert histogram to vector Hfmap lookalike. It'*s not possible to create Functor instance ! because of class restrictions IKApply function to histogram bins. Function must not change number of bins.  If it does error is thrown. JAZip two histograms elementwise. Bins of histograms must be equal # otherwise error will be called. K<Zip two histogram elementwise. If bins are not equal return  LMNbSlice 2D histogram along Y axis. This function is fast because it does not require reallocations. O!Slice 2D histogram along X axis. P  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO<=>?@ABCDEFGLMONHIJK<=>?@ABCDEFGHIJKLMNO  experimental,Alexey Khudyakov <alexey.skladnoy@gmail.com>PDirect permutation of indices. Q Original bin RMaps original bin's indices to new indices SInverse of pervious table TBinning for 2D enumerations UType class very similar to  but elements of type are $ enumerated on 2-dimensional grid VConvert value to index WConvert index to value XConstruct indexed bin Y$Constuct bin permutation from table Z(Constuct bin permutation from function. PQRSTUVWXYZ UVWTXPQRSYZ PQRSQRSTUVWVWXYZ  experimental,Alexey Khudyakov <alexey.skladnoy@gmail.com>[>Immutable histogram. Histogram consists of binning algorithm, 6 optional number of under and overflows, and data. \8Create histogram from binning algorithm and vector with & data. Overflows are set to Nothing. +Number of bins and vector size must match. ]?Create histogram from binning algorithm and vector with data. +Number of bins and vector size must match. ^AConvert String to histogram. Histogram do not have Read instance  because of slowness of ReadP _Read histogram from file. `Histogram bins aHistogram data as vector bNumber of underflows cNumber of overflows dUnderflows and overflows eConvert histogram to list. fConvert histogram to vector gfmap lookalike. It'*s not possible to create Functor instance ! because of class restrictions hKApply function to histogram bins. Function must not change number of bins.  If it does error is thrown. iAZip two histograms elementwise. Bins of histograms must be equal # otherwise error will be called. j<Zip two histogram elementwise. If bins are not equal return  klmbSlice 2D histogram along Y axis. This function is fast because it does not require reallocations. n!Slice 2D histogram along X axis. P  !"#$%&'()*+,-./0123456789:;[\]^_`abcdefghijklmn[\]^_`abcdefklnmghij[\]^_`abcdefghijklmn  experimental,Alexey Khudyakov <alexey.skladnoy@gmail.com>oMutable histogram. pBCreate new mutable histogram. All bins are set to zero element as  passed to function. qPut one value into histogram r)Put one value into histogram with weight sPut one monoidal element t?Create immutable histogram from mutable one. This operation is  unsafe! Accumulator mustn't be used after that u-Create immutable histogram from mutable one. opqrstuopqrstuopqrstu  experimental,Alexey Khudyakov <alexey.skladnoy@gmail.com> vStateless histogram builder w0Convert builder to stateful builder in ST monad x@Stateful histogram builder. There is no direct way to construct 0 such builder. Only way to do it is to create v and use  w or . It'=s useful when result should be extracted many times from the  same accumulator. y>Type class for stateful accumulators. In this module they are 9 called builders. Every builder is parametrized by two C types. First one is type of values which are fed to accumulator B and second one is type of values which could be extracted from  it. Every instance of v should be instance of  too  and satisfy  == z. z'Apply function to output of histogram. {4Change input of builder by applying function to it. |*Put all values in container into builder };Add cut to histogram. Value would be putted into histogram  only if condition is true. ~Modify input of builder /Modify input of builder to use composite input Add cut for input &Modify output of histogram. In fact it' s same as  but have opposite fixity Put one item into histogram >Create stateful histogram from instructions. Histograms could = be filled either in the ST monad or with createHistograms %Join histogram builders in container Apply functions to builder 'Convert builder to builder in IO monad %Join hitogram builders in container. Apply function to builder >Create builder. Bin content will be incremented by 1 for each  item put into histogram @Create builder. Bin content will incremented by weight supplied $ for each item put into histogram ACreate builder. New value wil be mappended to current content of * a bin for each item put into histogram @Create histogram builder which just does ordinary pure fold. It A is intended for use when some fold should be performed together  with histogram filling Fill histogram builder. X  !"#$%&'()*+,-./0123456789:;vwxyz{|}~yz{|}~xvwwvwwxyz{|}z{|}~ !"#$%&'(()*++,-../011223456789:;;<==>?@ABCDEFGHIJKLMNOPQRSTUVW X Y Z [ \ ] ^ _ ` a b D E F G H I J K L M N O P Q R S T U V W c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  D X \ c j l histogram-fill-0.5Data.Histogram.Bin.ClassesData.Histogram.Bin.BinIData.Histogram.Bin.BinIntData.Histogram.Bin.BinEnumData.Histogram.Bin.BinFData.Histogram.Bin.LogBinDData.Histogram.Bin.Bin2DData.Histogram.GenericData.Histogram.Bin.ExtraData.HistogramData.Histogram.STData.Histogram.FillData.Histogram.ParseData.Histogram.Bin ConvertBin convertBin UniformBinbinSize VariableBinbinSizeNGrowBinzeroBin appendBin prependBinBin1D lowerLimit upperLimitunsafeSliceBin IntervalBin binIntervalbinsListBinBinValuetoIndex fromIndexnBinsinRange binsCenterssliceBinBinIbinIbinI0BinIntbinIntbinIntNBinEnumbinEnum binEnumFullBinDBinFbinFbinFnbinFstep scaleBinFbinDbinDnbinDstep scaleBinDLogBinDlogBinDBin2DbinXbinY><nBins2DfmapBinXfmapBinY Histogram histogram histogramUO readHistogramreadFileHistogrambinshistData underflows overflows outOfRangeasListasVectorhistMap histMapBinhistZip histZipSafe sliceByIx sliceByValsliceYsliceX BinPermute permutedBin permuteTo permuteFrom BinEnum2DEnum2D fromEnum2DtoEnum2D binEnum2DpermuteByTable permuteBin MHistogram newMHistogramfillOnefillOneW fillMonoidunsafeFreezeHist freezeHistHBuilder toHBuilderST HBuilderM HistBuilder modifyOutmodifyIn fromContaineraddCut<<-<<-|<