@@ -22,18 +22,23 @@ function estimators(
2222
2323 Z_T = sum (X; dims= 2 )
2424 ∑X = sum (X; dims= 1 )
25+ cs_∑X = cumsum (vec (∑X))
2526 Z̄_T = mean (Z_T)
2627 m̂ = Z̄_T / T
2728 v̂ = (N) * (T + 1 ) * T^ (- 3 ) * (mean (Z_T .^ 2 ) - T / (T + 1 ) * (Z̄_T + Z̄_T^ 2 ))
2829 WΔ = 0.0
2930 for iter in 1 : div (T, Δ)
30- WΔ += (N) / T * (sum (∑X[(1 + (iter - 1 ) * Δ): (iter * Δ)]) / (N) - Δ * m̂)^ 2
31+ lo = 1 + (iter - 1 ) * Δ
32+ hi = iter * Δ
33+ block_sum = lo == 1 ? cs_∑X[hi] : cs_∑X[hi] - cs_∑X[lo - 1 ]
34+ WΔ += (N) / T * (block_sum / (N) - Δ * m̂)^ 2
3135 end
3236 W2Δ = 0.0
3337 for iter in 1 : div (T, 2 * Δ)
34- W2Δ +=
35- (N) / T *
36- (sum (∑X[(1 + (iter - 1 ) * 2 * Δ): (iter * 2 * Δ)]) / (N) - 2 * Δ * m̂)^ 2
38+ lo = 1 + (iter - 1 ) * 2 * Δ
39+ hi = iter * 2 * Δ
40+ block_sum = lo == 1 ? cs_∑X[hi] : cs_∑X[hi] - cs_∑X[lo - 1 ]
41+ W2Δ += (N) / T * (block_sum / (N) - 2 * Δ * m̂)^ 2
3742 end
3843 ŵ = 2 * W2Δ - WΔ
3944
@@ -52,6 +57,7 @@ function estimators(
5257
5358 Z_T = sum (X; dims= 2 )
5459 ∑X = sum (X; dims= 1 )
60+ cs_∑X = cumsum (vec (∑X))
5561 Z̄_T = mean (Z_T)
5662 m̂ = Z̄_T / T
5763 v̂ = (N) * (T + 1 ) * T^ (- 3 ) * (mean (Z_T .^ 2 ) - T / (T + 1 ) * (Z̄_T + Z̄_T^ 2 ))
@@ -62,13 +68,17 @@ function estimators(
6268 end
6369 WΔ = 0.0
6470 for iter in 1 : div (T, Δ)
65- WΔ += (N) / T * (sum (∑X[(1 + (iter - 1 ) * Δ): (iter * Δ)]) / (N) - Δ * m̂)^ 2
71+ lo = 1 + (iter - 1 ) * Δ
72+ hi = iter * Δ
73+ block_sum = lo == 1 ? cs_∑X[hi] : cs_∑X[hi] - cs_∑X[lo - 1 ]
74+ WΔ += (N) / T * (block_sum / (N) - Δ * m̂)^ 2
6675 end
6776 W2Δ = 0.0
6877 for iter in 1 : div (T, 2 * Δ)
69- W2Δ +=
70- (N) / T *
71- (sum (∑X[(1 + (iter - 1 ) * 2 * Δ): (iter * 2 * Δ)]) / (N) - 2 * Δ * m̂)^ 2
78+ lo = 1 + (iter - 1 ) * 2 * Δ
79+ hi = iter * 2 * Δ
80+ block_sum = lo == 1 ? cs_∑X[hi] : cs_∑X[hi] - cs_∑X[lo - 1 ]
81+ W2Δ += (N) / T * (block_sum / (N) - 2 * Δ * m̂)^ 2
7282 end
7383 push! (ŵ, 2 * W2Δ - WΔ)
7484 end
0 commit comments