- double[] neigenv = symm.vectorPostMultiply(eigenv);\r
- System.out.println(" --- symmat * eigenv / lambda --- ");\r
- if (eigenvector.d[n] > 1e-4) {\r
- for (int i=0; i < neigenv.length;i++) {\r
- Format.print(System.out,"%15.4f",neigenv[i]/eigenvector.d[n]);\r
- }\r
- }\r
- System.out.println();\r
- }\r
-\r
- public void run() {\r
- Matrix mt = m.transpose();\r
- // System.out.println(" --- OrigT * Orig ---- ");\r
- eigenvector = mt.preMultiply(m2);\r
- // eigenvector.print(System.out);\r
- symm = eigenvector.copy();\r
-\r
- //TextArea ta = new TextArea(25,72);\r
- //TextAreaPrintStream taps = new TextAreaPrintStream(System.out,ta);\r
- //Frame f = new Frame("PCA output");\r
- //f.resize(500,500);\r
- //f.setLayout(new BorderLayout());\r
- //f.add("Center",ta);\r
- //f.show();\r
- //symm.print(taps);\r
- long tstart = System.currentTimeMillis();\r
- eigenvector.tred();\r
- long tend = System.currentTimeMillis();\r
- //taps.println("Time take for tred = " + (tend-tstart) + "ms");\r
- //taps.println(" ---Tridiag transform matrix ---");\r
-\r
- //taps.println(" --- D vector ---");\r
- //eigenvector.printD(taps);\r
- //taps.println();\r
- //taps.println(" --- E vector ---");\r
- // eigenvector.printE(taps);\r
- //taps.println();\r
-\r
- // Now produce the diagonalization matrix\r
- tstart = System.currentTimeMillis();\r
- eigenvector.tqli();\r
- tend = System.currentTimeMillis();\r
- //System.out.println("Time take for tqli = " + (tend-tstart) + " ms");\r
-\r
- //System.out.println(" --- New diagonalization matrix ---");\r
-\r
- //System.out.println(" --- Eigenvalues ---");\r
- //eigenvector.printD(taps);\r
-\r
- //System.out.println();\r
-\r
- // for (int i=0; i < eigenvector.cols; i++) {\r
- // checkEigenvector(i,taps);\r
- // taps.println();\r
- // }\r
-\r
- // taps.println();\r
- // taps.println("Transformed sequences = ");\r
- // Matrix trans = m.preMultiply(eigenvector);\r
- // trans.print(System.out);\r
- }\r