pub fn rate_distortion_binary(
source_prob: f64,
distortion: f64,
) -> Result<f64, NumRs2Error>Expand description
Compute rate-distortion function for binary source
§Arguments
source_prob- Probability of source symbol 1distortion- Maximum allowed distortion (0 ≤ D ≤ min(p, 1-p))
§Returns
Rate-distortion R(D) in bits
§Mathematical Formula
For binary source with p = P(X=1):
R(D) = H(p) - H(D) if D ≤ min(p, 1-p)
= 0 if D ≥ min(p, 1-p)§Examples
use numrs2::new_modules::information_theory::coding::rate_distortion_binary;
// Fair coin, zero distortion
let r = rate_distortion_binary(0.5, 0.0).expect("valid distribution and distortion");
assert!((r - 1.0).abs() < 1e-10); // R(0) = H(0.5) = 1 bit
// Fair coin, maximum distortion
let r2 = rate_distortion_binary(0.5, 0.5).expect("valid distribution and distortion");
assert!(r2.abs() < 1e-10); // R(0.5) = 0 bits