There is a typo in the Additional Material section regarding complex QR decomposition. As I was working to apply the changes, I think I found that the defined sign(x) function might be incorrect. I believe it should be sign = lambda x: x/np.abs(x) if x!=0 else 1 instead of sign = lambda x: 1 if np.real(x) >= 0 else -1.
There is a typo in the Additional Material section regarding complex QR decomposition. As I was working to apply the changes, I think I found that the defined sign(x) function might be incorrect. I believe it should be
sign = lambda x: x/np.abs(x) if x!=0 else 1
instead ofsign = lambda x: 1 if np.real(x) >= 0 else -1
.