/* SCCS %W% --- %G% -- %U% */ // Copyright: Copyright (c) 1997 University of Southern California Brain Project. // Copyright: This software may be freely copied provided the toplevel // Copyright: COPYRIGHT file is included with each such copy. // Copyright: Email nsl@java.usc.edu. //////////////////////////////////////////////////////////////////////////////// // NslFloat3.java package nslj.src.lang; public class NslFloat3 extends NslNumeric3 { public float[][][] _data; //public String _name; //boolean visibility = true; //NslHierarchy module; public NslFloat3(float[][][] d) { super(); _data = new float[d.length][d[0].length][d[0][0].length]; set(d); //_name = null; } public NslFloat3(NslNumeric3 n) { super(); _data = new float[n.getSize1()][n.getSize2()][n.getSize3()]; set(n.getfloat3()); //_name = null; } public NslFloat3(int size1, int size2, int size3) { super(); _data = new float[size1][size2][size3]; //_name = null; } public NslFloat3() { super(); _data=null; //_name = null; } /** * This constructs a number with specified name * @param name - name of the variable */ public NslFloat3(String name) { super(name); _data = null; //_name = name; } public NslFloat3(String name, NslHierarchy curParent) { super(name,curParent,curParent.nslGetAccess()); _data = null; //_name = name; //module = curParent; //visibility = module.getVisibility(); //module.enableAccess(this); } /** * This constructs a number with specified name * @param name - name of the variable * @param size1 - size of the array 1st-Dimension * @param size2 - size of the array 2nd-Dimension * @param size3 - size of the array 3rd-Dimension */ public NslFloat3(String name, int size1, int size2, int size3) { super(name); _data = new float[size1][size2][size3]; //_name = name; } public NslFloat3(String name, NslHierarchy curParent, int size1, int size2, int size3) { super(name,curParent,curParent.nslGetAccess()); _data = new float[size1][size2][size3]; //_name = name; //module = curParent; //visibility = module.getVisibility(); //module.enableAccess(this); } /** * This constructs a number with specified name * @param name - name of the variable * @param n - initialized values */ public NslFloat3(String name, NslHierarchy curParent, NslNumeric3 n) { super(name,curParent,curParent.nslGetAccess()); _data = new float[n.getSize1()][n.getSize2()][n.getSize3()]; set(n.getfloat3()); //_name = name; //module = curParent; //visibility = module.getVisibility(); //module.enableAccess(this); } public NslFloat3(String name, NslNumeric3 n) { super(name); _data = new float[n.getSize1()][n.getSize2()][n.getSize3()]; set(n.getfloat3()); //_name = name; } /** * This constructs a number with specified name * @param name - name of the variable * @param n - initialized values */ public NslFloat3(String name, float[][][] d) { super(name); _data = new float[d.length][d[0].length][d[0][0].length]; set(d); //_name = name; } public void nslMemAlloc(int size1, int size2, int size3) { _data = new float[size1][size2][size3]; } /*********************************************************/ //------------gets-------------------------------------- public float[][][] get() { return _data; } public float[][] get(int pos1) { return _data[pos1]; } public float[] get(int pos1, int pos2) { return _data[pos1][pos2]; } public float get(int pos1, int pos2, int pos3) { return _data[pos1][pos2][pos3]; } public double[][][] getdouble3() { double[][][] doubledata; int i; int j; int k; int size1 = _data.length; int size2 = _data[0].length; int size3 = _data[0][0].length; doubledata = new double[size1][size2][size3]; for (i=0; ipos1th row and pos2th column in java numerical type double. */ public double[][] getdouble2(int pos1) { int i,j; int size2 = _data[0].length; int size3 = _data[0][0].length; double[][] tmp = new double[size2][size3]; for (i=0; ipos1th row and pos2th column in java numerical type float. */ public float[][] getfloat2(int pos1) { return _data[pos1]; } /** * @param pos1 - left most index * @return the value of the element in pos1th row and pos2th column in java numerical type int. */ public int[][] getint2(int pos1) { int i,j; int size2 = _data[0].length; int size3 = _data[0][0].length; int[][] tmp = new int[size2][size3]; for (i=0; i _data.length) end1 = _data.length; if (end2 > _data[0].length) end2 = _data[0].length; if (end3 > _data[0][0].length) end3 = _data[0][0].length; length1 = end1-start1+1; length2 = end2-start2+1; length3 = end3-start3+1; floatdata = new float[length1][length2][length3]; i1 = start1; i2 = start2; i3 = start3; for (j1=0; j1value) { pos1 = i; pos2 = j; pos3 = k; value = _data[i][j][k]; } } } } max_elem_pos1.set(pos1); max_elem_pos2.set(pos2); max_elem_pos3.set(pos3); return value; } public float maxValue() { return maxElem(new NslInt0(0), new NslInt0(0), new NslInt0(0)); } public float minElem(NslInt0 max_elem_pos1, NslInt0 max_elem_pos2, NslInt0 max_elem_pos3) { float value = java.lang.Float.POSITIVE_INFINITY; int i, j, k; int size1 = _data.length; int size2 = _data[0].length; int size3 = _data[0][0].length; int pos1 = -1; int pos2 = -1; int pos3 = -1; for (i=0; i