| Input: x, y and (πx, μx, σx). |
| Output: R, t. |
| 1: Initialize n, R, t and (πy, μy, σy) as 0, I and (πx, μx, σx). |
| 2: Compute membership probability using (3) and (6). |
| 3: Compute updated target bundle parameters using (8) and (13). |
| 4: Compute unit quaternion q using sub-algorithm 1. |
| 5: Compute updated rotation Rn+1 using (15). |
| 6: Compute updated rotation tn+1 using (16). |
| 7: If n < 7, go to step 2 and n = n + 1; otherwise stop and return Rn+1, tn+1. |