Input: X m × n , y m , β 0 n and l .

Output: Approximate β l solving (1).

1. Randomly select j 1 { 1,2, , n } with probability X j 1 2 2 X F 2 and compute β 1 = β 0 + s 0 ( j 1 ) X j 1 2 2 e j 1 .

2. For k = 1 to l 1 do

3. Compute δ k = 1 2 ( 1 s k 2 2 max 1 j n { | s k ( j ) | 2 X j 2 2 } + 1 X F 2 ) .

4. Construct set V k = { j : | s k ( j ) | 2 δ k s k 2 2 X j 2 2 } .

5. Compute s ˜ k ( j ) = { s k ( j ) , if j V k , 0, otherwise .

6. Select j k + 1 V k with probability | s ˜ k ( j k + 1 ) | 2 s ˜ k 2 2 .

7. Compute w j k = e j k + 1 X j k T X j k + 1 X j k 2 2 e j k and h j k = X j k + 1 T X w j k .

8. Set β k + 1 = β k + η k ( j k ) w j k , where η k ( j k ) = s ˜ k ( j k + 1 ) h j k .

9. End for