quantized_demo/
quantized_demo.rs1use 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}