save_load_demo/
save_load_demo.rs1use hybrid_phi::core::hybrid_phi_inverse;
5use hybrid_phi::quantized_memory::phi_quantized_encode;
6use hybrid_phi::storage::{save_quantized, load_quantized};
7use std::path::Path;
8
9fn main() {
10 let values = [-1000.0, -1.0, 0.0, 1.0, 42.0, 123.456, 999.99];
11 let n = 10;
12 let step = 0.01;
13 let path = Path::new("phi_memory.bin");
14
15 let encoded: Vec<f64> = values
17 .iter()
18 .map(|&w| phi_quantized_encode(w, n, step))
19 .collect();
20
21 save_quantized(&encoded, &path).expect("save failed");
23 println!("Saved {} entries to {:?}", encoded.len(), path);
24
25 let loaded = load_quantized(&path).expect("load failed");
27 println!("Loaded {} entries from disk\n", loaded.len());
28
29 println!(
30 "{:<10} {:>12} {:>12} {:>12}",
31 "original", "quantized", "recovered", "error"
32 );
33
34 for ((&w, &q), r) in values.iter().zip(loaded.iter()).zip(loaded.iter().map(|&q| hybrid_phi_inverse(q, n))) {
35 let err = (w - r).abs();
36 println!(
37 "{:<10.3} {:>12.6} {:>12.6} {:>12.3e}",
38 w, q, r, err
39 );
40 }
41
42 let _ = std::fs::remove_file(path);
44}