PTWM
codecs

ptwm_core::codecs::per_group_codebook

PerGroupCodebook codec.

ptwm_core::codecs::per_group_codebook

PerGroupCodebook codec.

rsmod

ptwm_core::codecs::per_group_codebook

crates/ptwm-core/src/codecs/per_group_codebook.rs:1
mod per_group_codebook

PerGroupCodebook codec.

Models the per-group nibble distribution of a quantized plane (MXFP4 nibble VALUE plane). Offers per-group histogram extraction, k-means codebook fitting (multi-seed, deterministic), and a `PlaneCodec` impl that range-codes nibbles under the per-group PMF.
rsconst

ptwm_core::codecs::per_group_codebook::ALPHABET

crates/ptwm-core/src/codecs/per_group_codebook.rs:8
pub const ALPHABET
rstype

ptwm_core::codecs::per_group_codebook::Codebook

crates/ptwm-core/src/codecs/per_group_codebook.rs:69
pub struct Codebook
rsfn

ptwm_core::codecs::per_group_codebook::fit_codebook

crates/ptwm-core/src/codecs/per_group_codebook.rs:178
pub fn fit_codebook(hists: &[[u32; 16]], seed: u64) -> Codebook

k-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.

rsfn

ptwm_core::codecs::per_group_codebook::fit_codebook_multi_seed

crates/ptwm-core/src/codecs/per_group_codebook.rs:132
pub 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.

rsfn

ptwm_core::codecs::per_group_codebook::group_count

crates/ptwm-core/src/codecs/per_group_codebook.rs:11
pub fn group_count(plane_nibble_count: usize) -> usize
rsconst

ptwm_core::codecs::per_group_codebook::GROUP_SIZE

crates/ptwm-core/src/codecs/per_group_codebook.rs:9
pub const GROUP_SIZE
rsfn

ptwm_core::codecs::per_group_codebook::histograms

crates/ptwm-core/src/codecs/per_group_codebook.rs:19
pub 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.

rsconst

ptwm_core::codecs::per_group_codebook::K

crates/ptwm-core/src/codecs/per_group_codebook.rs:65
pub const K
rsconst

ptwm_core::codecs::per_group_codebook::KMEANS_MAX_ITERS

crates/ptwm-core/src/codecs/per_group_codebook.rs:66
pub const KMEANS_MAX_ITERS
rsconst

ptwm_core::codecs::per_group_codebook::KMEANS_PP_SEED

crates/ptwm-core/src/codecs/per_group_codebook.rs:67
pub const KMEANS_PP_SEED
rstype

ptwm_core::codecs::per_group_codebook::PerGroupCodebook

crates/ptwm-core/src/codecs/per_group_codebook.rs:395
pub struct PerGroupCodebook;
rsconst

ptwm_core::codecs::per_group_codebook::QUANT_TOTAL

crates/ptwm-core/src/codecs/per_group_codebook.rs:310
pub const QUANT_TOTAL
rsfn

ptwm_core::codecs::per_group_codebook::quantize_centroid

crates/ptwm-core/src/codecs/per_group_codebook.rs:277
pub 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.

rstype

ptwm_core::codecs::per_group_codebook::StateV0

crates/ptwm-core/src/codecs/per_group_codebook.rs:313
pub struct StateV0
rsfn

ptwm_core::codecs::per_group_codebook::validate_state_bytes

crates/ptwm-core/src/codecs/per_group_codebook.rs:330
pub 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`.