package org.jcae.viewer3d.post; import java.io.PrintStream; public class ArrayTool { private float min; private float max; private boolean haveNegativeInfinity; private float[] array; private boolean boudariesOK=false; public ArrayTool(float[] array) { this.array=array; } private void computeBounds() { max=Float.NEGATIVE_INFINITY; min=Float.POSITIVE_INFINITY; for(int i=0; i<array.length; i++) { if(array[i]>max) { max=array[i]; } else if(array[i]==Float.NEGATIVE_INFINITY) { haveNegativeInfinity=true; } else if(array[i]<min) min=array[i]; } boudariesOK=true; } public boolean haveNegativeInfinity() { if(!boudariesOK) computeBounds(); return haveNegativeInfinity; } public float getMax() { if(!boudariesOK) computeBounds(); return max; } public float getMin() { if(!boudariesOK) computeBounds(); return min; } public void logarithm() { for(int i=0; i<array.length; i++) { array[i]=(float) (Math.log(array[i])/Math.log(10)); } boudariesOK=false; } public float[] getValues() { return array; } public void print(PrintStream out) { for(int i=0; i<array.length; i++) { out.println(i+": "+array[i]); } } }