1: Start with V k : M k × D k .

2: Begin iteration.

3: Compute interference plus noise covariance matrix for B d k for stream d at receiver k, k { 1 , , K } , d { 1 , , D k } .

4: Calculate receive combining vectors u d k at receiver k, k { 1 , , K } , d { 1 , , D k } .

5: Reverse the communication direction and use the receive combining vectors as precoding vectors: V k = U k , k { 1 , , K } .

6: In the reciprocal network, compute interference plus noise covariance matrix for B d k for stream d at receiver k, k { 1 , , K } , d { 1 , , D k } .

7: Calculate receive combining vectors u d k , k { 1 , , K } , d { 1 , , D k } .

8: Reverse the communication direction and use the receive combining vectors as precoding vectors: V k = U k , k { 1 , , K } .

9: Repeat until convergence, or the number of iterations reaches a limit defined earlier.