文件名称:elias_fano_rust:elias fano的Rust实现
文件大小:25KB
文件格式:ZIP
更新时间:2024-04-07 20:09:48
Rust
elias_fano_rust Rust实现。 我们的目标不是实现最佳压缩,而是在速度和内存之间寻求良好的折衷。 我们与本文的实现方式有所不同,因为我们不对高位使用跳过量子的位向量,但是当前我们使用完全可索引字典。这似乎是一个合理的想法,因为在Elias Fano的SUX实现中(SUX是Vigna的项目之一),他使用简单的select存储高位。目前,我们只需要select_0和select_1以便select_1可以探索更好的结构来支持高位选择。对于接下来的步骤这个原因之一是实现simple_select中提出的豇豆。 排名和选择表演 我们根据我们发现的所有支持排名和选择的数据结构对我们的库进行基准测试。 基准是在0到2_000_000之间的1_000_000值的排序向量上完成的。对于每次运行,选择/等级都会通过随机输入重复1_000次。这些是我的Ryzen 9 3900x 4Ghz 1
【文件预览】:
elias_fano_rust-master
----.travis.yml(973B)
----benchmark()
--------src()
--------Cargo.toml(505B)
--------README.md(0B)
----tests()
--------utils.rs(1KB)
--------low_bits_tests.rs(1KB)
--------test_hash.rs(1KB)
--------test.rs(463B)
--------test_extended_rank.rs(1011B)
--------reference.rs(306B)
--------test_errors.rs(453B)
----LICENSE(1KB)
----src()
--------utils_methods.rs(1KB)
--------low_bits_primitives.rs(2KB)
--------builders.rs(5KB)
--------lib.rs(162B)
--------hash.rs(175B)
--------getters.rs(3KB)
--------elias_fano.rs(7KB)
----Cargo.toml(611B)
----benches()
--------bench_all.rs(9KB)
--------test_low_bits.rs(2KB)
--------aaaaaa.rs(1KB)
----.gitignore(331B)
----.cargo()
--------config(53B)
----Makefile(127B)
----README.md(3KB)