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 distances directly from a distance matrix to an MDS samer@0: object's distance vector. samer@0: */ samer@0: public class DistanceTask extends AnonymousTask samer@0: { samer@0: int N; samer@0: double [] d; // linear array of distances samer@0: double [][] _D; // matrix of source data 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 DistanceTask(MDSBase mds, Matrix D) { samer@0: N = D.getRowDimension(); samer@0: samer@0: d=new double[N*(N - 1)/2]; samer@0: _D=D.getArray(); samer@0: samer@0: mds.clearLinks(d); samer@0: for (int k=0, i=0; i