package org.dawnsci.surfacescatter; import java.util.ArrayList; import java.util.Collections; import org.eclipse.january.DatasetException; import org.eclipse.january.dataset.IDataset; import org.eclipse.january.dataset.ILazyDataset; import org.eclipse.january.dataset.SliceND; public class OverlapFinderSXRD{ public static double[][] overlapFinderOperation (IDataset[] xArray) { int d = xArray.length; double[][] maxMinArray = new double[d][2]; double[][] overlap = new double[d][2]; for(int k =0;k<d;k++){ maxMinArray[k][0] = (double) xArray[k].max(null); maxMinArray[k][1] = (double) xArray[k].min(null); } for (int k=0; k<d-1;k++){ ArrayList<Integer> overlapLower = new ArrayList<Integer>(); ArrayList<Integer> overlapHigher = new ArrayList<Integer>(); if (maxMinArray[k][0]>maxMinArray[k+1][1]){ for(int l=0; l<xArray[k].getSize();l++){ if (xArray[k].getDouble(l)>maxMinArray[k+1][1]){ overlapLower.add(l); } } for(int m=0; m<xArray[k+1].getSize();m++){ if (xArray[k+1].getDouble(m)<maxMinArray[k][0]){ overlapHigher.add(m); } } } overlap[k][1]=(double) xArray[k].getDouble(Collections.min(overlapLower)); overlap[k][0]=(double) maxMinArray[k][0]; } return overlap; } }