These are just different but equivalent definitions: Both will result in the same C and S, the only difference is in how X is represented.
The advantage of using X and not its inverse is that this algorithm will also work for cases where X becomes singular, where an inverse could not be taken. This happens if [A; B] does not have full rank.
