+ Matrix origmat = new Matrix(in, n, n);\r
+\r
+ // System.out.println(" --- Original matrix ---- ");\r
+ /// origmat.print(System.out);\r
+ //System.out.println();\r
+ //System.out.println(" --- transpose matrix ---- ");\r
+ Matrix trans = origmat.transpose();\r
+\r
+ //trans.print(System.out);\r
+ //System.out.println();\r
+ //System.out.println(" --- OrigT * Orig ---- ");\r
+ Matrix symm = trans.postMultiply(origmat);\r
+\r
+ //symm.print(System.out);\r
+ //System.out.println();\r
+ // Copy the symmetric matrix for later\r
+ //Matrix origsymm = symm.copy();\r
+\r
+ // This produces the tridiagonal transformation matrix\r
+ //long tstart = System.currentTimeMillis();\r
+ symm.tred();\r
+\r
+ //long tend = System.currentTimeMillis();\r
+\r
+ //System.out.println("Time take for tred = " + (tend-tstart) + "ms");\r
+ //System.out.println(" ---Tridiag transform matrix ---");\r
+ //symm.print(System.out);\r
+ //System.out.println();\r
+ //System.out.println(" --- D vector ---");\r
+ //symm.printD(System.out);\r
+ //System.out.println();\r
+ //System.out.println(" --- E vector ---");\r
+ //symm.printE(System.out);\r
+ //System.out.println();\r
+ // Now produce the diagonalization matrix\r
+ //tstart = System.currentTimeMillis();\r
+ symm.tqli();\r
+ //tend = System.currentTimeMillis();\r
+\r
+ //System.out.println("Time take for tqli = " + (tend-tstart) + " ms");\r
+ //System.out.println(" --- New diagonalization matrix ---");\r
+ //symm.print(System.out);\r
+ //System.out.println();\r
+ //System.out.println(" --- D vector ---");\r
+ //symm.printD(System.out);\r
+ //System.out.println();\r
+ //System.out.println(" --- E vector ---");\r
+ //symm.printE(System.out);\r
+ //System.out.println();\r
+ //System.out.println(" --- First eigenvector --- ");\r
+ //double[] eigenv = symm.getColumn(0);\r
+ //for (int i=0; i < eigenv.length;i++) {\r
+ // Format.print(System.out,"%15.4f",eigenv[i]);\r
+ // }\r
+ //System.out.println();\r
+ //double[] neigenv = origsymm.vectorPostMultiply(eigenv);\r
+ //for (int i=0; i < neigenv.length;i++) {\r
+ // Format.print(System.out,"%15.4f",neigenv[i]/symm.d[0]);\r
+ //}\r
+ //System.out.println();\r
+ }\r