wavelet-matrix crate for the Rust language

The Wavelet Matrix is a space-efficient variant of Wavelet Tree data structure. - https://en.wikipedia.org/wiki/Wavelet_Tree

Usage

After adding to Cargo.toml, add this line to lib.rs or main.rs. extern crate wavelet_matrix;

Example

Add to main.rs: ``` use wavelet_matrix::*;

fn main() { let vec: Vec = vec![1, 2, 4, 5, 1, 0, 4, 6, 2, 9, 2, 0]; // 0 1 2 3 4 5 6 7 8 9 10 11 let wm = WaveletMatrix::new(&vec); asserteq!(wm.len(), 12); asserteq!(wm.lookup(7), 6); asserteq!(wm.rank(5, 1), 2); asserteq!(wm.select(2, 2), 10);

println!("Worked as expected!");

} ```

Features

Given unsigned integer sequence A, it provides the following queries.

Basic operations

Counting

Classical WaveletMatrix operations

Advanced queries

Releases

v0.4.0

v0.3.0

TODO

Credits