PTWM
ptwm_core

ptwm_core::quantize

Shared PMF quantization + validation primitives. Used by PerGroupCodebook (PGC, alphabet=16, total=256) and Order1ScaleAC (alphabet=256, total=4096); each codec passes its own total constant.

ptwm_core::quantize

Shared PMF quantization + validation primitives. Used by PerGroupCodebook (PGC, alphabet=16, total=256) and Order1ScaleAC (alphabet=256, total=4096); each codec passes its own total constant.

rsmod

ptwm_core::quantize

crates/ptwm-core/src/quantize.rs:1
mod quantize

Shared PMF quantization + validation primitives. Used by PerGroupCodebook (PGC, alphabet=16, total=256) and Order1ScaleAC (alphabet=256, total=4096); each codec passes its own `total` constant.

rsconst

ptwm_core::quantize::ORDER1_QUANT_TOTAL

crates/ptwm-core/src/quantize.rs:8
pub const ORDER1_QUANT_TOTAL
rsconst

ptwm_core::quantize::PGC_QUANT_TOTAL

crates/ptwm-core/src/quantize.rs:7
pub const PGC_QUANT_TOTAL
rsfn

ptwm_core::quantize::quantize_pmf

crates/ptwm-core/src/quantize.rs:13
pub fn quantize_pmf(raw_counts: &[u32], total: u32) -> Vec<u16>

Quantize raw integer counts into u16 counts summing to exactly `total`. Applies Laplace +1 smoothing first (every entry becomes ≥1, guaranteeing no zero-prob symbol on encode/decode).

rsfn

ptwm_core::quantize::validate_pmf_sum

crates/ptwm-core/src/quantize.rs:50
pub fn validate_pmf_sum(pmf: &[u16], expected_total: u32, ctx: &str) -> Result<(), PtwmCoreError>

Verify that quantized counts sum to exactly `expected_total` AND that every entry is at least 1. Returns a `CodecDecode` error on mismatch (state-load corruption tripwire). Zero-probability symbols are forbidden because the range coder divides by `prob` on encode and would loop forever on `prob == 0` during decode renormalization.