// sassenfeld.sci

function s = sassenfeld (A)
  [nl, nc] = size(A);
  
  n = nl; // matriz quadrada
  p = ones (1,n);
  
  // calculando os p(i)'s
  for i = 1:n do
    soma = 0;
    for j = 1:n do
      if j ~= i then
        soma = soma + p(j) * abs(A(i,j)) / abs(A(i,i));
      end
    end
    p(i) = soma;
  end
  
  // obtendo o numero de Sassenfeld
  s = 0;
  for i = 1:n do
    if p(i) > s do
      s = p(i);
    end
  end
endfunction

    
