Skip to main content

quantized_demo/
quantized_demo.rs

1//! CLI demo for quantized φ-memory
2//! Run with: cargo run --example quantized_demo -- --n=10 --step=0.01
3
4use hybrid_phi::quantized_memory::{phi_quantized_encode, phi_quantized_decode};
5use std::env;
6
7fn parse_args() -> (usize, f64) {
8    let mut n = 10;
9    let mut step = 0.01;
10    for arg in env::args().skip(1) {
11        if let Some(n_str) = arg.strip_prefix("--n=") {
12            if let Ok(v) = n_str.parse::<usize>() {
13                if (1..=32).contains(&v) {
14                    n = v;
15                }
16            }
17        }
18        if let Some(s_str) = arg.strip_prefix("--step=") {
19            if let Ok(s) = s_str.parse::<f64>() {
20                if s > 0.0 {
21                    step = s;
22                }
23            }
24        }
25    }
26    (n, step)
27}
28
29fn main() {
30    let (n, step) = parse_args();
31    let values = [-1000.0, -100.0, -1.0, 0.0, 1.0, 42.0, 123.456, 999.99];
32
33    println!("Quantized φ-memory demo (N = {}, step = {})\n", n, step);
34    println!(
35        "{:<10} {:>12} {:>12} {:>12}",
36        "w", "quantized", "recovered", "error"
37    );
38
39    for &w in &values {
40        let q = phi_quantized_encode(w, n, step);
41        let recon = phi_quantized_decode(q, n);
42        let err = (w - recon).abs();
43
44        println!(
45            "{:<10.3} {:>12.6} {:>12.6} {:>12.3e}",
46            w, q, recon, err
47        );
48    }
49}