hw-succinct-0.0.0.1: src/HaskellWorks/Data/Succinct/NearestNeighbour.hs
module HaskellWorks.Data.Succinct.NearestNeighbour
( bitPred
, bitSucc
) where
import HaskellWorks.Data.Positioning
import HaskellWorks.Data.Succinct.RankSelect.Binary.Basic.Rank1
import HaskellWorks.Data.Succinct.RankSelect.Binary.Basic.Select1
bitPred :: (Rank1 v, Select1 v) => v -> Count -> Count
bitPred v p = select1 v (rank1 v p - 1)
bitSucc :: (Rank1 v, Select1 v) => v -> Count -> Count
bitSucc v p = select1 v (rank1 v p + 1)