| Safe Haskell | Safe-Inferred | 
|---|---|
| Language | Haskell2010 | 
Data.WaveletMatrix.Raw
Description
Wavelet Matrix without index comperssion.
Synopsis
- data RawWaveletMatrix = RawWaveletMatrix {}
 - buildRWM :: Int -> Vector Int -> RawWaveletMatrix
 - accessRWM :: RawWaveletMatrix -> Int -> Int
 - _goDownRWM :: RawWaveletMatrix -> Int -> Int -> Int -> (Int, Int, Int, Int)
 - _goUpRWM :: RawWaveletMatrix -> Int -> Int -> Maybe Int
 - kthMinRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe Int
 - ikthMinRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe (Int, Int)
 - kthMaxRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe Int
 - ikthMaxRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe (Int, Int)
 - unsafeKthMinRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Int
 - unsafeIKthMinRWM :: RawWaveletMatrix -> Int -> Int -> Int -> (Int, Int)
 - unsafeKthMaxRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Int
 - unsafeIKthMaxRWM :: RawWaveletMatrix -> Int -> Int -> Int -> (Int, Int)
 - freqLTRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Int
 - freqInRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Int -> Int
 - freqRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Int
 - findIndexRWM :: RawWaveletMatrix -> Int -> Maybe Int
 - findKthIndexRWM :: RawWaveletMatrix -> Int -> Int -> Maybe Int
 - lrFindIndexRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe Int
 - lrFindKthIndexRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Int -> Maybe Int
 - lookupLERWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe Int
 - lookupLTRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe Int
 - lookupGERWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe Int
 - lookupGTRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe Int
 - _assocsWithRWM :: RawWaveletMatrix -> Int -> Int -> (Int -> Int) -> [(Int, Int)]
 - _descAssocsWithRWM :: RawWaveletMatrix -> Int -> Int -> (Int -> Int) -> [(Int, Int)]
 - assocsRWM :: RawWaveletMatrix -> Int -> Int -> [(Int, Int)]
 - descAssocsRWM :: RawWaveletMatrix -> Int -> Int -> [(Int, Int)]
 
Documentation
data RawWaveletMatrix #
Wavelet Matrix without index comperssion.
Constructors
| RawWaveletMatrix | |
Fields 
  | |
Instances
| Show RawWaveletMatrix # | |
Defined in Data.WaveletMatrix.Raw Methods showsPrec :: Int -> RawWaveletMatrix -> ShowS # show :: RawWaveletMatrix -> String # showList :: [RawWaveletMatrix] -> ShowS #  | |
| Eq RawWaveletMatrix # | |
Defined in Data.WaveletMatrix.Raw Methods (==) :: RawWaveletMatrix -> RawWaveletMatrix -> Bool # (/=) :: RawWaveletMatrix -> RawWaveletMatrix -> Bool #  | |
buildRWM :: Int -> Vector Int -> RawWaveletMatrix #
\(O(N \log N)\) Creates a RawWaveletMatrix.
nx: The number of differentx, starting from zero. In other words, everyxis in \([0, nx)\).
kth min (safe)
_goDownRWM :: RawWaveletMatrix -> Int -> Int -> Int -> (Int, Int, Int, Int) #
\(O(\log a)\) Goes down the wavelet matrix for collecting kth minimum value.
_goUpRWM :: RawWaveletMatrix -> Int -> Int -> Maybe Int #
\(O(\log a)\) Goes up the wavelet matrix for collecting the value x.
kthMinRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe Int #
\(O(\log a)\) Returns k-th (0-based) smallest number in [l, r]. Two different values are treated as separate values. Quantile with index.
ikthMinRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe (Int, Int) #
\(O(\log a)\)
kthMaxRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe Int #
\(O(\log a)\) Returns k-th (0-based) biggest number in [l, r]. Two different values are treated as separate values.
ikthMaxRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe (Int, Int) #
\(O(\log a)\)
kth min (no boundary check)
unsafeKthMinRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Int #
\(O(\log a)\) Returns k-th (0-based) smallest number in [l, r]. Two different values are treated as separate values. Quantile with index.
unsafeIKthMinRWM :: RawWaveletMatrix -> Int -> Int -> Int -> (Int, Int) #
\(O(\log a)\)
unsafeKthMaxRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Int #
\(O(\log a)\) Returns k-th (0-based) biggest number in [l, r]. Two different values are treated as separate values.
unsafeIKthMaxRWM :: RawWaveletMatrix -> Int -> Int -> Int -> (Int, Int) #
\(O(\log a)\)
Freq
freqLTRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Int #
\(O(\log a)\) Returns the number of \(x s.t. x < \mathcal{upper} in [l .. r]\).
freqInRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Int -> Int #
\(O(\log a)\) Returns the number of x in [l .. r] in [xl, xr].
freqRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Int #
\(O(\log a)\) Returns the number of x in [l .. r].
Find index
findIndexRWM :: RawWaveletMatrix -> Int -> Maybe Int #
\(O(\log a)\) Finds index of x. Select.
findKthIndexRWM :: RawWaveletMatrix -> Int -> Int -> Maybe Int #
\(O(\log a)\) Finds kth index of x. Select.
lrFindIndexRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe Int #
\(O(\log a)\) Finds index of x. Select.
lrFindKthIndexRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Int -> Maybe Int #
\(O(\log a)\) Finds kth index of x. Select.
Lookup
lookupLERWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe Int #
\(O(\log a)\) Finds maximum \(x\) in \([l, r]\) s.t. \(x_{ref} \le x\).
lookupLTRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe Int #
\(O(\log a)\) Finds maximum \(x\) in \([l, r]\) s.t. \(x_{ref} \lt x\).
lookupGERWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe Int #
\(O(\log a)\) Finds minimum \(x\) in \([l, r]\) s.t. \(x_{ref} \gt x\).
lookupGTRWM :: RawWaveletMatrix -> Int -> Int -> Int -> Maybe Int #
\(O(\log a)\) Finds minimum \(x\) in \([l, r]\) s.t. \(x_{ref} \ge x\).
Associations of (freq, value)
_assocsWithRWM :: RawWaveletMatrix -> Int -> Int -> (Int -> Int) -> [(Int, Int)] #
\(O(\log A \min(|A|, L))\) Internal implementation of assocs.
_descAssocsWithRWM :: RawWaveletMatrix -> Int -> Int -> (Int -> Int) -> [(Int, Int)] #
\(O(\log A \min(|A|, L))\) Internal implementation of descAssoc.
assocsRWM :: RawWaveletMatrix -> Int -> Int -> [(Int, Int)] #
\(O(\log A \min(|A|, L))\) Collects \((x, freq)\) in range \([l, r]\) in ascending order of
 x. Be warned that it's very slow unless the domain \(A\) is very small.
descAssocsRWM :: RawWaveletMatrix -> Int -> Int -> [(Int, Int)] #
\(O(\log A \min(|A|, L))\) Collects \((x, freq)\) in range \([l, r]\) in descending order of
 x. Be warned that it's very slow unless the domain \(A\) is very small.