Aleksey Khudyakov avatar Aleksey Khudyakov committed 281cb95

Add indexing function for immutable histograms

Comments (0)

Files changed (2)

Data/Histogram.hs

   , HistIndex(..) 
   , histIndex
   , at
+  , atV
+  , atI
     -- * Transformations
   , map
   , bmap
 at :: (Bin bin, Unbox a) => Histogram bin a -> HistIndex bin -> a
 at = H.at
 
+atV :: (Bin bin, Unbox a) => Histogram bin a -> BinValue bin -> a
+atV = H.atV
+
+atI :: (Bin bin, Unbox a) => Histogram bin a -> Int -> a
+atI = H.atI
+
+
+
 ----------------------------------------------------------------
 -- Modify histograms
 ----------------------------------------------------------------

Data/Histogram/Generic.hs

   , HistIndex(..) 
   , histIndex
   , at
+  , atV
+  , atI
     -- * Transformations
   , map
   , bmap
 at :: (Bin bin, Vector v a) => Histogram v bin a -> HistIndex bin -> a
 at (Histogram bin _ v) i = v ! histIndex bin i
 
+-- | Index histogram using bin value
+atV :: (Bin bin, Vector v a) => Histogram v bin a -> BinValue bin -> a
+atV h = at h . Value
+
+-- | Index histogram using vector index
+atI :: (Bin bin, Vector v a) => Histogram v bin a -> Int -> a
+atI h = at h . Index
+
+
+
 ----------------------------------------------------------------
 -- Transformation
 ----------------------------------------------------------------
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.