/** * Gets byte values corresponding to specified float values. * @param f3 input array of float values to be mapped. * @param b output array of unsigned byte values in the range [0,255]. */ public void getBytes(Float3 f3, byte[][][] b) { int n1 = f3.getN1(); int n2 = f3.getN2(); int n3 = f3.getN3(); float[][] fi3 = new float[n2][n1]; for (int i3=0; i3<n3; ++i3) { f3.get12(n1,n2,0,0,i3,fi3); getBytes(fi3,b[i3]); } }
private float[][][] slice13() { float[][][] x = new float[_nc][_n3][_n1]; for (int ic=0; ic<_nc; ++ic) _f3[ic].get13(_n1,_n3,0,_k2,0,x[ic]); return x; } private float[][][] slice23() {
private void test2(Float3 f3, float[][][] a) { int n1 = f3.getN1(); int n2 = f3.getN2(); int n3 = f3.getN3(); float[][] b12 = new float[n2][n1]; for (int i3=0; i3<n3; ++i3) { f3.get12(n1,n2,0,0,i3,b12); f3.set12(n1,n2,0,0,i3,b12); assertEqual12(n1,n2,0,0,i3,a,b12); } float[][] b13 = new float[n3][n1]; for (int i2=0; i2<n2; ++i2) { f3.get13(n1,n3,0,i2,0,b13); f3.set13(n1,n3,0,i2,0,b13); assertEqual13(n1,n3,0,i2,0,a,b13); } float[][] b23 = new float[n3][n2]; for (int i1=0; i1<n1; ++i1) { f3.get23(n2,n3,i1,0,0,b23); f3.set23(n2,n3,i1,0,0,b23); assertEqual23(n2,n3,i1,0,0,a,b23); } }
private void test1(Float3 f3, float[][][] a) { int n1 = f3.getN1(); int n2 = f3.getN2(); int n3 = f3.getN3(); float[] b1 = new float[n1]; for (int i3=0; i3<n3; ++i3) { for (int i2=0; i2<n2; ++i2) { f3.get1(n1,0,i2,i3,b1); f3.set1(n1,0,i2,i3,b1); assertEqual1(n1,0,i2,i3,a,b1); } } float[] b2 = new float[n2]; for (int i3=0; i3<n3; ++i3) { for (int i1=0; i1<n1; ++i1) { f3.get2(n2,i1,0,i3,b2); f3.set2(n2,i1,0,i3,b2); assertEqual2(n2,i1,0,i3,a,b2); } } float[] b3 = new float[n3]; for (int i2=0; i2<n2; ++i2) { for (int i1=0; i1<n1; ++i1) { f3.get3(n3,i1,i2,0,b3); f3.set3(n3,i1,i2,0,b3); assertEqual3(n3,i1,i2,0,a,b3); } } }
private void test3(Float3 f3, float[][][] a) { int n1 = f3.getN1(); int n2 = f3.getN2(); int n3 = f3.getN3(); float[][][] b123 = new float[n3][n2][n1]; f3.get123(n1,n2,n3,0,0,0,b123); f3.set123(n1,n2,n3,0,0,0,b123); assertEqual123(n1,n2,n3,0,0,0,a,b123); float[] b = new float[n1*n2*n3]; f3.get123(n1,n2,n3,0,0,0,b); f3.set123(n1,n2,n3,0,0,0,b); assertEqual123(n1,n2,n3,0,0,0,a,b); }
private static void checkSampling( Sampling s1, Sampling s2, Sampling s3, Float3 f1, Float3 f2) { Check.argument(f1.getN1()==s1.getCount(), "f1.getN1()==s1.getCount()"); Check.argument(f1.getN2()==s2.getCount(), "f1.getN2()==s2.getCount()"); Check.argument(f1.getN3()==s3.getCount(), "f1.getN3()==s3.getCount()"); Check.argument(f2.getN1()==s1.getCount(), "f2.getN1()==s1.getCount()"); Check.argument(f2.getN2()==s2.getCount(), "f2.getN2()==s2.getCount()"); Check.argument(f2.getN3()==s3.getCount(), "f2.getN3()==s3.getCount()"); }
private float[][][] slice12() { float[][][] x = new float[_nc][_n2][_n1]; for (int ic=0; ic<_nc; ++ic) _f3[ic].get12(_n1,_n2,0,0,_k3,x[ic]); return x; } private float[][][] slice13() {
private float[][][] slice23() { float[][][] x = new float[_nc][][]; float[][] xic = new float[_n3][_n2]; for (int ic=0; ic<_nc; ++ic) { _f3[ic].get23(_n2,_n3,_k1,0,0,xic); x[ic] = (_transpose23)?transpose(xic):copy(xic); } return x; }
private void testRandom2(Float3 f3, float[][][] a) { int n1 = f3.getN1(); int n2 = f3.getN2(); int n3 = f3.getN3(); int ntrial = NTRIAL; float[][] b12 = new float[n2][n1]; int j2 = _random.nextInt(n2-m2); int j3 = _random.nextInt(n3-m3); f3.get12(m1,m2,j1,j2,j3,b12); f3.set12(m1,m2,j1,j2,j3,b12); assertEqual12(m1,m2,j1,j2,j3,a,b12); int j2 = _random.nextInt(n2-m2); int j3 = _random.nextInt(n3-m3); f3.get13(m1,m3,j1,j2,j3,b13); f3.set13(m1,m3,j1,j2,j3,b13); assertEqual13(m1,m3,j1,j2,j3,a,b13); int j2 = _random.nextInt(n2-m2); int j3 = _random.nextInt(n3-m3); f3.get23(m2,m3,j1,j2,j3,b23); f3.set23(m2,m3,j1,j2,j3,b23); assertEqual23(m2,m3,j1,j2,j3,a,b23);
private void testRandom1(Float3 f3, float[][][] a) { int n1 = f3.getN1(); int n2 = f3.getN2(); int n3 = f3.getN3(); int ntrial = NTRIAL; float[] b1 = new float[n1]; int j2 = _random.nextInt(n2-m2); int j3 = _random.nextInt(n3-m3); f3.get1(m1,j1,j2,j3,b1); f3.set1(m1,j1,j2,j3,b1); assertEqual1(m1,j1,j2,j3,a,b1); int j2 = _random.nextInt(n2-m2); int j3 = _random.nextInt(n3-m3); f3.get2(m2,j1,j2,j3,b2); f3.set2(m2,j1,j2,j3,b2); assertEqual2(m2,j1,j2,j3,a,b2); int j2 = _random.nextInt(n2-m2); int j3 = _random.nextInt(n3-m3); f3.get3(m3,j1,j2,j3,b3); f3.set3(m3,j1,j2,j3,b3); assertEqual3(m3,j1,j2,j3,a,b3);
private void testRandom3(Float3 f3, float[][][] a) { int n1 = f3.getN1(); int n2 = f3.getN2(); int n3 = f3.getN3(); int ntrial = NTRIAL; float[][][] b123 = new float[n3][n2][n1]; float[] b = new float[n1*n2*n3]; for (int itrial=0; itrial<ntrial; ++itrial) { int m1 = 1+_random.nextInt(n1-1); int m2 = 1+_random.nextInt(n2-1); int m3 = 1+_random.nextInt(n3-1); int j1 = _random.nextInt(n1-m1); int j2 = _random.nextInt(n2-m2); int j3 = _random.nextInt(n3-m3); f3.get123(m1,m2,m3,j1,j2,j3,b123); f3.set123(m1,m2,m3,j1,j2,j3,b123); assertEqual123(m1,m2,m3,j1,j2,j3,a,b123); f3.get123(m1,m2,m3,j1,j2,j3,b); f3.set123(m1,m2,m3,j1,j2,j3,b); assertEqual123(m1,m2,m3,j1,j2,j3,a,b); } }
/** * Gets byte values corresponding to specified float values. * @param f3 input array of float values to be mapped. * @param b output array of unsigned byte values in the range [0,255]. */ public void getBytes(Float3 f3, byte[] b) { int n1 = f3.getN1(); int n2 = f3.getN2(); int n3 = f3.getN3(); float[][] fi3 = new float[n2][n1]; for (int i3=0; i3<n3; ++i3) { f3.get12(n1,n2,0,0,i3,fi3); for (int i2=0; i2<n2; ++i2) getBytes(fi3[i2],b,i2*n1+i3*n1*n2); } }
} else if (_f instanceof Float3) { Float3 f3 = (Float3)_f; int n1 = f3.getN1(); int n2 = f3.getN2(); int n3 = f3.getN3(); float[][] a = new float[n2][n1]; for (int i3=0; i3<n3; ++i3) { f3.get12(n1,n2,0,0,i3,a); _clipMin = min(_clipMin,min(a)); _clipMax = max(_clipMax,max(a)); } else if (_f instanceof Float3) { Float3 f3 = (Float3)_f; int n1 = f3.getN1(); int n2 = f3.getN2(); int n3 = f3.getN3(); a = new float[n1*n2*n3]; f3.get123(n1,n2,n3,0,0,0,a);