function Q=givens_zero(V,j,i)
// objetivo : determinar transformacao Q que zera V(i,j) atraves de 
// reflexao envolvendo linhas j e i de uma matriz V  ( onde  i > j )
// problema basico eh 2 x 2:
//  [ cos(th)   sin(th) ] [ a ] = [ * ]
//  [-sin(th)   cos(th) ] [ b ]   [ 0 ]
//  -a sin(th) + b cos(th) = 0 <==> tan(th) = b/a
//   th = atan2(b,a)
th = atan(V(i,j),V(j,j));  // atan2 em Matlab,fortran,C
Z = [ cos(th),-sin(th);sin(th),cos(th)];
n = size(V,1); // numero de linhas de V
Q=eye(n,n); // identidade
Q(j,j)=Z(1,1); Q(j,i)=Z(1,2);
Q(i,j)=Z(2,1); Q(i,i)=Z(2,2); 
endfunction


