To jointly optimize candidate vectors, in the second phase of our algorithm, we utilize the candidate vectors obtained earlier to construct copies of the given basis M ⋆ 0 attached to these candidates. Essentially, for each candidate vector a we create a copy of M ⋆ 0 and 3D-rotate it so that one of its vectors aligns with a. We then spin this copy around a to produce more basis samples. This can be viewed as a second sampling strategy, but this time we sample entire basis matrices rather than individual vectors. While sampling directly in this matrix space without using candidate vectors seems appealing, we found it to be too computationally expensive, hence the need for a more pre-cise two-phase sampling approach. After sampling, we apply the same robust estimation procedure mentioned earlier to simplify the objective function and perform a joint robust optimization to find the three vectors a * , b * and c * . This strategy has the advantage that only a single vector from the solution needs to be present in the candidate vectors found in the first phase.