Input:
|
|
|
# under-sampled data for each A-scan |
I or Fu
|
# sampling mask or the sensing matrix |
η
|
# stopping iteration number |
τ
|
# CS regulation parameter |
Output:
|
|
(x1)η,...,(xL)η
|
# (xi)j is the j-th iterate of the i-th A-scan |
1: Initialization: set (α1)0,...,(αL)0, (x1)0,...,(xL)0
|
2: copy
, I or Fu to GPU |
|
3: p ← 0 |
|
4: for all
j ∈ [1,...,L] do in parallel
|
|
5:
|
|
6: end for
|
|
7: while
p ≠ η
do
|
|
8: for all
j ∈ [1,...,L] do in parallel
|
|
9:
|
|
10: end for
|
|
11: for all
i ∈ [0,...,N − 1] and
j ∈ [1,... L] do in parallel
|
12:
|
#
is the i-th component of xj
|
13: end for
|
|
14: for all
j ∈ [1,...,L] do in parallel
|
|
15: (sj)p+1 = (xj)p+1 − (xj)p
|
|
16:
|
|
17: (αj)p+1 = ‖(rj)p+1 − (rj)p‖2/‖(sj)p+1‖2
|
|
18: end for
|
|
19: p ← p + 1 |
|
20: end while
|
|
21: Finish: copy (x1)η,...,(xL)η to the host memory |