Fix basic PDPS degradation

Fri, 15 May 2026 14:40:02 -0500

author
Tuomo Valkonen <tuomov@iki.fi>
date
Fri, 15 May 2026 14:40:02 -0500
changeset 71
e2953ffd4e0b
parent 70
ed16d0f10d08
child 72
e9a460a0e638

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();

mercurial