samer@0: package samer.mds; samer@0: samer@0: // import samer.core.*; samer@0: import samer.maths.*; samer@0: import samer.tools.*; samer@0: samer@0: /** samer@0: Transfer correlation matrix to MDS distances. Assumes 1s samer@0: down the main diagonal and a symmetric matrix. samer@0: */ samer@0: public class CorrelationTask extends AnonymousTask samer@0: { samer@0: int N; samer@0: double [] d; // linear array of distances samer@0: double [][] _R; // matrix of correlation coefficients samer@0: samer@0: /** link each object to all the others using distances in matrix, returns a task samer@0: that can be used to refresh distances from original matrix */ samer@0: public CorrelationTask(MDSBase mds, Matrix R) { samer@0: N = R.getRowDimension(); samer@0: samer@0: d=new double[N*(N - 1)/2]; samer@0: _R=R.getArray(); samer@0: samer@0: mds.clearLinks(d); samer@0: for (int k=0, i=0; i