/** * */ package fr.unistra.pelican.util.vectorial.ordering; import fr.unistra.pelican.util.Tools; /** * Lexicographic ordering with a possible band reordering * * @author Benjamin Perret * */ public class LexicographicalOrdering extends VectorialOrdering { private int [] bandMix=null; public LexicographicalOrdering(){ } public LexicographicalOrdering(int [] bandMix){ this.bandMix=bandMix; } /* (non-Javadoc) * @see fr.unistra.pelican.algorithms.experimental.perret.CC.Ordering.VectorialOrdering#compare(double[], double[]) */ @Override public int compare(double[] o1, double[] o2) { if (bandMix == null) { for (int i = 0; i < o1.length; i++) { int c = Double.compare(o1[i], o2[i]); if (c != 0) { return c; } } } else { for (int i = 0; i < o1.length; i++) { int c = Double.compare(o1[bandMix[i]], o2[bandMix[i]]); if (c != 0) { return c; } } } return 0; } }