@@ -2,7 +2,7 @@ use std::path::Path;
22use std:: time:: { SystemTime , UNIX_EPOCH } ;
33
44use hdf5:: types:: VarLenUnicode ;
5- use hdf5:: File ;
5+ use hdf5:: { File , H5Type } ;
66use ndarray:: ArrayView3 ;
77use num_complex:: Complex64 ;
88
@@ -19,16 +19,12 @@ const PSI_DATASET: &str = "psi";
1919
2020type ComplexRepr = [ f64 ; 2 ] ;
2121
22- impl From < Complex64 > for [ f64 ; 2 ] {
23- fn from ( value : Complex64 ) -> Self {
24- [ value. re , value. im ]
25- }
22+ fn to_repr ( value : Complex64 ) -> ComplexRepr {
23+ [ value. re , value. im ]
2624}
2725
28- impl From < [ f64 ; 2 ] > for Complex64 {
29- fn from ( value : ComplexRepr ) -> Self {
30- Self :: new ( value[ 0 ] , value[ 1 ] )
31- }
26+ fn from_repr ( value : ComplexRepr ) -> Complex64 {
27+ Complex64 :: new ( value[ 0 ] , value[ 1 ] )
3228}
3329
3430fn io_error ( err : impl std:: fmt:: Display ) -> Error {
@@ -128,7 +124,7 @@ pub fn save_checkpoint(path: &Path, grid: &Grid3, state: &State3) -> Result<(),
128124 create_attr ( & grid_group, "lz" , & lengths[ 2 ] ) ?;
129125
130126 let state_group = root. create_group ( STATE_GROUP ) . map_err ( io_error) ?;
131- let psi_repr: Vec < ComplexRepr > = state. psi . iter ( ) . copied ( ) . map ( ComplexRepr :: from ) . collect ( ) ;
127+ let psi_repr: Vec < ComplexRepr > = state. psi . iter ( ) . copied ( ) . map ( to_repr ) . collect ( ) ;
132128 let psi_view = ArrayView3 :: from_shape ( ( shape[ 0 ] , shape[ 1 ] , shape[ 2 ] ) , & psi_repr)
133129 . map_err ( |_| Error :: InvalidFftInputLength ) ?;
134130
@@ -200,7 +196,7 @@ pub fn load_checkpoint(path: &Path) -> Result<(Grid3, State3), Error> {
200196 Ok ( (
201197 grid,
202198 State3 {
203- psi : psi_raw. into_iter ( ) . map ( Complex64 :: from ) . collect ( ) ,
199+ psi : psi_raw. into_iter ( ) . map ( from_repr ) . collect ( ) ,
204200 } ,
205201 ) )
206202}
0 commit comments