Skip to main content
. Author manuscript; available in PMC: 2019 Jun 5.
Published in final edited form as: SIAM J Imaging Sci. 2018 Jun 5;11(2):1560–1588. doi: 10.1137/17M1153649

Algorithm 2.

Two-parameter backtracking line search

Input: α0p, α0c, F(k), Gp(k), Gc(k), lmax
Output: αkp^, αkc^
 1: αkp^←α0p
 2: found ← false
 3: while not found do
 4:  p0˜←proxαkp^βR(p0(k)−αkp^Gp(k))
 5:  if F(p0˜,Φ(cp(k)))>F(k)+〈Gp(k),p0˜−p0(k)〉+12αkp^‖p0˜−p0(k)‖22 then
 6:   αkp^←αkp^/2
 7:  else
 8:   found ← true
 9:  end if
 10: end while
 11: l ← 0 {l is the line search step number.}
 12: αkC^←α0c
 13: found ← false
 14: while not found and l < lmax do
 15:  c˜p←cp(k)−αkc^BGc(k)
 16:  if F(p˜0,Φ(cp(k)))<F(p˜0,Φ(c˜p)) then
 17:   αkc^←αkc^/2
 18:  else
 19:   found ← true
 20:  end if
 21:  l ← l + 1
 22: end while
 23: if l is lmax then
 24:  αkc^←0
 25: end if