function B = eg(A,ip,jp)
%
% B = eg(A,ip,jp,op)
%
%     Hace eliminación gaussiana a la matriz A, tomando como pivote
%     al elemento A(ip,jp) y deposita el resultado en la matriz B.
%
% A = eg(A,ip,jp)
%
%     Hace lo mismo, pero modifica la matriz A.
%    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%    Revisión 1.0
%    Sergio A. Pérez Ruiz
%    Instituto Tecnológico Autónomo de México
%    noviembre de 1996
%    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

%
% Validación de apuntadores
if (ip < 0 | ip > size(A,1)) | ...
   (jp < 0 | jp > size(A,2))
   disp(' ')
   error('>>> INDICES FUERA DE RANGO')
end

if A(ip,jp) == 0
   disp(' ')
   error('>>> PIVOTE INVALIDO, DEBE SER DISTINTO DE CERO')
end

B=A;
B(ip,:)=B(ip,:)/B(ip,jp);
for i=1:size(B,1)
    if i ~= ip
       B(i,:)=B(i,:)-B(i,jp)*B(ip,:);
    end
end