private static void assertEqual(float[][][] e, float[][][] a) { float tol = 0.001f*max(abs(e)); assertEqual(e,a,tol); } private static void assertEqual(float[] e, float[] a, float tol) {
private void makeClipsValid() { if (_clipMin>=_clipMax) { double clipAvg = 0.5*(_clipMin+_clipMax); double tiny = max(1.0,Math.ulp(1.0f)*abs(clipAvg)); _clipMin -= tiny; _clipMax += tiny; } } }
private static void assertEqual(float[][] e, float[][] a) { float tol = 0.001f*max(abs(e)); assertEqual(e,a,tol); } private static void assertEqual(float[][][] e, float[][][] a) {
public RectangleFilter(double sigma, int lag) { int n = (int)round(1+2*sigma); int m = max(0,(n-1-abs(lag))/2); int l = (lag%2==0)?-m:-m-1; _rrf = new RecursiveRectangleFilter(l,m); } public void apply(float[] x, float[] y) {
private static float emax(float[] a, float[] b) { int n = a.length; float emax = 0.0f; for (int i=0; i<n; ++i) emax = max(emax,abs(b[i]-a[i])); return emax; } private static float emax(float[][] a, float[][] b) {
private static boolean almostEqual(float x, float y) { float ax = abs(x); float ay = abs(y); return abs(x-y)<=0.001f*max(ax,ay); }
private static void plot(float[][] f) { trace("plot f min="+ min(f)+" max="+max(f)); edu.mines.jtk.mosaic.SimplePlot sp = new edu.mines.jtk.mosaic.SimplePlot( edu.mines.jtk.mosaic.SimplePlot.Origin.UPPER_LEFT); sp.setSize(920,900); edu.mines.jtk.mosaic.PixelsView pv = sp.addPixels(f); pv.setColorModel(edu.mines.jtk.awt.ColorMap.JET); pv.setInterpolation(edu.mines.jtk.mosaic.PixelsView.Interpolation.NEAREST); } }
private void assertEquals(double expected, double actual) { double small = 1.0e-12f*max(abs(expected),abs(actual),1.0d); assertEquals(expected,actual,small); } }
private static void plot(float[][] f) { trace("plot f min="+ min(f)+" max="+max(f)); edu.mines.jtk.mosaic.SimplePlot sp = new edu.mines.jtk.mosaic.SimplePlot( edu.mines.jtk.mosaic.SimplePlot.Origin.UPPER_LEFT); sp.setSize(920,900); edu.mines.jtk.mosaic.PixelsView pv = sp.addPixels(f); pv.setColorModel(edu.mines.jtk.awt.ColorMap.JET); pv.setInterpolation(edu.mines.jtk.mosaic.PixelsView.Interpolation.NEAREST); } }
private static boolean almostEqual(float x, float y) { float ax = abs(x); float ay = abs(y); return abs(x-y)<=0.001f*max(ax,ay); }
private static boolean almostEqual(float x, float y) { float ax = abs(x); float ay = abs(y); return abs(x-y)<=0.001f*max(ax,ay); }
private void initLags(int[] lag1) { Check.argument(lag1.length>0,"lag1.length>0"); Check.argument(lag1[0]==0,"lag1[0]==0"); for (int j=1; j<lag1.length; ++j) Check.argument(lag1[j]>0,"lag1["+j+"]>0"); _m = lag1.length; _lag1 = copy(lag1); _lag2 = zeroint(_m); _lag3 = zeroint(_m); _min1 = min(lag1); _max1 = max(lag1); }