# HG changeset patch # User Tuomo Valkonen # Date 1778874002 18000 # Node ID e2953ffd4e0b938bad318dc8d1b4f018fdeff644 # Parent ed16d0f10d08d875ef3af711746d650480d0f709 Fix basic PDPS degradation diff -r ed16d0f10d08 -r e2953ffd4e0b Cargo.lock --- 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", diff -r ed16d0f10d08 -r e2953ffd4e0b Cargo.toml --- 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 "] diff -r ed16d0f10d08 -r e2953ffd4e0b src/pdps.rs --- 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();