using System; public partial class jacobi{ public static int values(matrix A, vector e, int nvalues=1, matrix V=null){ /* Jacobi diagonalization. Upper triangle of A is destroyed. e and V accumulate eigenvalues and eigenvectors */ bool changed; int rotations=0, n=A.size1; for(int i=0;i0 */ double c = Math.Cos(phi), s = Math.Sin(phi); double app1=c*c*app-2*s*c*apq+s*s*aqq; double aqq1=s*s*app+2*s*c*apq+c*c*aqq; if(app1!=app || aqq1!=aqq){ rotations++; changed=true; e[p]=app1; e[q]=aqq1; A[p,q]=0.0; /* for(int i=0;i