@@ -8,9 +8,12 @@ using FileIO
88
99const SUITE = BenchmarkGroup ()
1010
11- function ProximalAlgorithms. value_and_gradient_closure (f:: ProximalOperators.LeastSquaresDirect , x)
12- res = f. A* x - f. b
13- norm (res)^ 2 , () -> f. A' * res
11+ function ProximalAlgorithms. value_and_gradient_closure (
12+ f:: ProximalOperators.LeastSquaresDirect ,
13+ x,
14+ )
15+ res = f. A * x - f. b
16+ norm (res)^ 2 , () -> f. A' * res
1417end
1518
1619struct SquaredDistance{Tb}
@@ -41,80 +44,93 @@ for (benchmark_name, file_name) in [
4144 lam = R (data[" lambda" ])
4245 m, n = size (A)
4346
44- SUITE[k][" ForwardBackward" ] = @benchmarkable solver (x0= x0, f= f, g= g) setup= begin
45- solver = ProximalAlgorithms. ForwardBackward (tol= 1e-6 )
46- x0 = zeros ($ T, size ($ A, 2 ))
47- f = LeastSquares ($ A, $ b)
48- g = NormL1 ($ lam)
49- end
50-
51- SUITE[k][" FastForwardBackward" ] = @benchmarkable solver (x0= x0, f= f, g= g) setup= begin
52- solver = ProximalAlgorithms. FastForwardBackward (tol= 1e-6 )
53- x0 = zeros ($ T, size ($ A, 2 ))
54- f = LeastSquares ($ A, $ b)
55- g = NormL1 ($ lam)
56- end
57-
58- SUITE[k][" ZeroFPR" ] = @benchmarkable solver (x0= x0, f= f, A= $ A, g= g) setup= begin
59- solver = ProximalAlgorithms. ZeroFPR (tol= 1e-6 )
60- x0 = zeros ($ T, size ($ A, 2 ))
61- f = SquaredDistance ($ b)
62- g = NormL1 ($ lam)
63- end
64-
65- SUITE[k][" PANOC" ] = @benchmarkable solver (x0= x0, f= f, A= $ A, g= g) setup= begin
66- solver = ProximalAlgorithms. PANOC (tol= 1e-6 )
67- x0 = zeros ($ T, size ($ A, 2 ))
68- f = SquaredDistance ($ b)
69- g = NormL1 ($ lam)
70- end
71-
72- SUITE[k][" PANOCplus" ] = @benchmarkable solver (x0= x0, f= f, A= $ A, g= g) setup= begin
73- solver = ProximalAlgorithms. PANOCplus (tol= 1e-6 )
74- x0 = zeros ($ T, size ($ A, 2 ))
75- f = SquaredDistance ($ b)
76- g = NormL1 ($ lam)
77- end
78-
79- SUITE[k][" DouglasRachford" ] = @benchmarkable solver (x0= x0, f= f, g= g, gamma= $ R (1 )) setup= begin
80- solver = ProximalAlgorithms. DouglasRachford (tol= 1e-6 )
81- x0 = zeros ($ T, size ($ A, 2 ))
82- f = LeastSquares ($ A, $ b)
83- g = NormL1 ($ lam)
84- end
85-
86- SUITE[k][" DRLS" ] = @benchmarkable solver (x0= x0, f= f, g= g, Lf= Lf) setup= begin
87- solver = ProximalAlgorithms. DRLS (tol= 1e-6 )
88- x0 = zeros ($ T, size ($ A, 2 ))
89- f = LeastSquares ($ A, $ b)
90- Lf = opnorm (($ A)' * $ A)
91- g = NormL1 ($ lam)
92- end
93-
94- SUITE[k][" AFBA-1" ] = @benchmarkable solver (x0= x0, y0= y0, f= f, g= g, beta_f= beta_f) setup= begin
95- beta_f = opnorm ($ A)^ 2
96- solver = ProximalAlgorithms. AFBA (theta= $ R (1 ), mu= $ R (1 ), tol= $ R (1e-6 ))
97- x0 = zeros ($ T, size ($ A, 2 ))
98- y0 = zeros ($ T, size ($ A, 2 ))
99- f = LeastSquares ($ A, $ b)
100- g = NormL1 ($ lam)
101- end
102-
103- SUITE[k][" AFBA-2" ] = @benchmarkable solver (x0= x0, y0= y0, h= h, L= $ A, g= g) setup= begin
104- beta_f = opnorm ($ A)^ 2
105- solver = ProximalAlgorithms. AFBA (theta= $ R (1 ), mu= $ R (1 ), tol= $ R (1e-6 ))
106- x0 = zeros ($ T, size ($ A, 2 ))
107- y0 = zeros ($ T, size ($ A, 1 ))
108- h = Translate (SqrNormL2 (), - $ b)
109- g = NormL1 ($ lam)
110- end
111-
112- SUITE[k][" SFISTA" ] = @benchmarkable solver (x0= x0, f= f, Lf= Lf, g= g) setup= begin
113- solver = ProximalAlgorithms. SFISTA (tol= $ R (1e-3 ))
114- x0 = zeros ($ T, size ($ A, 2 ))
115- f = LeastSquares ($ A, $ b)
116- g = NormL1 ($ lam)
117- Lf = opnorm ($ A)^ 2
118- end
47+ SUITE[k][" ForwardBackward" ] =
48+ @benchmarkable solver (x0 = x0, f = f, g = g) setup = begin
49+ solver = ProximalAlgorithms. ForwardBackward (tol = 1e-6 )
50+ x0 = zeros ($ T, size ($ A, 2 ))
51+ f = LeastSquares ($ A, $ b)
52+ g = NormL1 ($ lam)
53+ end
54+
55+ SUITE[k][" FastForwardBackward" ] =
56+ @benchmarkable solver (x0 = x0, f = f, g = g) setup = begin
57+ solver = ProximalAlgorithms. FastForwardBackward (tol = 1e-6 )
58+ x0 = zeros ($ T, size ($ A, 2 ))
59+ f = LeastSquares ($ A, $ b)
60+ g = NormL1 ($ lam)
61+ end
62+
63+ SUITE[k][" ZeroFPR" ] =
64+ @benchmarkable solver (x0 = x0, f = f, A = $ A, g = g) setup = begin
65+ solver = ProximalAlgorithms. ZeroFPR (tol = 1e-6 )
66+ x0 = zeros ($ T, size ($ A, 2 ))
67+ f = SquaredDistance ($ b)
68+ g = NormL1 ($ lam)
69+ end
70+
71+ SUITE[k][" PANOC" ] =
72+ @benchmarkable solver (x0 = x0, f = f, A = $ A, g = g) setup = begin
73+ solver = ProximalAlgorithms. PANOC (tol = 1e-6 )
74+ x0 = zeros ($ T, size ($ A, 2 ))
75+ f = SquaredDistance ($ b)
76+ g = NormL1 ($ lam)
77+ end
78+
79+ SUITE[k][" PANOCplus" ] =
80+ @benchmarkable solver (x0 = x0, f = f, A = $ A, g = g) setup = begin
81+ solver = ProximalAlgorithms. PANOCplus (tol = 1e-6 )
82+ x0 = zeros ($ T, size ($ A, 2 ))
83+ f = SquaredDistance ($ b)
84+ g = NormL1 ($ lam)
85+ end
86+
87+ SUITE[k][" DouglasRachford" ] =
88+ @benchmarkable solver (x0 = x0, f = f, g = g, gamma = $ R (1 )) setup = begin
89+ solver = ProximalAlgorithms. DouglasRachford (tol = 1e-6 )
90+ x0 = zeros ($ T, size ($ A, 2 ))
91+ f = LeastSquares ($ A, $ b)
92+ g = NormL1 ($ lam)
93+ end
94+
95+ SUITE[k][" DRLS" ] =
96+ @benchmarkable solver (x0 = x0, f = f, g = g, Lf = Lf) setup = begin
97+ solver = ProximalAlgorithms. DRLS (tol = 1e-6 )
98+ x0 = zeros ($ T, size ($ A, 2 ))
99+ f = LeastSquares ($ A, $ b)
100+ Lf = opnorm (($ A)' * $ A)
101+ g = NormL1 ($ lam)
102+ end
103+
104+ SUITE[k][" AFBA-1" ] =
105+ @benchmarkable solver (x0 = x0, y0 = y0, f = f, g = g, beta_f = beta_f) setup =
106+ begin
107+ beta_f = opnorm ($ A)^ 2
108+ solver =
109+ ProximalAlgorithms. AFBA (theta = $ R (1 ), mu = $ R (1 ), tol = $ R (1e-6 ))
110+ x0 = zeros ($ T, size ($ A, 2 ))
111+ y0 = zeros ($ T, size ($ A, 2 ))
112+ f = LeastSquares ($ A, $ b)
113+ g = NormL1 ($ lam)
114+ end
115+
116+ SUITE[k][" AFBA-2" ] =
117+ @benchmarkable solver (x0 = x0, y0 = y0, h = h, L = $ A, g = g) setup = begin
118+ beta_f = opnorm ($ A)^ 2
119+ solver =
120+ ProximalAlgorithms. AFBA (theta = $ R (1 ), mu = $ R (1 ), tol = $ R (1e-6 ))
121+ x0 = zeros ($ T, size ($ A, 2 ))
122+ y0 = zeros ($ T, size ($ A, 1 ))
123+ h = Translate (SqrNormL2 (), - $ b)
124+ g = NormL1 ($ lam)
125+ end
126+
127+ SUITE[k][" SFISTA" ] =
128+ @benchmarkable solver (x0 = x0, f = f, Lf = Lf, g = g) setup = begin
129+ solver = ProximalAlgorithms. SFISTA (tol = $ R (1e-3 ))
130+ x0 = zeros ($ T, size ($ A, 2 ))
131+ f = LeastSquares ($ A, $ b)
132+ g = NormL1 ($ lam)
133+ Lf = opnorm ($ A)^ 2
134+ end
119135 end
120136end
0 commit comments