function D=mydet_gauss(A)
n=size(A,1);
scambi_di_righe=0;
for k=1:n %k=colonna dove sta il pivot
%qui va il pivoting
%trovare il massimo sulla colonna del pivot
 max_pos=k;
 for i=k+1:n
 if(abs(A(i,k))>abs(A(max_pos,k)))
   max_pos=i;
 endif
 endfor
 %ora max_pos contiene la riga dove sta il massimo valore
 %ora devo scambiare le righe max_pos, k
 temp=A(max_pos,1:n);
 A(max_pos,1:n)=A(k,1:n);
 A(k,1:n)=temp;
 if(k~=max_pos)
   scambi_di_righe=scambi_di_righe+1;
 endif
 %ora continuo come prima
 for i=k+1:n %i=riga in cui devo far comparire uno 0
  A(i,1:n)=A(i,1:n)- A(i,k)/A(k,k) * A(k,1:n);
 endfor
endfor
%ora moltiplico le entrate sulla diagonale
D=1;
for i=1:n
 D=D*A(i,i);
endfor
D=D*(-1)^(scambi_di_righe);
