perf: optimize k-mer pipeline with compile-time tables

This commit shifts entropy and lookup table generation to compile time via a new build script, eliminating runtime overhead. It replaces heap-allocated queues in rolling statistics with a stack-allocated, const-generic ring buffer for cache-friendly operations, and implements `size_hint` on `SuperKmerIter` for efficient iterator consumption. Additionally, it establishes the baseline profile configuration and sets global k-mer parameters.
This commit is contained in:
Eric Coissac
2026-05-20 12:37:25 +02:00
parent 9a1c0c0ee0
commit c20a1ed465
7 changed files with 472 additions and 261 deletions
+1 -1
View File
@@ -118,7 +118,7 @@ pub struct KmerOf<L: KmerLength>(u64, PhantomData<L>);
impl<L: KmerLength> KmerOf<L> {
/// Wrap a raw left-aligned u64 value as a kmer.
#[inline]
pub fn from_raw(raw: u64) -> Self {
pub const fn from_raw(raw: u64) -> Self {
KmerOf(raw, PhantomData)
}