sampling-tree 0.1.0

A simple sampling tree implementation for sampling discrete distributions with sparse dynamic updates. This allows us to sample efficiently from a distribution given the relative importance of each datapoint. Construction time is O(n), updating is O(log(n)), and sampling is O(log(n)). The memory footprint is no more than twice the size of `n*std::mem::size_of::<T>()` where `T` is weight datatype.
Documentation
[[bench]]
harness = false
name = "simple"
path = "benches/simple.rs"

[dependencies.criterion]
features = ["csv"]
version = "0.5.1"

[dependencies.human-units]
version = "0.2.0"

[dependencies.num]
version = "0.4.3"

[dependencies.rand]
version = "0.8.5"

[dev-dependencies.indicatif]
version = "0.17.8"

[lib]
name = "sampling_tree"
path = "src/lib.rs"

[package]
autobenches = false
autobins = false
autoexamples = false
autotests = false
build = false
categories = ["data-structures"]
description = """
A simple sampling tree implementation for sampling discrete distributions with sparse dynamic updates.
This allows us to sample efficiently from a distribution given the relative importance of each datapoint.
Construction time is O(n), updating is O(log(n)), and sampling is O(log(n)).
The memory footprint is no more than twice the size of `n*std::mem::size_of::<T>()` where `T` is weight datatype.
"""
edition = "2021"
homepage = "https://github.com/BenJourdan/sampling-tree"
keywords = ["sampling", "tree", "data-structures", "statistics", "sampling-tree"]
license = "MIT"
name = "sampling-tree"
readme = "README.md"
repository = "https://github.com/BenJourdan/sampling-tree"
version = "0.1.0"

[profile.bench]
lto = true
opt-level = 3

[profile.release]
lto = true
opt-level = 3

[profile.test]
opt-level = 3