private void findLogIntervals(int nc){
  double zMin=Double.MAX_VALUE;
  double zMax=-zMin;
  int ni=funcArray.length;
  for (int i=0; i < ni; ++i) {
    int nj=funcArray[i].length;
    for (int j=0; j < nj; ++j) {
      double zVal=funcArray[i][j];
      zMin=Math.min(zMin,zVal);
      zMax=Math.max(zMax,zVal);
    }
  }
  if (zMin < 0)   throw new IllegalArgumentException(kNegLogDataMsg);
  cAttr=new ContourAttrib[nc];
  double temp=Math.log(zMin);
  double delta=(Math.log(zMax) - temp) / (nc + 1);
  for (int i=0; i < nc; i++)   cAttr[i]=new ContourAttrib(Math.exp(temp + (i + 1) * delta));
}

private void findLogIntervals ( int nc ) { double zMin = Double . MAX_VALUE ; double zMax = - zMin ; int ni = funcArray . length ; for ( int i = 0 ; i < ni ; ++ i ) { int nj = funcArray [ i ] . length ; for ( int j = 0 ; j < nj ; ++ j ) { double zVal = funcArray [ i ] [ j ] ; zMin = Math . min ( zMin , zVal ) ; zMax = Math . max ( zMax , zVal ) ; } } if ( zMin < 0 ) throw new IllegalArgumentException ( kNegLogDataMsg ) ; cAttr = new ContourAttrib [ nc ] ; double temp = Math . log ( zMin ) ; double delta = ( Math . log ( zMax ) - temp ) / ( nc + 1 ) ; for ( int i = 0 ; i < nc ; i ++ ) cAttr [ i ] = new ContourAttrib ( Math . exp ( temp + ( i + 1 ) * delta ) ) ; }
find contour intervals that are logarithmically spaced through the data .
