Skip to main content
. Author manuscript; available in PMC: 2015 Apr 7.
Published in final edited form as: Phys Med Biol. 2014 Mar 14;59(7):1801–1814. doi: 10.1088/0031-9155/59/7/1801
1: ε:=μ·i=1Nd0.5I0(i)×exp(-bi); Nmax: = 1000; L0 = 103, σ0 = 20, stop :=−0.999, θ:=σ0/L0, sL:= 1.3, Δ:=0.02ε control parameters
2: h⃗0 : = f⃗0: = FDK or ART initial image
3:  for k=1, Nmax do main loop
4: dTV:=hTV,ddata:=MT(Mh-b);
5: hind:={1,hi00,hi=0,cosα:=(hinddTV)hinddTV·(hindddata)hindddata; (• denotes element-wise multiplication between two vectors)
6: f⃗old:= f⃗, δh:=0.5·Mh-b22
7:  if δh >ε − Δ, λ: = 1/Δ; else λ: = 1/(εδh); end if; calculate the regularization weight outside and inside the feasible solution set, respectively.
8: F(f):=dTV+λ·ddata; gradient of the objective as a function of f⃗
9: f⃗ := (h⃗L−1F)+ ; update image and set non-negativity
10:  while F(f)>F(h)+F(h)T(f-h)+0.5L·f-h22
11:   L = sL · L;
12:   f⃗:= (h⃗LF)+ ;
13:  end; backtracking to find the Lipschitz constant L
14: σ:=min[σold,F(fold)-F(h)-F(h)T(fold-h)0.5·fold-h22]
15: θnew:=0.5·(σL-θ2+(σL-θ2)2+4θ2)
16: β: = θ(1 − θ)/(θ2 + θnew)
17: h:=f+β(f-fold), θ: = θnew, σold: =σ;
18:  if cosα<stop&&0.5Mf-b22ε stopping criteria
19:   return f⃗;
20:   break;
21:  end if;
22: end for;