function mycholesky(A) n,m=size(A) if n != m error("input is not a square matrix") end if A' != A error("input is not a symmetric matrix") end L=zeros(n,n) for i=1:n s=0 for k=1:i-1 s+=L[i,k]^2 end if A[i,i]-s <= 0 error("input is not positive definite") end L[i,i]=sqrt(A[i,i]-s) for j=i+1:n s=0 for k=1:i-1 s+=L[j,k]*L[i,k] end L[j,i]=(A[j,i]-s)/L[i,i] end end return L end