The overall algorithm is summarized in Algorithm REF , where steps 3-10 are based on the GAMP described in [1]}. Steps 3-4 are the output linear step to obtain the quantities \(\lbrace \hat{p}_{j,m}\rbrace \)  and \(\lbrace v^p_{j,m}\rbrace \) . Using these quantities, steps 5-6 compute the marginal posterior means \(\lbrace \hat{q}_{j,m}\rbrace \)  and variances \(\lbrace v^q_{j,m}\rbrace \) . Steps 7-8 then use these posterior moments to compute the scaled residuals \(\lbrace \hat{a}_{j,m}\rbrace \)  and the inverse residual variances \(\lbrace v^a_{j,m}\rbrace \) . Steps 9-10 correspond to the input linear step to compute \(\lbrace v^r_{i,m}\rbrace \)  and \(\lbrace \hat{r}_{i,m}\rbrace \) , where \(\hat{r}_{i,m}\)  can be interpreted as an observation of \(\zeta _{i,m}\)  under an additive white Gaussian noise (AWGN) channel with zero mean and a variance of \(v^r_{i,m}\) .
