using LinearAlgebra using SparseArrays function R(n,p,q,c,s) M=sparse(Float64,I,n,n) M[p,p]=c; M[p,q]=s M[q,p]=-s; M[q,q]=c return M end function givens(A,b) m,n=size(A) if m0 c=r1/z s=r2/z else c=1 s=0 end M=R(m,p,q,c,s) A=M*A b=M*b end end return A,b end