1use std::collections::HashMap;
2
3use numrst::{io::DynamicNdArray, prelude::*};
4use tempfile::NamedTempFile;
5
6fn main() -> Result<(), Box<dyn std::error::Error>> {
7 let tmpfile = NamedTempFile::new().unwrap();
8
9 let scalar = NdArray::new(1).unwrap();
10 let vector_f32 = NdArray::new(&[1.0f32, 2., 3.]).unwrap();
11 let matrix_f32 = NdArray::new(&[[1, 2, 3], [3, 4, 5]]).unwrap();
12 let ones_f32 = NdArray::<f32>::ones((2, 9)).unwrap();
13 let randn_f64 = NdArray::randn(0.0f64, 1., (1, 2, 3)).unwrap();
14 let fill_f64 = NdArray::full((2, 3, 4), 1.2).unwrap();
15 let arange_f64 = NdArray::arange(0., 10.).unwrap();
16 let trues = NdArray::trues((3, 4)).unwrap();
17 let booleans = NdArray::new(&[[true, false], [false, true]]).unwrap();
18
19 let mut ndarrays = HashMap::new();
20 ndarrays.insert("scalar".to_string(), DynamicNdArray::I32(scalar));
21 ndarrays.insert("vector_f32".to_string(), DynamicNdArray::F32(vector_f32));
22 ndarrays.insert("matrix_f32".to_string(), DynamicNdArray::I32(matrix_f32));
23 ndarrays.insert("ones_f32".to_string(), DynamicNdArray::F32(ones_f32));
24 ndarrays.insert("randn_f64".to_string(), DynamicNdArray::F64(randn_f64));
25 ndarrays.insert("fill_f64".to_string(), DynamicNdArray::F64(fill_f64));
26 ndarrays.insert("arange_f64".to_string(), DynamicNdArray::F64(arange_f64));
27 ndarrays.insert("trues".to_string(), DynamicNdArray::Bool(trues));
28 ndarrays.insert("booleans".to_string(), DynamicNdArray::Bool(booleans));
29
30 numrst::io::save_npz_file(&ndarrays, tmpfile.path()).unwrap();
31
32 let ndarrays = numrst::io::load_npz_file(tmpfile.path()).unwrap();
33 for (name, _) in ndarrays {
34 println!("{}", name);
35 }
36
37 Ok(())
38}