Fri, 15 May 2026 14:40:02 -0500
Fix basic PDPS degradation
| Cargo.lock | file | annotate | diff | comparison | revisions | |
| Cargo.toml | file | annotate | diff | comparison | revisions | |
| src/pdps.rs | file | annotate | diff | comparison | revisions |
--- a/Cargo.lock Fri May 08 16:47:58 2026 -0500 +++ b/Cargo.lock Fri May 15 14:40:02 2026 -0500 @@ -817,7 +817,7 @@ [[package]] name = "pointsource_algs" -version = "3.0.1-dev" +version = "3.0.2-dev" dependencies = [ "GSL", "alg_tools",
--- a/Cargo.toml Fri May 08 16:47:58 2026 -0500 +++ b/Cargo.toml Fri May 15 14:40:02 2026 -0500 @@ -1,6 +1,6 @@ [package] name = "pointsource_algs" -version = "3.0.1-dev" +version = "3.0.2-dev" edition = "2021" rust-version = "1.85" authors = ["Tuomo Valkonen <tuomov@iki.fi>"]
--- a/src/pdps.rs Fri May 08 16:47:58 2026 -0500 +++ b/src/pdps.rs Fri May 15 14:40:02 2026 -0500 @@ -221,13 +221,13 @@ let ω = pdpsconfig.acceleration.accelerate(&mut τ, &mut σ, γ); // Do dual update - // y = y_prev + τb - y.axpy(τ, b, 1.0); - // y = y_prev - τ(A[(1+ω)μ^{k+1}]-b) - opA.gemv(&mut y, -τ * (1.0 + ω), &μ, 1.0); - // y = y_prev - τ(A[(1+ω)μ^{k+1} - ω μ^k]-b) - opA.gemv(&mut y, τ * ω, &μ_base, 1.0); - y = phistar.prox(τ, y); + // y = y_prev - σb + y.axpy(-σ, b, 1.0); + // y = y_prev + σ(A[(1+ω)μ^{k+1}]-b) + opA.gemv(&mut y, σ * (1.0 + ω), &μ, 1.0); + // y = y_prev + σ(A[(1+ω)μ^{k+1} - ω μ^k]-b) + opA.gemv(&mut y, -σ * ω, &μ_base, 1.0); + y = phistar.prox(σ, y); // Give statistics if requested let iter = state.iteration();