private double[] estimateBandwidths(){
  double[] stds=getStandardDeviations();
  double[] silverman=new double[stds.length];
  for (int i=0; i < silverman.length; i++) {
    silverman[i]=1.06 * stds[i] * Math.pow(points.length,-1 / (4.0 + silverman.length));
    if (silverman[i] == 0.0) {
      silverman[i]=0.05;
    }
  }
  return silverman;
}

private double [ ] estimateBandwidths ( ) { double [ ] stds = getStandardDeviations ( ) ; double [ ] silverman = new double [ stds . length ] ; for ( int i = 0 ; i < silverman . length ; i ++ ) { silverman [ i ] = 1.06 * stds [ i ] * Math . pow ( points . length , - 1 / ( 4.0 + silverman . length ) ) ; if ( silverman [ i ] == 0.0 ) { silverman [ i ] = 0.05 ; } } return silverman ; }
estimate the bandwidths according to silverman ' s rule of thumb .
