ptwm_core::codecs::per_group_codebook
ptwm_core::codecs::per_group_codebook
PerGroupCodebook codec.
ptwm_core::codecs::per_group_codebook
crates/ptwm-core/src/codecs/per_group_codebook.rs:1mod per_group_codebookPerGroupCodebook codec.
ptwm_core::codecs::per_group_codebook::ALPHABET
crates/ptwm-core/src/codecs/per_group_codebook.rs:8pub const ALPHABETptwm_core::codecs::per_group_codebook::Codebook
crates/ptwm-core/src/codecs/per_group_codebook.rs:69pub struct Codebookptwm_core::codecs::per_group_codebook::fit_codebook
crates/ptwm-core/src/codecs/per_group_codebook.rs:178pub fn fit_codebook(hists: &[[u32; 16]], seed: u64) -> Codebookk-means++ init + Lloyd iterations on per-group histogram PMFs. Returns cluster centroids (each a length-ALPHABET PMF) and per-group cluster assignments. Deterministic given the seed.
ptwm_core::codecs::per_group_codebook::fit_codebook_multi_seed
crates/ptwm-core/src/codecs/per_group_codebook.rs:132pub fn fit_codebook_multi_seed(hists: &[[u32; 16]], seeds: &[u64]) -> Result<Codebook, PtwmCoreError>Multi-seed k-means: parallel evaluation of every seed, pick the codebook with lowest in-cluster L2 variance. Deterministic — ties break to the earliest seed in input order.
ptwm_core::codecs::per_group_codebook::group_count
crates/ptwm-core/src/codecs/per_group_codebook.rs:11pub fn group_count(plane_nibble_count: usize) -> usizeptwm_core::codecs::per_group_codebook::GROUP_SIZE
crates/ptwm-core/src/codecs/per_group_codebook.rs:9pub const GROUP_SIZEptwm_core::codecs::per_group_codebook::histograms
crates/ptwm-core/src/codecs/per_group_codebook.rs:19pub fn histograms(nibbles: &[u8]) -> Vec<[u32; 16]>Extract per-group histograms. `nibbles` is a slice where each byte carries a 4-bit nibble in its low nibble (high nibble ignored). Returns one `[u32; ALPHABET]` histogram per group of `GROUP_SIZE` nibbles; the last group may be partial.
ptwm_core::codecs::per_group_codebook::K
crates/ptwm-core/src/codecs/per_group_codebook.rs:65pub const Kptwm_core::codecs::per_group_codebook::KMEANS_MAX_ITERS
crates/ptwm-core/src/codecs/per_group_codebook.rs:66pub const KMEANS_MAX_ITERSptwm_core::codecs::per_group_codebook::KMEANS_PP_SEED
crates/ptwm-core/src/codecs/per_group_codebook.rs:67pub const KMEANS_PP_SEEDptwm_core::codecs::per_group_codebook::PerGroupCodebook
crates/ptwm-core/src/codecs/per_group_codebook.rs:395pub struct PerGroupCodebook;ptwm_core::codecs::per_group_codebook::QUANT_TOTAL
crates/ptwm-core/src/codecs/per_group_codebook.rs:310pub const QUANT_TOTALptwm_core::codecs::per_group_codebook::quantize_centroid
crates/ptwm-core/src/codecs/per_group_codebook.rs:277pub fn quantize_centroid(c: &[f32; 16], total: u32) -> [u32; 16]Quantise a PMF (floats summing to ~1.0) into integer counts whose sum equals `total`, rounding each entry to at least 1 (so no zero- probability symbol appears in the final coder PMF). Used to convert float centroids into the integer denominators the range coder needs.
ptwm_core::codecs::per_group_codebook::StateV0
crates/ptwm-core/src/codecs/per_group_codebook.rs:313pub struct StateV0ptwm_core::codecs::per_group_codebook::validate_state_bytes
crates/ptwm-core/src/codecs/per_group_codebook.rs:330pub fn validate_state_bytes(state_format_version: u8, bytes: &[u8]) -> Result<(), PtwmCoreError>Public byte-only validator. Used by the shared-state construction path to fail loudly if a fitter (or external caller) emits bytes that would only fail on read. Mirrors the parse path of `deserialize_state`.