public class DataNormalizer { private float[][] data; private boolean orig_norm; private boolean dest_norm; private float[] controls; public int length; public DataNormalizer(float[][] data,boolean orig_norm,boolean dest_norm,float[] controls) { this.data = data; this.orig_norm = orig_norm; this.dest_norm = dest_norm; this.controls = controls; this.length = data.length; } public float getData(int x,int y) { float answer = data[x][y]; if (orig_norm) { if (controls[x]!=0) answer /= controls[x]; else answer = 0; } if (dest_norm) { if (controls[y]!=0) answer /= controls[y]; else answer = 0; } return answer; } public static DataNormalizer fromArray(float[][] array) { return new DataNormalizer(array,false,false,null); } public boolean makesSense() { if (orig_norm==false && dest_norm==false) return true; for (int i=0;i