function [L,U]=GELU(a)
%Gaussian elimination code based our Textbook p.78-80
n=size(a,1);
L=eye(n);
for j = 1 : n-1
if abs(a(j,j))<eps; error('zero pivot encountered'); end
for i = j+1 : n
mult = a(i,j)/a(j,j);
L(i,j) = mult; %store multiplier into L
for k = j+1:n
a(i,k) = a(i,k) - mult*a(j,k);
end
end
end
U=triu(a); %take upper triangular of a