@@ -26,12 +26,12 @@ pub struct SweepResult {
2626 /// Average relative size of k-th largest blue cluster per temperature.
2727 /// Shape: [n_temps][4]. Empty if collect_top_clusters=false.
2828 pub top_cluster_sizes : Vec < [ f64 ; 4 ] > ,
29- /// Normalized autocorrelation Γ(Δt) of m², shape [n_temps][max_lag+1] .
29+ /// Integrated autocorrelation time τ_int(m²) per temperature .
3030 /// Empty if autocorrelation_max_lag is None.
31- pub mags2_autocorrelation : Vec < Vec < f64 > > ,
32- /// Normalized autocorrelation Γ(Δt) of q², shape [n_temps][max_lag+1] .
31+ pub mags2_tau : Vec < f64 > ,
32+ /// Integrated autocorrelation time τ_int(q²) per temperature .
3333 /// Empty if autocorrelation_max_lag is None or n_replicas < 2.
34- pub overlap2_autocorrelation : Vec < Vec < f64 > > ,
34+ pub overlap2_tau : Vec < f64 > ,
3535}
3636
3737impl SweepResult {
@@ -48,16 +48,8 @@ impl SweepResult {
4848
4949 let n_top = results[ 0 ] . top_cluster_sizes . len ( ) ;
5050
51- let m2_ac_ntemps = results[ 0 ] . mags2_autocorrelation . len ( ) ;
52- let m2_ac_len = results[ 0 ]
53- . mags2_autocorrelation
54- . first ( )
55- . map_or ( 0 , |v| v. len ( ) ) ;
56- let q2_ac_ntemps = results[ 0 ] . overlap2_autocorrelation . len ( ) ;
57- let q2_ac_len = results[ 0 ]
58- . overlap2_autocorrelation
59- . first ( )
60- . map_or ( 0 , |v| v. len ( ) ) ;
51+ let m2_tau_len = results[ 0 ] . mags2_tau . len ( ) ;
52+ let q2_tau_len = results[ 0 ] . overlap2_tau . len ( ) ;
6153
6254 let mut agg = SweepResult {
6355 mags : vec ! [ 0.0 ; n_temps] ,
@@ -71,8 +63,8 @@ impl SweepResult {
7163 fk_csd : ( 0 ..n_fk_csd) . map ( |_| vec ! [ 0u64 ; fk_len] ) . collect ( ) ,
7264 overlap_csd : ( 0 ..n_ov_csd) . map ( |_| vec ! [ 0u64 ; ov_len] ) . collect ( ) ,
7365 top_cluster_sizes : vec ! [ [ 0.0 ; 4 ] ; n_top] ,
74- mags2_autocorrelation : ( 0 ..m2_ac_ntemps ) . map ( |_| vec ! [ 0.0 ; m2_ac_len ] ) . collect ( ) ,
75- overlap2_autocorrelation : ( 0 ..q2_ac_ntemps ) . map ( |_| vec ! [ 0.0 ; q2_ac_len ] ) . collect ( ) ,
66+ mags2_tau : vec ! [ 0.0 ; m2_tau_len ] ,
67+ overlap2_tau : vec ! [ 0.0 ; q2_tau_len ] ,
7668 } ;
7769
7870 for r in results {
@@ -119,23 +111,11 @@ impl SweepResult {
119111 a[ k] += s[ k] ;
120112 }
121113 }
122- for ( a_row, r_row) in agg
123- . mags2_autocorrelation
124- . iter_mut ( )
125- . zip ( r. mags2_autocorrelation . iter ( ) )
126- {
127- for ( a, & v) in a_row. iter_mut ( ) . zip ( r_row. iter ( ) ) {
128- * a += v;
129- }
114+ for ( a, & v) in agg. mags2_tau . iter_mut ( ) . zip ( r. mags2_tau . iter ( ) ) {
115+ * a += v;
130116 }
131- for ( a_row, r_row) in agg
132- . overlap2_autocorrelation
133- . iter_mut ( )
134- . zip ( r. overlap2_autocorrelation . iter ( ) )
135- {
136- for ( a, & v) in a_row. iter_mut ( ) . zip ( r_row. iter ( ) ) {
137- * a += v;
138- }
117+ for ( a, & v) in agg. overlap2_tau . iter_mut ( ) . zip ( r. overlap2_tau . iter ( ) ) {
118+ * a += v;
139119 }
140120 }
141121
@@ -159,15 +139,11 @@ impl SweepResult {
159139 }
160140 }
161141
162- for row in agg. mags2_autocorrelation . iter_mut ( ) {
163- for v in row. iter_mut ( ) {
164- * v /= n;
165- }
142+ for v in agg. mags2_tau . iter_mut ( ) {
143+ * v /= n;
166144 }
167- for row in agg. overlap2_autocorrelation . iter_mut ( ) {
168- for v in row. iter_mut ( ) {
169- * v /= n;
170- }
145+ for v in agg. overlap2_tau . iter_mut ( ) {
146+ * v /= n;
171147 }
172148
173149 agg
0 commit comments