function myplu(A) m,n=size(A) if m!=n println("Need a square matrix!") throw(exit()) end U=zeros(size(A)) L=zeros(size(A)) p=zeros(Int,n) Ak=copy(A) for k=1:n # display(Ak) i=argmax(abs.(Ak[:,k])) p[k]=i U[k,:]=Ak[i,:] println("About to divide by ",U[k,k]) L[:,k]=Ak[:,k]/U[k,k] Ak=Ak-L[:,k]*U[k,:]' end return L[p,:],U,p end